From 3d1d8ba0a772c3c038f072095d87d0b46bd1efb2 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Fri, 15 Jan 2021 16:08:31 +0100 Subject: Added generation of the menu display --- client/menu_test.go | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 client/menu_test.go (limited to 'client/menu_test.go') 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) + } +} -- cgit v1.2.3