From 4beaac9ccaae5ee4675baf64d1382efd39838601 Mon Sep 17 00:00:00 2001 From: Jakub Sobon Date: Sat, 20 Jun 2020 14:00:05 -0400 Subject: [PATCH 1/3] Stub out tcell.NewScreen so tests can pass headless. --- terminal/tcell/tcell.go | 8 ++++++-- terminal/tcell/tcell_test.go | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/terminal/tcell/tcell.go b/terminal/tcell/tcell.go index 048453f..235954c 100644 --- a/terminal/tcell/tcell.go +++ b/terminal/tcell/tcell.go @@ -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{ diff --git a/terminal/tcell/tcell_test.go b/terminal/tcell/tcell_test.go index 6b8d79d..6a2bdca 100644 --- a/terminal/tcell/tcell_test.go +++ b/terminal/tcell/tcell_test.go @@ -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. From 0f0fa8ae08e2165d4aa16bb4d787eb93ea24630a Mon Sep 17 00:00:00 2001 From: Jakub Sobon Date: Sat, 20 Jun 2020 14:31:30 -0400 Subject: [PATCH 2/3] Triggering a CI build. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 69f0462..2cb2fe3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,4 +17,4 @@ after_success: - ./internal/scripts/coverage.sh env: global: - - CGO_ENABLED=0 + - CGO_ENABLED=0 From ccaec8f9af79176d8a34cfbba41e98dd11e1416a Mon Sep 17 00:00:00 2001 From: Jakub Sobon Date: Sat, 20 Jun 2020 14:33:00 -0400 Subject: [PATCH 3/3] Updating CHANGELOG. --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3128f02..8ba58c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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).