Răsfoiți Sursa

Added a test for scrolling functionality

arianagiroux 1 săptămână în urmă
părinte
comite
359159dc8a
1 a modificat fișierele cu 21 adăugiri și 16 ștergeri
  1. 21 16
      tui_test.go

+ 21 - 16
tui_test.go

@@ -40,23 +40,28 @@ func Test_Model_Init(t *testing.T) {
 	assert.IsType(t, new(tickMsg), msg)
 }
 
-// skipped until a testing paradigm can be determined (viewport has scrolled)
-func Test_Model_Update_scroll_on_j(t *testing.T) {
-	t.Skip()
-	testAddresses := []string{"127.0.0.1", "cantresolvethisever"}
-	testSpeed := time.Second * 1
-	testModel := InitialModel(testAddresses, testSpeed, 10)
-	testScroll := testModel.viewport.ScrollPercent()
-	testSize := tea.WindowSizeMsg{Width: 20, Height: 200}
-	testMsg := tea.KeyPressMsg(tea.Key{Text: "j"})
-
-	model, _ := testModel.Update(testSize)
-	modelv2, _ := model.Update(testMsg)
-	assert.Greater(t, testScroll, modelv2.(Model).viewport.ScrollPercent())
+func Test_Model_Update_scroll_on_key(t *testing.T) {
+	testModel := spawnTestModel(
+		[]string{"127.0.0.1", "asdfasdf"}, []float64{}, 80, 200, 10)
+	assert.True(t, testModel.viewport.YOffset() == 0, testModel.viewport.YOffset())
+	testJ := tea.KeyPressMsg(tea.Key{Text: "j"})
+	testK := tea.KeyPressMsg(tea.Key{Text: "k"})
+
+	model, _ := testModel.Update(testJ)
+	viewport := model.(Model).viewport
+	assert.True(t, viewport.YOffset() > 0, viewport.YOffset())
+	model, _ = testModel.Update(testK)
+	viewport = model.(Model).viewport
+	assert.True(t, viewport.YOffset() == 0, viewport.YOffset())
 }
 
-// skipped until a testing paradigm can be determined (viewport has scrolled)
-func Test_Model_Update_scroll_on_k(t *testing.T) { t.Skip() }
+func Test_Model_Update_quit_on_key(t *testing.T) {
+	testModel := spawnTestModel(
+		[]string{"127.0.0.1", "asdfasdf"}, []float64{}, 80, 200, 10)
+	testQuitMsg := tea.KeyPressMsg(tea.Key{Text: "ctrl+c"})
+	_, cmd := testModel.Update(testQuitMsg)
+	assert.IsType(t, *new(tea.QuitMsg), cmd())
+}
 
 func Test_Model_Update_handle_windowsize(t *testing.T) {
 	testAddresses := []string{"127.0.0.1", "cantresolvethisever"}
@@ -108,7 +113,7 @@ func Test_Model_Update_handle_pollMsg(t *testing.T) {
 
 func Test_Model_View(t *testing.T) {
 	testModel := spawnTestModel(
-		[]string{"127.0.0.1", "cantresolvethisever"}, []float64{1.0, 2.0, 3.0}, 0, 20, 10)
+		[]string{"127.0.0.1", "cantresolvethisever"}, []float64{1.0, 2.0, 3.0}, 20, 20, 10)
 	result := testModel.View()
 	assert.IsType(t, *new(tea.View), result)
 	assert.True(t, strings.Contains(result.Content, "pingo"))