Merge pull request #235 from mum4k/234-tcell_test

Stub out tcell.NewScreen so tests can pass headless.
This commit is contained in:
Jakub Sobon 2020-06-20 14:48:08 -04:00 committed by GitHub
commit 448d494391
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 3 deletions

View File

@ -17,4 +17,4 @@ after_success:
- ./internal/scripts/coverage.sh
env:
global:
- CGO_ENABLED=0
- CGO_ENABLED=0

View File

@ -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).

View File

@ -16,6 +16,7 @@ package tcell
import (
"context"
"fmt"
"image"
"github.com/gdamore/tcell"
@ -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{

View File

@ -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"
@ -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.
@ -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.