1+ import type { VariantAnalysisConfig } from "../../../src/config" ;
12import type { DbConfig } from "../../../src/databases/config/db-config" ;
23import { SelectedDbItemKind } from "../../../src/databases/config/db-config" ;
34import {
@@ -12,11 +13,20 @@ import { createRemoteTree } from "../../../src/databases/db-tree-creator";
1213import { createDbConfig } from "../../factories/db-config-factories" ;
1314
1415describe ( "db tree creator" , ( ) => {
16+ const defaultVariantAnalysisConfig : VariantAnalysisConfig = {
17+ controllerRepo : "foo/bar" ,
18+ showSystemDefinedRepositoryLists : true ,
19+ } ;
20+
1521 describe ( "createRemoteTree" , ( ) => {
1622 it ( "should build root node and system defined lists" , ( ) => {
1723 const dbConfig = createDbConfig ( ) ;
1824
19- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
25+ const dbTreeRoot = createRemoteTree (
26+ dbConfig ,
27+ defaultVariantAnalysisConfig ,
28+ [ ] ,
29+ ) ;
2030
2131 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
2232 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -45,6 +55,24 @@ describe("db tree creator", () => {
4555 } ) ;
4656 } ) ;
4757
58+ it ( "displays empty list when no remote user defined list nodes and system defined lists are disabled" , ( ) => {
59+ const dbConfig = createDbConfig ( ) ;
60+
61+ const dbTreeRoot = createRemoteTree (
62+ dbConfig ,
63+ {
64+ ...defaultVariantAnalysisConfig ,
65+ showSystemDefinedRepositoryLists : false ,
66+ } ,
67+ [ ] ,
68+ ) ;
69+
70+ expect ( dbTreeRoot ) . toBeTruthy ( ) ;
71+ expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
72+ expect ( dbTreeRoot . expanded ) . toBe ( false ) ;
73+ expect ( dbTreeRoot . children . length ) . toBe ( 0 ) ;
74+ } ) ;
75+
4876 it ( "should create remote user defined list nodes" , ( ) => {
4977 const dbConfig = createDbConfig ( {
5078 remoteLists : [
@@ -59,10 +87,15 @@ describe("db tree creator", () => {
5987 ] ,
6088 } ) ;
6189
62- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
90+ const dbTreeRoot = createRemoteTree (
91+ dbConfig ,
92+ defaultVariantAnalysisConfig ,
93+ [ ] ,
94+ ) ;
6395
6496 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
6597 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
98+ expect ( dbTreeRoot . children . length ) . toBe ( 5 ) ;
6699 const repositoryListNodes = dbTreeRoot . children . filter (
67100 isRemoteUserDefinedListDbItem ,
68101 ) ;
@@ -102,12 +135,76 @@ describe("db tree creator", () => {
102135 } ) ;
103136 } ) ;
104137
138+ it ( "shows only user defined list nodes when system defined lists are disabled" , ( ) => {
139+ const dbConfig = createDbConfig ( {
140+ remoteLists : [
141+ {
142+ name : "my-list-1" ,
143+ repositories : [ "owner1/repo1" , "owner1/repo2" , "owner2/repo1" ] ,
144+ } ,
145+ {
146+ name : "my-list-2" ,
147+ repositories : [ "owner3/repo1" , "owner3/repo2" , "owner4/repo1" ] ,
148+ } ,
149+ ] ,
150+ } ) ;
151+
152+ const dbTreeRoot = createRemoteTree (
153+ dbConfig ,
154+ {
155+ ...defaultVariantAnalysisConfig ,
156+ showSystemDefinedRepositoryLists : false ,
157+ } ,
158+ [ ] ,
159+ ) ;
160+
161+ expect ( dbTreeRoot ) . toBeTruthy ( ) ;
162+ expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
163+ expect ( dbTreeRoot . children . length ) . toBe ( 2 ) ;
164+ expect ( dbTreeRoot . children [ 0 ] ) . toEqual ( {
165+ kind : DbItemKind . RemoteUserDefinedList ,
166+ selected : false ,
167+ expanded : false ,
168+ listName : dbConfig . databases . variantAnalysis . repositoryLists [ 0 ] . name ,
169+ repos :
170+ dbConfig . databases . variantAnalysis . repositoryLists [ 0 ] . repositories . map (
171+ ( repo ) => ( {
172+ kind : DbItemKind . RemoteRepo ,
173+ selected : false ,
174+ repoFullName : repo ,
175+ parentListName :
176+ dbConfig . databases . variantAnalysis . repositoryLists [ 0 ] . name ,
177+ } ) ,
178+ ) ,
179+ } ) ;
180+ expect ( dbTreeRoot . children [ 1 ] ) . toEqual ( {
181+ kind : DbItemKind . RemoteUserDefinedList ,
182+ selected : false ,
183+ expanded : false ,
184+ listName : dbConfig . databases . variantAnalysis . repositoryLists [ 1 ] . name ,
185+ repos :
186+ dbConfig . databases . variantAnalysis . repositoryLists [ 1 ] . repositories . map (
187+ ( repo ) => ( {
188+ kind : DbItemKind . RemoteRepo ,
189+ selected : false ,
190+ repoFullName : repo ,
191+ parentListName :
192+ dbConfig . databases . variantAnalysis . repositoryLists [ 1 ] . name ,
193+ } ) ,
194+ ) ,
195+ } ) ;
196+ } ) ;
197+
105198 it ( "should create remote owner nodes" , ( ) => {
106199 const dbConfig : DbConfig = createDbConfig ( {
107200 remoteOwners : [ "owner1" , "owner2" ] ,
108201 } ) ;
109202
110- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
203+ const dbTreeRoot = createRemoteTree (
204+ dbConfig ,
205+ defaultVariantAnalysisConfig ,
206+ [ ] ,
207+ ) ;
111208
112209 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
113210 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -131,7 +228,11 @@ describe("db tree creator", () => {
131228 remoteRepos : [ "owner1/repo1" , "owner1/repo2" , "owner2/repo1" ] ,
132229 } ) ;
133230
134- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
231+ const dbTreeRoot = createRemoteTree (
232+ dbConfig ,
233+ defaultVariantAnalysisConfig ,
234+ [ ] ,
235+ ) ;
135236
136237 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
137238 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -170,7 +271,11 @@ describe("db tree creator", () => {
170271 } ,
171272 } ) ;
172273
173- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
274+ const dbTreeRoot = createRemoteTree (
275+ dbConfig ,
276+ defaultVariantAnalysisConfig ,
277+ [ ] ,
278+ ) ;
174279
175280 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
176281 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -191,7 +296,11 @@ describe("db tree creator", () => {
191296 } ,
192297 } ) ;
193298
194- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
299+ const dbTreeRoot = createRemoteTree (
300+ dbConfig ,
301+ defaultVariantAnalysisConfig ,
302+ [ ] ,
303+ ) ;
195304
196305 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
197306 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -213,7 +322,11 @@ describe("db tree creator", () => {
213322 } ,
214323 } ) ;
215324
216- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
325+ const dbTreeRoot = createRemoteTree (
326+ dbConfig ,
327+ defaultVariantAnalysisConfig ,
328+ [ ] ,
329+ ) ;
217330
218331 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
219332 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -240,7 +353,11 @@ describe("db tree creator", () => {
240353 } ,
241354 } ) ;
242355
243- const dbTreeRoot = createRemoteTree ( dbConfig , [ ] ) ;
356+ const dbTreeRoot = createRemoteTree (
357+ dbConfig ,
358+ defaultVariantAnalysisConfig ,
359+ [ ] ,
360+ ) ;
244361
245362 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
246363
@@ -265,7 +382,11 @@ describe("db tree creator", () => {
265382 } ,
266383 ] ;
267384
268- const dbTreeRoot = createRemoteTree ( dbConfig , expanded ) ;
385+ const dbTreeRoot = createRemoteTree (
386+ dbConfig ,
387+ defaultVariantAnalysisConfig ,
388+ expanded ,
389+ ) ;
269390
270391 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
271392 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
@@ -291,7 +412,11 @@ describe("db tree creator", () => {
291412 } ,
292413 ] ;
293414
294- const dbTreeRoot = createRemoteTree ( dbConfig , expanded ) ;
415+ const dbTreeRoot = createRemoteTree (
416+ dbConfig ,
417+ defaultVariantAnalysisConfig ,
418+ expanded ,
419+ ) ;
295420
296421 expect ( dbTreeRoot ) . toBeTruthy ( ) ;
297422 expect ( dbTreeRoot . kind ) . toBe ( DbItemKind . RootRemote ) ;
0 commit comments