Skip to content

Commit

Permalink
Merge pull request #235 from mum4k/234-tcell_test
Browse files Browse the repository at this point in the history
Stub out tcell.NewScreen so tests can pass headless.
  • Loading branch information
mum4k committed Jun 20, 2020
2 parents d7aef31 + ccaec8f commit 448d494
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ after_success:
- ./internal/scripts/coverage.sh
env:
global:
- CGO_ENABLED=0
- CGO_ENABLED=0
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [0.12.0] - 10-Apr-2020

### Fixed

- the `tcell` unit test can now pass in headless mode (when TERM="") which
happens under bazel.

### Added

- Migrating to [Go modules](https://blog.golang.org/using-go-modules).
Expand Down
8 changes: 6 additions & 2 deletions terminal/tcell/tcell.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ package tcell

import (
"context"
"fmt"
"image"

"github.com/gdamore/tcell"
Expand Down Expand Up @@ -79,11 +80,14 @@ type Terminal struct {
clearStyle *cell.Options
}

// tcellNewScreen can be overridden from tests.
var tcellNewScreen = tcell.NewScreen

// newTerminal creates the terminal and applies the options.
func newTerminal(opts ...Option) (*Terminal, error) {
screen, err := tcell.NewScreen()
screen, err := tcellNewScreen()
if err != nil {
return nil, err
return nil, fmt.Errorf("tcell.NewScreen => %v", err)
}

t := &Terminal{
Expand Down
5 changes: 5 additions & 0 deletions terminal/tcell/tcell_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package tcell
import (
"testing"

"github.com/gdamore/tcell"
"github.com/kylelemons/godebug/pretty"
"github.com/mum4k/termdash/cell"
"github.com/mum4k/termdash/terminal/terminalapi"
Expand Down Expand Up @@ -45,11 +46,13 @@ func TestNewTerminalColorMode(t *testing.T) {
},
}

tcellNewScreen = func() (tcell.Screen, error) { return nil, nil }
for _, tc := range tests {
t.Run(tc.desc, func(t *testing.T) {
got, err := newTerminal(tc.opts...)
if err != nil {
t.Errorf("newTerminal => unexpected error:\n%v", err)
return
}

// Ignore these fields.
Expand Down Expand Up @@ -96,11 +99,13 @@ func TestNewTerminalClearStyle(t *testing.T) {
},
}

tcellNewScreen = func() (tcell.Screen, error) { return nil, nil }
for _, tc := range tests {
t.Run(tc.desc, func(t *testing.T) {
got, err := newTerminal(tc.opts...)
if err != nil {
t.Errorf("newTerminal => unexpected error:\n%v", err)
return
}

// Ignore these fields.
Expand Down

0 comments on commit 448d494

Please sign in to comment.