From de116aee200b4aeed195ac8fc2b5bd45d7db6d58 Mon Sep 17 00:00:00 2001 From: The Magician Date: Tue, 20 Aug 2024 15:28:49 +0100 Subject: [PATCH] Update storage UI --- sevenkeys/cli/mainui.go | 4 +++- sevenkeys/cli/storage.go | 20 ++++++++---------- sevenkeys/cli/storage_test.go | 39 +++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 12 deletions(-) create mode 100644 sevenkeys/cli/storage_test.go diff --git a/sevenkeys/cli/mainui.go b/sevenkeys/cli/mainui.go index 76fb9c0..7273e2d 100644 --- a/sevenkeys/cli/mainui.go +++ b/sevenkeys/cli/mainui.go @@ -4,6 +4,7 @@ import ( "database/sql" "errors" "fmt" + "os" "os/exec" "sevenkeys/database" "sevenkeys/logic" @@ -19,10 +20,11 @@ func showOutput() { func MainCliLoop(db *sql.DB) { var command string + var selectedStorageArea database.StorageArea for { ShowSplashScreen() - showStorageInfo() + showStorageInfo(os.Stdout, selectedStorageArea) showSearchCriteria() showSelectedCard() showCopiesInserted() diff --git a/sevenkeys/cli/storage.go b/sevenkeys/cli/storage.go index db3c170..4b17ea7 100644 --- a/sevenkeys/cli/storage.go +++ b/sevenkeys/cli/storage.go @@ -3,6 +3,7 @@ package cli import ( "database/sql" "fmt" + "io" "sevenkeys/database" "sevenkeys/logic" ) @@ -22,18 +23,15 @@ func getInfoDisplay(info string) string { return info } -func showStorageInfo() { - fmt.Println("STORAGE SETTINGS") +func showStorageInfo(w io.Writer, area database.StorageArea) { + fmt.Fprint(w, "Selected Storage Area: ") + if area.Name == "" { + fmt.Fprint(w, "[None]\n") + return + } - storageBoxDisplay := getInfoDisplay(cardStorageLocation.StorageBox) - sourceDisplay := getInfoDisplay(cardStorageLocation.Source) - conditionDisplay := getInfoDisplay(cardStorageLocation.CardCondition) - - fmt.Println("Storage location:", storageBoxDisplay) - fmt.Println("Source:", sourceDisplay) - fmt.Println("Condition:", conditionDisplay) - - fmt.Print("\n") + fmt.Fprintf(w, "%s (%s)\n", area.Name, area.Type) + return } func showCopiesInserted() { diff --git a/sevenkeys/cli/storage_test.go b/sevenkeys/cli/storage_test.go new file mode 100644 index 0000000..d19ac18 --- /dev/null +++ b/sevenkeys/cli/storage_test.go @@ -0,0 +1,39 @@ +package cli + +import ( + "bytes" + "sevenkeys/database" + "testing" +) + +func Test_showStorageInfo_DisplaysNone_IfSelectedStorageAreaIsUnset(t *testing.T) { + expected := "Selected Storage Area: [None]\n" + + var output bytes.Buffer + + var area database.StorageArea + showStorageInfo(&output, area) + + result := output.String() + if result != expected { + t.Errorf("expected %s, got %s", expected, result) + } +} + +func Test_showStorageInfo_DisplaysStorageAreaNameAndType_IfSelectedStorageAreaIsSet(t *testing.T) { + expected := "Selected Storage Area: Test A (Box)\n" + + var output bytes.Buffer + + area := database.StorageArea{ + Id: 1, + Name: "Test A", + Type: "Box", + } + showStorageInfo(&output, area) + + result := output.String() + if result != expected { + t.Errorf("expected %s, got %s", expected, result) + } +}