MCPcopy
hub / github.com/jesseduffield/lazygit / TestFileTreeSortOrderConfig

Function TestFileTreeSortOrderConfig

pkg/gui/filetree/file_tree_test.go:98–163  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

96}
97
98func TestFileTreeSortOrderConfig(t *testing.T) {
99 // "Dir" (uppercase D), "b-file", and "Z-file" produce distinct orderings across all
100 // combinations of sort order and case sensitivity:
101 // ASCII order: D(68) < Z(90) < b(98)
102 // Case-insensitive order: b < d < z
103 files := []*models.File{
104 {Path: "Dir/inner"},
105 {Path: "b-file"},
106 {Path: "Z-file"},
107 }
108
109 scenarios := []struct {
110 sortOrder string
111 caseSensitive bool
112 expected []string
113 }{
114 {
115 sortOrder: "mixed",
116 caseSensitive: true,
117 expected: []string{"Dir", "Dir/inner", "Z-file", "b-file"},
118 },
119 {
120 sortOrder: "mixed",
121 caseSensitive: false,
122 expected: []string{"b-file", "Dir", "Dir/inner", "Z-file"},
123 },
124 {
125 sortOrder: "filesFirst",
126 caseSensitive: true,
127 expected: []string{"Z-file", "b-file", "Dir", "Dir/inner"},
128 },
129 {
130 sortOrder: "filesFirst",
131 caseSensitive: false,
132 expected: []string{"b-file", "Z-file", "Dir", "Dir/inner"},
133 },
134 {
135 sortOrder: "foldersFirst",
136 caseSensitive: true,
137 expected: []string{"Dir", "Dir/inner", "Z-file", "b-file"},
138 },
139 {
140 sortOrder: "foldersFirst",
141 caseSensitive: false,
142 expected: []string{"Dir", "Dir/inner", "b-file", "Z-file"},
143 },
144 }
145
146 for _, s := range scenarios {
147 t.Run(s.sortOrder+"/caseSensitive="+fmt.Sprintf("%v", s.caseSensitive), func(t *testing.T) {
148 userConfig := config.GetDefaultConfig()
149 userConfig.Gui.ShowRootItemInFileTree = false
150 userConfig.Gui.FileTreeSortOrder = s.sortOrder
151 userConfig.Gui.FileTreeSortCaseSensitive = s.caseSensitive
152 cmn := common.NewDummyCommonWithUserConfigAndAppState(userConfig, nil)
153 tree := NewFileTree(func() []*models.File { return files }, cmn, true)
154 tree.SetTree()
155

Callers

nothing calls this directly

Calls 9

SetTreeMethod · 0.95
LenMethod · 0.95
GetMethod · 0.95
GetDefaultConfigFunction · 0.92
NewFileTreeFunction · 0.85
RunMethod · 0.65
SprintfMethod · 0.65
GetPathMethod · 0.65

Tested by

no test coverage detected