From cfc9cbbe3d65bf8e49e4752ddc1c3523a55fa467 Mon Sep 17 00:00:00 2001 From: Aidan Matchette Date: Sat, 25 Feb 2023 18:53:38 -0800 Subject: [PATCH 1/7] Initial solution for toggling sorting profiles by percentage Picked two arbitrary keybinds "[" toggles on sortedByPercentage and will toggle back and forth between Asc and Desc order. "]" turns off sorting by percentage. Need to add "instructions" to the key map. i.e. "[ toggle sort by percentage" --- internal/model/model.go | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/internal/model/model.go b/internal/model/model.go index f6b67fd..1e1b3e6 100644 --- a/internal/model/model.go +++ b/internal/model/model.go @@ -78,6 +78,8 @@ type Model struct { detectedPackageName string requestedFiles map[string]bool filteredLinesByFile map[string][]int + profilesLoaded []*cover.Profile + sortByAsc bool activeView viewName helpState helpState @@ -188,7 +190,12 @@ func (m *Model) onProfilesLoaded(profiles []*cover.Profile) (tea.Model, tea.Cmd) if m.sortByCoverage { sort.Slice(profiles, func(i, j int) bool { - return percentCovered(profiles[i]) < percentCovered(profiles[j]) + if m.sortByAsc { + return percentCovered(profiles[i]) > percentCovered(profiles[j]) + } else { + return percentCovered(profiles[i]) < percentCovered(profiles[j]) + } + }) } @@ -254,7 +261,20 @@ func (m *Model) onKeyPressed(key string) (tea.Model, tea.Cmd) { return m, loadFile(adjustedFileName, item.profile) } - return m, nil + return m, nil + + //toggle on and inisiate sortByCoverage (default = Asc) + case "[": + m.sortByCoverage = true + m.sortByAsc = !m.sortByAsc + m.Update(m.profilesLoaded) + return m, nil + + case "]": + m.sortByCoverage = false + m.sortByAsc = false + m.Update(m.profilesLoaded) + return m, nil case "?": m.toggleHelp() @@ -328,6 +348,7 @@ func (m *Model) loadProfiles(codeRoot, profileFilename string) tea.Cmd { finalProfiles = append(finalProfiles, p) } + m.profilesLoaded = finalProfiles return finalProfiles } From ef0e73bf1dd419586e0968c9ded6c8d7bb1cf28b Mon Sep 17 00:00:00 2001 From: Aidan Matchette Date: Sun, 26 Feb 2023 19:40:00 -0800 Subject: [PATCH 2/7] Create a struct to store the state of the sorting settings --- internal/model/model.go | 66 ++++++++++++++++++++++++++++++----------- 1 file changed, 48 insertions(+), 18 deletions(-) diff --git a/internal/model/model.go b/internal/model/model.go index 1e1b3e6..4992ac4 100644 --- a/internal/model/model.go +++ b/internal/model/model.go @@ -40,11 +40,32 @@ const ( helpStateFull ) +type sortType int + +const ( + sortStateByName sortType = iota + sortStateByPercentage + //sortStateByStatements +) + +type sortOrder bool + +const ( + ASC sortOrder = true + DSC sortOrder = true +) + +type SortState struct { + Type sortType + Order sortOrder +} + // New create a new model that can be used directly in the tea framework. func New(opts ...Option) *Model { m := &Model{ activeView: activeViewList, helpState: helpStateShort, + sortState: SortState{Type: sortStateByName, Order: ascend}, codeRoot: ".", list: list.New([]list.Item{}, coverProfileDelegate{}, 0, 0), } @@ -79,10 +100,10 @@ type Model struct { requestedFiles map[string]bool filteredLinesByFile map[string][]int profilesLoaded []*cover.Profile - sortByAsc bool activeView viewName helpState helpState + sortState SortState ready bool err errorview.Model @@ -189,14 +210,7 @@ func (m *Model) onProfilesLoaded(profiles []*cover.Profile) (tea.Model, tea.Cmd) } if m.sortByCoverage { - sort.Slice(profiles, func(i, j int) bool { - if m.sortByAsc { - return percentCovered(profiles[i]) > percentCovered(profiles[j]) - } else { - return percentCovered(profiles[i]) < percentCovered(profiles[j]) - } - - }) + m.sortByPercentage(profiles) } m.items = make([]list.Item, len(profiles)) @@ -264,15 +278,8 @@ func (m *Model) onKeyPressed(key string) (tea.Model, tea.Cmd) { return m, nil //toggle on and inisiate sortByCoverage (default = Asc) - case "[": - m.sortByCoverage = true - m.sortByAsc = !m.sortByAsc - m.Update(m.profilesLoaded) - return m, nil - - case "]": - m.sortByCoverage = false - m.sortByAsc = false + case "s": + m.toggleSort(m.profilesLoaded) m.Update(m.profilesLoaded) return m, nil @@ -283,6 +290,29 @@ func (m *Model) onKeyPressed(key string) (tea.Model, tea.Cmd) { return nil, nil } +func (m *Model) sortByPercentage(profiles []*cover.Profile) { + sort.Slice(profiles, func(i, j int) bool { + if m.sortState.Order == ASC { + return percentCovered(profiles[i]) > percentCovered(profiles[j]) + } else { + return percentCovered(profiles[i]) < percentCovered(profiles[j]) + } + }) +} + +func (m *Model) toggleSort(profiles []*cover.Profile) { + switch m.sortState.Type { + case sortStateByName : + m.sortState.Type = sortStateByName + // sort all profiles by name + + case sortStateByPercentage: + m.sortState.Type = sortStateByPercentage + m.toggleSort(profiles) + // sort all profiles by Ascend percent if isAscend is true + // else sort by Descend + } +} func (m *Model) toggleHelp() { // manage help state globally: allow to extend or hide completely From e0b0aef871dc8292450b88f64ec025b456511012 Mon Sep 17 00:00:00 2001 From: Aidan Matchette Date: Mon, 27 Feb 2023 10:00:15 -0800 Subject: [PATCH 3/7] Toggle between sortTypes with "s" and toggle sort order with "!" --- internal/model/model.go | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/internal/model/model.go b/internal/model/model.go index 4992ac4..f98b56c 100644 --- a/internal/model/model.go +++ b/internal/model/model.go @@ -52,7 +52,7 @@ type sortOrder bool const ( ASC sortOrder = true - DSC sortOrder = true + DSC sortOrder = false ) type SortState struct { @@ -65,7 +65,7 @@ func New(opts ...Option) *Model { m := &Model{ activeView: activeViewList, helpState: helpStateShort, - sortState: SortState{Type: sortStateByName, Order: ascend}, + sortState: SortState{Type: sortStateByName, Order: ASC}, codeRoot: ".", list: list.New([]list.Item{}, coverProfileDelegate{}, 0, 0), } @@ -209,7 +209,7 @@ func (m *Model) onProfilesLoaded(profiles []*cover.Profile) (tea.Model, tea.Cmd) return m.onError(errNoProfiles{}) } - if m.sortByCoverage { + if m.sortByCoverage || m.sortState.Type == sortStateByPercentage { m.sortByPercentage(profiles) } @@ -277,9 +277,14 @@ func (m *Model) onKeyPressed(key string) (tea.Model, tea.Cmd) { return m, nil - //toggle on and inisiate sortByCoverage (default = Asc) + //toggle on and insiate sortByCoverage (default = Asc) case "s": - m.toggleSort(m.profilesLoaded) + m.toggleSort() + m.Update(m.profilesLoaded) + return m, nil + + case "!": + m.toggleSortOrder() m.Update(m.profilesLoaded) return m, nil @@ -290,6 +295,16 @@ func (m *Model) onKeyPressed(key string) (tea.Model, tea.Cmd) { return nil, nil } + +func (m *Model) toggleSortOrder() { + switch m.sortState.Order { + case ASC: + m.sortState.Order = DSC + case DSC: + m.sortState.Order = ASC + } +} + func (m *Model) sortByPercentage(profiles []*cover.Profile) { sort.Slice(profiles, func(i, j int) bool { if m.sortState.Order == ASC { @@ -300,15 +315,14 @@ func (m *Model) sortByPercentage(profiles []*cover.Profile) { }) } -func (m *Model) toggleSort(profiles []*cover.Profile) { +func (m *Model) toggleSort() { switch m.sortState.Type { case sortStateByName : - m.sortState.Type = sortStateByName + m.sortState.Type = sortStateByPercentage // sort all profiles by name case sortStateByPercentage: - m.sortState.Type = sortStateByPercentage - m.toggleSort(profiles) + m.sortState.Type = sortStateByName // sort all profiles by Ascend percent if isAscend is true // else sort by Descend } From 7e78f9d0a9ec6f9a6e06ae870c5347e1ec7bcdba Mon Sep 17 00:00:00 2001 From: Aidan Matchette Date: Sun, 12 Mar 2023 18:08:54 -0700 Subject: [PATCH 4/7] Implemented changes to not call call bubbletea framework directly Changes have been made to make sortOrder enum non-exported. We are no longer directly calling bubbletea Update function, let the framework handle that by updating m.list. Named changes in some variables and functions for better clarity. --- internal/model/model.go | 121 ++++++++++++++++++++++------------- internal/model/model_test.go | 8 +++ internal/model/options.go | 4 +- 3 files changed, 86 insertions(+), 47 deletions(-) create mode 100644 internal/model/model_test.go diff --git a/internal/model/model.go b/internal/model/model.go index f98b56c..c5c58a2 100644 --- a/internal/model/model.go +++ b/internal/model/model.go @@ -43,21 +43,20 @@ const ( type sortType int const ( - sortStateByName sortType = iota - sortStateByPercentage - //sortStateByStatements + sortStateByName sortType = iota + sortStateByPercentage ) type sortOrder bool const ( - ASC sortOrder = true - DSC sortOrder = false + asc sortOrder = true + dsc sortOrder = false ) type SortState struct { - Type sortType - Order sortOrder + Type sortType + Order sortOrder } // New create a new model that can be used directly in the tea framework. @@ -65,7 +64,7 @@ func New(opts ...Option) *Model { m := &Model{ activeView: activeViewList, helpState: helpStateShort, - sortState: SortState{Type: sortStateByName, Order: ASC}, + sortState: SortState{Type: sortStateByName, Order: asc}, codeRoot: ".", list: list.New([]list.Item{}, coverProfileDelegate{}, 0, 0), } @@ -93,17 +92,17 @@ type Model struct { code codeview.Model - codeRoot string - profileFilename string - sortByCoverage bool + codeRoot string + profileFilename string + //sortByCoverage bool detectedPackageName string requestedFiles map[string]bool filteredLinesByFile map[string][]int - profilesLoaded []*cover.Profile + loadedProfiles []*cover.Profile activeView viewName helpState helpState - sortState SortState + sortState SortState ready bool err errorview.Model @@ -209,8 +208,8 @@ func (m *Model) onProfilesLoaded(profiles []*cover.Profile) (tea.Model, tea.Cmd) return m.onError(errNoProfiles{}) } - if m.sortByCoverage || m.sortState.Type == sortStateByPercentage { - m.sortByPercentage(profiles) + if m.sortState.Type == sortStateByPercentage { + m.sortByPercentage() } m.items = make([]list.Item, len(profiles)) @@ -275,18 +274,15 @@ func (m *Model) onKeyPressed(key string) (tea.Model, tea.Cmd) { return m, loadFile(adjustedFileName, item.profile) } - return m, nil + return m, nil - //toggle on and insiate sortByCoverage (default = Asc) - case "s": - m.toggleSort() - m.Update(m.profilesLoaded) - return m, nil + case "s": + m.toggleSort() + return m.updateListItems() - case "!": - m.toggleSortOrder() - m.Update(m.profilesLoaded) - return m, nil + case "!": + m.toggleSortOrder() + return m.updateListItems() case "?": m.toggleHelp() @@ -296,35 +292,68 @@ func (m *Model) onKeyPressed(key string) (tea.Model, tea.Cmd) { return nil, nil } -func (m *Model) toggleSortOrder() { - switch m.sortState.Order { - case ASC: - m.sortState.Order = DSC - case DSC: - m.sortState.Order = ASC - } +func (m *Model) updateListItems() (tea.Model, tea.Cmd) { + + m.processSort() + + m.items = make([]list.Item, len(m.loadedProfiles)) + + for i, p := range m.loadedProfiles { + p.FileName = strings.TrimPrefix(p.FileName, m.detectedPackageName+"/") + m.items[i] = &coverProfile{ + profile: p, + percentage: percentCovered(p), + } + } + + return m, m.list.SetItems(m.items) } -func (m *Model) sortByPercentage(profiles []*cover.Profile) { - sort.Slice(profiles, func(i, j int) bool { - if m.sortState.Order == ASC { - return percentCovered(profiles[i]) > percentCovered(profiles[j]) - } else { - return percentCovered(profiles[i]) < percentCovered(profiles[j]) - } - }) +func (m *Model) processSort() { + switch m.sortState.Type { + case sortStateByPercentage: + m.sortByPercentage() + case sortStateByName: + m.sortByName() + } +} + +func (m *Model) sortByPercentage() { + sort.Slice(m.loadedProfiles, func(i, j int) bool { + if m.sortState.Order == asc { + return percentCovered(m.loadedProfiles[i]) > percentCovered(m.loadedProfiles[j]) + } else { + return percentCovered(m.loadedProfiles[i]) < percentCovered(m.loadedProfiles[j]) + } + }) +} + +func (m *Model) sortByName() { + sort.Slice(m.loadedProfiles, func(i, j int) bool { + if m.sortState.Order == asc { + return m.loadedProfiles[i].FileName < m.loadedProfiles[j].FileName + } else { + return m.loadedProfiles[i].FileName > m.loadedProfiles[j].FileName + } + }) +} + +func (m *Model) toggleSortOrder() { + switch m.sortState.Order { + case asc: + m.sortState.Order = dsc + case dsc: + m.sortState.Order = asc + } } func (m *Model) toggleSort() { switch m.sortState.Type { - case sortStateByName : + case sortStateByName: m.sortState.Type = sortStateByPercentage - // sort all profiles by name case sortStateByPercentage: - m.sortState.Type = sortStateByName - // sort all profiles by Ascend percent if isAscend is true - // else sort by Descend + m.sortState.Type = sortStateByName } } @@ -392,7 +421,7 @@ func (m *Model) loadProfiles(codeRoot, profileFilename string) tea.Cmd { finalProfiles = append(finalProfiles, p) } - m.profilesLoaded = finalProfiles + m.loadedProfiles = finalProfiles return finalProfiles } diff --git a/internal/model/model_test.go b/internal/model/model_test.go new file mode 100644 index 0000000..51d5cde --- /dev/null +++ b/internal/model/model_test.go @@ -0,0 +1,8 @@ +package model + +import ( + "testing" +) + +func TestSortByPercentage(t *testing.T) { +} diff --git a/internal/model/options.go b/internal/model/options.go index e3fc82d..fb41bd0 100644 --- a/internal/model/options.go +++ b/internal/model/options.go @@ -13,7 +13,9 @@ func WithProfileFilename(name string) Option { // WithCoverageSorting asks for the profiles to be sorted by coverage percent instead of alphabetically. func WithCoverageSorting(sortByCoverage bool) Option { return func(m *Model) { - m.sortByCoverage = sortByCoverage + if sortByCoverage { + m.sortState.Type = sortStateByPercentage + } } } From 473f319a7628f63bfa82cba186905dccfd49b0eb Mon Sep 17 00:00:00 2001 From: Aidan Matchette Date: Sun, 12 Mar 2023 18:20:06 -0700 Subject: [PATCH 5/7] Small formatting changes --- internal/model/model.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/internal/model/model.go b/internal/model/model.go index c5c58a2..c7b688a 100644 --- a/internal/model/model.go +++ b/internal/model/model.go @@ -92,9 +92,8 @@ type Model struct { code codeview.Model - codeRoot string - profileFilename string - //sortByCoverage bool + codeRoot string + profileFilename string detectedPackageName string requestedFiles map[string]bool filteredLinesByFile map[string][]int From 16c4dbec4bcef5238c9ba2b76c1e5749c5b87d65 Mon Sep 17 00:00:00 2001 From: Aidan Matchette Date: Wed, 19 Apr 2023 08:08:34 -0700 Subject: [PATCH 6/7] Tests: added testing for sort (asc, dsc, name, percentage) --- internal/gocovshtest/happy_flow_test.go | 33 +++++++++++++++++++ .../happy_flow_toggle_sort_asc.golden | 19 +++++++++++ .../happy_flow_toggle_sort_dsc.golden | 19 +++++++++++ .../happy_flow_toggle_sort_name.golden | 19 +++++++++++ .../happy_flow_toggle_sort_percentage.golden | 19 +++++++++++ .../happy_flow_toggle_sort_asc.golden | 19 +++++++++++ .../happy_flow_toggle_sort_dsc.golden | 19 +++++++++++ .../happy_flow_toggle_sort_name.golden | 19 +++++++++++ .../happy_flow_toggle_sort_percentage.golden | 19 +++++++++++ .../happy_flow_toggle_sort_asc.golden | 19 +++++++++++ .../happy_flow_toggle_sort_dsc.golden | 19 +++++++++++ .../happy_flow_toggle_sort_name.golden | 19 +++++++++++ .../happy_flow_toggle_sort_percentage.golden | 19 +++++++++++ internal/model/model_test.go | 8 ----- 14 files changed, 261 insertions(+), 8 deletions(-) create mode 100644 internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_asc.golden create mode 100644 internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_dsc.golden create mode 100644 internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_name.golden create mode 100644 internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_percentage.golden create mode 100644 internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_asc.golden create mode 100644 internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_dsc.golden create mode 100644 internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_name.golden create mode 100644 internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_percentage.golden create mode 100644 internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_asc.golden create mode 100644 internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_dsc.golden create mode 100644 internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_name.golden create mode 100644 internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_percentage.golden delete mode 100644 internal/model/model_test.go diff --git a/internal/gocovshtest/happy_flow_test.go b/internal/gocovshtest/happy_flow_test.go index 57c7550..2f44cce 100644 --- a/internal/gocovshtest/happy_flow_test.go +++ b/internal/gocovshtest/happy_flow_test.go @@ -163,4 +163,37 @@ func testHappyFlow(t *testing.T, prefix string, requestedFiles []string, filtere g.Assert(t, "happy_flow_toggle_help_short", []byte(mm.View())) }) }) + + t.Run("toggle sort", func(t *testing.T) { + t.Run("name", func(t *testing.T) { + mm, cmd := mt.sendLetterKey('s') + require.NotNil(t, mm) + require.Nil(t, cmd) + + g.Assert(t, "happy_flow_toggle_sort_percentage", []byte(mm.View())) + }) + + t.Run("percentage", func(t *testing.T) { + mm, cmd := mt.sendLetterKey('s') + require.NotNil(t, mm) + require.Nil(t, cmd) + + g.Assert(t, "happy_flow_toggle_sort_name", []byte(mm.View())) + }) + + t.Run("dsc", func(t *testing.T) { + mm, cmd := mt.sendLetterKey('!') + require.NotNil(t, mm) + require.Nil(t, cmd) + + g.Assert(t, "happy_flow_toggle_sort_dsc", []byte(mm.View())) + }) + t.Run("asc", func(t *testing.T) { + mm, cmd := mt.sendLetterKey('!') + require.NotNil(t, mm) + require.Nil(t, cmd) + + g.Assert(t, "happy_flow_toggle_sort_asc", []byte(mm.View())) + }) + }) } diff --git a/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_asc.golden b/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_asc.golden new file mode 100644 index 0000000..2e01750 --- /dev/null +++ b/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_asc.golden @@ -0,0 +1,19 @@ + + Available files: + + 1 item + > covered.go 100.00% + + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_dsc.golden b/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_dsc.golden new file mode 100644 index 0000000..2e01750 --- /dev/null +++ b/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_dsc.golden @@ -0,0 +1,19 @@ + + Available files: + + 1 item + > covered.go 100.00% + + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_name.golden b/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_name.golden new file mode 100644 index 0000000..2e01750 --- /dev/null +++ b/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_name.golden @@ -0,0 +1,19 @@ + + Available files: + + 1 item + > covered.go 100.00% + + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_percentage.golden b/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_percentage.golden new file mode 100644 index 0000000..2e01750 --- /dev/null +++ b/internal/gocovshtest/testdata/general/filtered/happy_flow_toggle_sort_percentage.golden @@ -0,0 +1,19 @@ + + Available files: + + 1 item + > covered.go 100.00% + + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_asc.golden b/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_asc.golden new file mode 100644 index 0000000..b333ed3 --- /dev/null +++ b/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_asc.golden @@ -0,0 +1,19 @@ + + Available files: + + 2 items + covered.go 100.00% + > partial_with_a_very_long_name_to_trigger_ellipsis_in_the_output.go 75.00% + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_dsc.golden b/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_dsc.golden new file mode 100644 index 0000000..673ff61 --- /dev/null +++ b/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_dsc.golden @@ -0,0 +1,19 @@ + + Available files: + + 2 items + partial_with_a_very_long_name_to_trigger_ellipsis_in_the_output.go 75.00% + > covered.go 100.00% + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_name.golden b/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_name.golden new file mode 100644 index 0000000..b333ed3 --- /dev/null +++ b/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_name.golden @@ -0,0 +1,19 @@ + + Available files: + + 2 items + covered.go 100.00% + > partial_with_a_very_long_name_to_trigger_ellipsis_in_the_output.go 75.00% + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_percentage.golden b/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_percentage.golden new file mode 100644 index 0000000..b333ed3 --- /dev/null +++ b/internal/gocovshtest/testdata/general/not-requested/happy_flow_toggle_sort_percentage.golden @@ -0,0 +1,19 @@ + + Available files: + + 2 items + covered.go 100.00% + > partial_with_a_very_long_name_to_trigger_ellipsis_in_the_output.go 75.00% + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_asc.golden b/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_asc.golden new file mode 100644 index 0000000..2e01750 --- /dev/null +++ b/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_asc.golden @@ -0,0 +1,19 @@ + + Available files: + + 1 item + > covered.go 100.00% + + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_dsc.golden b/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_dsc.golden new file mode 100644 index 0000000..2e01750 --- /dev/null +++ b/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_dsc.golden @@ -0,0 +1,19 @@ + + Available files: + + 1 item + > covered.go 100.00% + + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_name.golden b/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_name.golden new file mode 100644 index 0000000..2e01750 --- /dev/null +++ b/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_name.golden @@ -0,0 +1,19 @@ + + Available files: + + 1 item + > covered.go 100.00% + + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_percentage.golden b/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_percentage.golden new file mode 100644 index 0000000..2e01750 --- /dev/null +++ b/internal/gocovshtest/testdata/general/requested/happy_flow_toggle_sort_percentage.golden @@ -0,0 +1,19 @@ + + Available files: + + 1 item + > covered.go 100.00% + + + + + + + + + + + + + ↑/k up • ↓/j down • / filter • q quit • ? more + \ No newline at end of file diff --git a/internal/model/model_test.go b/internal/model/model_test.go deleted file mode 100644 index 51d5cde..0000000 --- a/internal/model/model_test.go +++ /dev/null @@ -1,8 +0,0 @@ -package model - -import ( - "testing" -) - -func TestSortByPercentage(t *testing.T) { -} From fec4a7612aaa32863e66b1d5b2f2cac592688f34 Mon Sep 17 00:00:00 2001 From: Aidan Matchette Date: Wed, 19 Apr 2023 08:17:08 -0700 Subject: [PATCH 7/7] Fix: naming errors for sort testing --- internal/gocovshtest/happy_flow_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/gocovshtest/happy_flow_test.go b/internal/gocovshtest/happy_flow_test.go index 2f44cce..61bd85c 100644 --- a/internal/gocovshtest/happy_flow_test.go +++ b/internal/gocovshtest/happy_flow_test.go @@ -165,7 +165,7 @@ func testHappyFlow(t *testing.T, prefix string, requestedFiles []string, filtere }) t.Run("toggle sort", func(t *testing.T) { - t.Run("name", func(t *testing.T) { + t.Run("percentage", func(t *testing.T) { mm, cmd := mt.sendLetterKey('s') require.NotNil(t, mm) require.Nil(t, cmd) @@ -173,7 +173,7 @@ func testHappyFlow(t *testing.T, prefix string, requestedFiles []string, filtere g.Assert(t, "happy_flow_toggle_sort_percentage", []byte(mm.View())) }) - t.Run("percentage", func(t *testing.T) { + t.Run("name", func(t *testing.T) { mm, cmd := mt.sendLetterKey('s') require.NotNil(t, mm) require.Nil(t, cmd)