From 46a430f58fc7b412528d70667310a37192b92db0 Mon Sep 17 00:00:00 2001 From: Leon Mika Date: Mon, 18 Jul 2022 08:16:26 +1000 Subject: [PATCH] Fixed unit tests --- .../controllers/tablewrite_test.go | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/internal/dynamo-browse/controllers/tablewrite_test.go b/internal/dynamo-browse/controllers/tablewrite_test.go index abdccc9..f10a60f 100644 --- a/internal/dynamo-browse/controllers/tablewrite_test.go +++ b/internal/dynamo-browse/controllers/tablewrite_test.go @@ -44,10 +44,6 @@ func TestTableWriteController_NewItem(t *testing.T) { func TestTableWriteController_SetAttributeValue(t *testing.T) { t.Run("should preserve the type of the field if unspecified", func(t *testing.T) { - client := testdynamo.SetupTestTable(t, testData) - - provider := dynamo.NewProvider(client) - service := tables.NewService(provider) scenarios := []struct { attrKey string @@ -78,6 +74,11 @@ func TestTableWriteController_SetAttributeValue(t *testing.T) { for _, scenario := range scenarios { t.Run(fmt.Sprintf("should set value of field: %v", scenario.attrKey), func(t *testing.T) { + client := testdynamo.SetupTestTable(t, testData) + + provider := dynamo.NewProvider(client) + service := tables.NewService(provider) + state := controllers.NewState() readController := controllers.NewTableReadController(state, service, "alpha-table") writeController := controllers.NewTableWriteController(state, service, readController) @@ -89,28 +90,29 @@ func TestTableWriteController_SetAttributeValue(t *testing.T) { assert.Equal(t, scenario.expected, after) assert.True(t, state.ResultSet().IsDirty(0)) }) - - t.Run(fmt.Sprintf("should set value of marked fields: %v", scenario.attrKey), func(t *testing.T) { - state := controllers.NewState() - readController := controllers.NewTableReadController(state, service, "alpha-table") - writeController := controllers.NewTableWriteController(state, service, readController) - - invokeCommand(t, readController.Init()) - invokeCommand(t, writeController.ToggleMark(0)) - invokeCommand(t, writeController.ToggleMark(2)) - invokeCommandWithPrompt(t, writeController.SetAttributeValue(1, models.UnsetItemType, scenario.attrKey), scenario.attrValue) - - after1, _ := state.ResultSet().Items()[0][scenario.attrKey] - assert.Equal(t, scenario.expected, after1) - assert.True(t, state.ResultSet().IsDirty(0)) - - after2, _ := state.ResultSet().Items()[2][scenario.attrKey] - assert.Equal(t, scenario.expected, after2) - assert.True(t, state.ResultSet().IsDirty(2)) - }) } }) + t.Run("should use type of selected item for marked fields if unspecified", func(t *testing.T) { + client := testdynamo.SetupTestTable(t, testData) + + provider := dynamo.NewProvider(client) + service := tables.NewService(provider) + + state := controllers.NewState() + readController := controllers.NewTableReadController(state, service, "alpha-table") + writeController := controllers.NewTableWriteController(state, service, readController) + + invokeCommand(t, readController.Init()) + invokeCommand(t, writeController.ToggleMark(0)) + invokeCommandWithPrompt(t, writeController.SetAttributeValue(1, models.UnsetItemType, "alpha"), "a brand new value") + + after1 := state.ResultSet().Items()[0]["alpha"].(*types.AttributeValueMemberS).Value + assert.Equal(t, "a brand new value", after1) + assert.True(t, state.ResultSet().IsDirty(0)) + assert.False(t, state.ResultSet().IsDirty(1)) + }) + t.Run("should change the value to a particular field if already present", func(t *testing.T) { client := testdynamo.SetupTestTable(t, testData)