aboutsummaryrefslogtreecommitdiff
path: root/client/menu_test.go
diff options
context:
space:
mode:
authorJulien Dessaux2021-01-15 16:08:31 +0100
committerJulien Dessaux2021-01-15 16:08:31 +0100
commit3d1d8ba0a772c3c038f072095d87d0b46bd1efb2 (patch)
tree4b51303ee3a4e0c094cc3b9ab3aefc1846d85559 /client/menu_test.go
parentHave the configuration loadFile function return a pointer (diff)
downloadshell-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.go49
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)
+ }
+}