@@ -10,13 +10,20 @@ import type { ExpandedDbItem } from "../../../src/databases/db-item-expansion";
1010import { ExpandedDbItemKind } from "../../../src/databases/db-item-expansion" ;
1111import { createRemoteTree } from "../../../src/databases/db-tree-creator" ;
1212import { createDbConfig } from "../../factories/db-config-factories" ;
13+ import { createMockVariantAnalysisConfig } from "../../factories/config" ;
1314
1415describe ( "db tree creator" , ( ) => {
16+ const defaultVariantAnalysisConfig = createMockVariantAnalysisConfig ( ) ;
17+
1518 describe ( "createRemoteTree" , ( ) => {
1619 it ( "should build root node and system defined lists" , ( ) => {
1720 const dbConfig = createDbConfig ( ) ;
1821
19- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
22+ const dbTreeRoot = createRemoteTree (
23+ dbConfig ,
24+ defaultVariantAnalysisConfig ,
25+ [ ] ,
26+ ) ;
2027
2128 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
2229 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -45,6 +52,24 @@ describe("db tree creator", () => {
4552 } ) ;
4653 } ) ;
4754
55+ it ( "displays empty list when no remote user defined list nodes and system defined lists are disabled" , ( ) => {
56+ const dbConfig = createDbConfig ( ) ;
57+
58+ const dbTreeRoot = createRemoteTree (
59+ dbConfig ,
60+ {
61+ ...defaultVariantAnalysisConfig ,
62+ showSystemDefinedRepositoryLists : false ,
63+ } ,
64+ [ ] ,
65+ ) ;
66+
67+ expect ( dbTreeRoot ) . toBeTruthy ( ) ;
68+ expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
69+ expect ( dbTreeRoot . expanded ) . toBe ( false ) ;
70+ expect ( dbTreeRoot . children . length ) . toBe ( 0 ) ;
71+ } ) ;
72+
4873 it ( "should create remote user defined list nodes" , ( ) => {
4974 const dbConfig = createDbConfig ( {
5075 remoteLists : [
@@ -59,10 +84,15 @@ describe("db tree creator", () => {
5984 ] ,
6085 } ) ;
6186
62- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
87+ const dbTreeRoot = createRemoteTree (
88+ dbConfig ,
89+ defaultVariantAnalysisConfig ,
90+ [ ] ,
91+ ) ;
6392
6493 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
6594 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
95+ expect ( dbTreeRoot . children . length ) . toBe ( 5 ) ;
6696 const repositoryListNodes = dbTreeRoot . children . filter (
6797 isRemoteUserDefinedListDbItem ,
6898 ) ;
@@ -102,12 +132,76 @@ describe("db tree creator", () => {
102132 } ) ;
103133 } ) ;
104134
135+ it ( "shows only user defined list nodes when system defined lists are disabled" , ( ) => {
136+ const dbConfig = createDbConfig ( {
137+ remoteLists : [
138+ {
139+ name : "my-list-1" ,
140+ repositories : [ "owner1/repo1" , "owner1/repo2" , "owner2/repo1" ] ,
141+ } ,
142+ {
143+ name : "my-list-2" ,
144+ repositories : [ "owner3/repo1" , "owner3/repo2" , "owner4/repo1" ] ,
145+ } ,
146+ ] ,
147+ } ) ;
148+
149+ const dbTreeRoot = createRemoteTree (
150+ dbConfig ,
151+ {
152+ ...defaultVariantAnalysisConfig ,
153+ showSystemDefinedRepositoryLists : false ,
154+ } ,
155+ [ ] ,
156+ ) ;
157+
158+ expect ( dbTreeRoot ) . toBeTruthy ( ) ;
159+ expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
160+ expect ( dbTreeRoot . children . length ) . toBe ( 2 ) ;
161+ expect ( dbTreeRoot . children [ 0 ] ) . toEqual ( {
162+ kind : DbItemKind . RemoteUserDefinedList ,
163+ selected : false ,
164+ expanded : false ,
165+ listName : dbConfig . databases . variantAnalysis . repositoryLists [ 0 ] . name ,
166+ repos :
167+ dbConfig . databases . variantAnalysis . repositoryLists [ 0 ] . repositories . map (
168+ ( repo ) => ( {
169+ kind : DbItemKind . RemoteRepo ,
170+ selected : false ,
171+ repoFullName : repo ,
172+ parentListName :
173+ dbConfig . databases . variantAnalysis . repositoryLists [ 0 ] . name ,
174+ } ) ,
175+ ) ,
176+ } ) ;
177+ expect ( dbTreeRoot . children [ 1 ] ) . toEqual ( {
178+ kind : DbItemKind . RemoteUserDefinedList ,
179+ selected : false ,
180+ expanded : false ,
181+ listName : dbConfig . databases . variantAnalysis . repositoryLists [ 1 ] . name ,
182+ repos :
183+ dbConfig . databases . variantAnalysis . repositoryLists [ 1 ] . repositories . map (
184+ ( repo ) => ( {
185+ kind : DbItemKind . RemoteRepo ,
186+ selected : false ,
187+ repoFullName : repo ,
188+ parentListName :
189+ dbConfig . databases . variantAnalysis . repositoryLists [ 1 ] . name ,
190+ } ) ,
191+ ) ,
192+ } ) ;
193+ } ) ;
194+
105195 it ( "should create remote owner nodes" , ( ) => {
106196 const dbConfig : DbConfig = createDbConfig ( {
107197 remoteOwners : [ "owner1" , "owner2" ] ,
108198 } ) ;
109199
110- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
200+ const dbTreeRoot = createRemoteTree (
201+ dbConfig ,
202+ defaultVariantAnalysisConfig ,
203+ [ ] ,
204+ ) ;
111205
112206 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
113207 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -131,7 +225,11 @@ describe("db tree creator", () => {
131225 remoteRepos : [ "owner1/repo1" , "owner1/repo2" , "owner2/repo1" ] ,
132226 } ) ;
133227
134- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
228+ const dbTreeRoot = createRemoteTree (
229+ dbConfig ,
230+ defaultVariantAnalysisConfig ,
231+ [ ] ,
232+ ) ;
135233
136234 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
137235 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -170,7 +268,11 @@ describe("db tree creator", () => {
170268 } ,
171269 } ) ;
172270
173- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
271+ const dbTreeRoot = createRemoteTree (
272+ dbConfig ,
273+ defaultVariantAnalysisConfig ,
274+ [ ] ,
275+ ) ;
174276
175277 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
176278 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -191,7 +293,11 @@ describe("db tree creator", () => {
191293 } ,
192294 } ) ;
193295
194- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
296+ const dbTreeRoot = createRemoteTree (
297+ dbConfig ,
298+ defaultVariantAnalysisConfig ,
299+ [ ] ,
300+ ) ;
195301
196302 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
197303 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -213,7 +319,11 @@ describe("db tree creator", () => {
213319 } ,
214320 } ) ;
215321
216- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
322+ const dbTreeRoot = createRemoteTree (
323+ dbConfig ,
324+ defaultVariantAnalysisConfig ,
325+ [ ] ,
326+ ) ;
217327
218328 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
219329 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -240,7 +350,11 @@ describe("db tree creator", () => {
240350 } ,
241351 } ) ;
242352
243- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
353+ const dbTreeRoot = createRemoteTree (
354+ dbConfig ,
355+ defaultVariantAnalysisConfig ,
356+ [ ] ,
357+ ) ;
244358
245359 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
246360
@@ -265,7 +379,11 @@ describe("db tree creator", () => {
265379 } ,
266380 ] ;
267381
268- const dbTreeRoot = createRemoteTree ( dbConfig , expanded ) ;
382+ const dbTreeRoot = createRemoteTree (
383+ dbConfig ,
384+ defaultVariantAnalysisConfig ,
385+ expanded ,
386+ ) ;
269387
270388 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
271389 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -291,7 +409,11 @@ describe("db tree creator", () => {
291409 } ,
292410 ] ;
293411
294- const dbTreeRoot = createRemoteTree ( dbConfig , expanded ) ;
412+ const dbTreeRoot = createRemoteTree (
413+ dbConfig ,
414+ defaultVariantAnalysisConfig ,
415+ expanded ,
416+ ) ;
295417
296418 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
297419 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
0 commit comments