(t *testing.T)
| 96 | } |
| 97 | |
| 98 | func 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 |
nothing calls this directly
no test coverage detected