diff options
author | Julien Dessaux | 2021-01-15 16:08:31 +0100 |
---|---|---|
committer | Julien Dessaux | 2021-01-15 16:08:31 +0100 |
commit | 3d1d8ba0a772c3c038f072095d87d0b46bd1efb2 (patch) | |
tree | 4b51303ee3a4e0c094cc3b9ab3aefc1846d85559 /client/menu_test.go | |
parent | Have the configuration loadFile function return a pointer (diff) | |
download | shell-game-launcher-3d1d8ba0a772c3c038f072095d87d0b46bd1efb2.tar.gz shell-game-launcher-3d1d8ba0a772c3c038f072095d87d0b46bd1efb2.tar.bz2 shell-game-launcher-3d1d8ba0a772c3c038f072095d87d0b46bd1efb2.zip |
Added generation of the menu display
Diffstat (limited to 'client/menu_test.go')
-rw-r--r-- | client/menu_test.go | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/client/menu_test.go b/client/menu_test.go new file mode 100644 index 0000000..8570b8d --- /dev/null +++ b/client/menu_test.go @@ -0,0 +1,49 @@ +package client + +import ( + "io/ioutil" + "os" + "reflect" + "shell-game-launcher/config" + "testing" +) + +func TestDisplayMenu(t *testing.T) { + realStdout := os.Stdout + t.Cleanup(func() { os.Stdout = realStdout }) + r, w, _ := os.Pipe() + os.Stdout = w + + // Complete menu + state := State{ + config: &config.Config{ + Menus: map[string]config.Menu{ + "test": config.Menu{ + Banner: "TEST TEST TEST", + XOffset: 5, + YOffset: 3, + MenuEntries: []config.MenuEntry{ + config.MenuEntry{ + Key: "q", + Label: "quit", + Action: "quit", + }, + }, + }, + }, + }, + currentMenu: "test", + login: "nil", + } + want := []byte("\033[2J\n" + + "TEST TEST TEST\n" + + "\n\n\n" + + " q) quit\n") + state.displayMenu() + // back to normal state + w.Close() + out, _ := ioutil.ReadAll(r) + if !reflect.DeepEqual(out, want) { + t.Fatalf("menu displayed incorrectly:\nwant:%+v\ngot: %+v", want, out) + } +} |