33 * SPDX-License-Identifier: AGPL-3.0-or-later
44 */
55
6- import type { IFolder , IView } from '../../lib/index.ts'
6+ import type { IFileListHeader , IFolder , IView } from '../../lib/index.ts'
77
88import { beforeEach , describe , expect , test , vi } from 'vitest'
9- import { getFileListHeaders , Header , registerFileListHeaders } from '../../lib/headers/index.ts'
9+ import { getFileListHeaders , registerFileListHeader } from '../../lib/headers/index.ts'
1010import { getRegistry } from '../../lib/registry.ts'
1111import logger from '../../lib/utils/logger.ts'
1212
@@ -16,97 +16,71 @@ describe('FileListHeader init', () => {
1616 } )
1717
1818 test ( 'Getting empty uninitialized FileListHeader' , ( ) => {
19- logger . debug = vi . fn ( )
2019 const headers = getFileListHeaders ( )
2120 expect ( window . _nc_filelistheader ) . toBeDefined ( )
2221 expect ( headers ) . toHaveLength ( 0 )
23- expect ( logger . debug ) . toHaveBeenCalledTimes ( 1 )
2422 } )
2523
2624 test ( 'register FileListHeader' , ( ) => {
27- logger . debug = vi . fn ( )
28- const header = new Header ( {
25+ const header : IFileListHeader = {
2926 id : 'test' ,
3027 order : 1 ,
3128 enabled : ( ) => true ,
3229 render : ( ) => { } ,
3330 updated : ( ) => { } ,
34- } )
31+ }
3532
3633 expect ( header . id ) . toBe ( 'test' )
3734 expect ( header . order ) . toBe ( 1 )
3835 expect ( header . enabled ! ( { } as IFolder , { } as IView ) ) . toBe ( true )
3936
40- registerFileListHeaders ( header )
37+ registerFileListHeader ( header )
4138
4239 expect ( window . _nc_filelistheader ) . toHaveLength ( 1 )
4340 expect ( getFileListHeaders ( ) ) . toHaveLength ( 1 )
4441 expect ( getFileListHeaders ( ) [ 0 ] ) . toStrictEqual ( header )
45- expect ( logger . debug ) . toHaveBeenCalled ( )
4642 } )
4743
4844 test ( 'register FileListHeader emits registry event' , ( ) => {
4945 logger . debug = vi . fn ( )
5046 const callback = vi . fn ( )
51- const header = new Header ( {
47+ const header : IFileListHeader = {
5248 id : 'test' ,
5349 order : 1 ,
5450 enabled : ( ) => true ,
5551 render : ( ) => { } ,
5652 updated : ( ) => { } ,
57- } )
53+ }
5854
5955 getRegistry ( ) . addEventListener ( 'register:listHeader' , callback )
60- registerFileListHeaders ( header )
56+ registerFileListHeader ( header )
6157 expect ( callback ) . toHaveBeenCalled ( )
6258 expect ( callback . mock . calls [ 0 ] [ 0 ] ) . toBeInstanceOf ( CustomEvent )
6359 expect ( callback . mock . calls [ 0 ] [ 0 ] . type ) . toBe ( 'register:listHeader' )
6460 expect ( callback . mock . calls [ 0 ] [ 0 ] . detail ) . toBe ( header )
6561 } )
6662
67- test ( 'getFileListHeaders() returned array is reactive' , ( ) => {
68- logger . debug = vi . fn ( )
69-
70- const headers = getFileListHeaders ( )
71- // is empty for now
72- expect ( headers ) . toHaveLength ( 0 )
73-
74- const header = new Header ( {
75- id : 'test' ,
76- order : 1 ,
77- enabled : ( ) => true ,
78- render : ( ) => { } ,
79- updated : ( ) => { } ,
80- } )
81-
82- registerFileListHeaders ( header )
83-
84- // Now the array changed as it should be reactive
85- expect ( headers ) . toHaveLength ( 1 )
86- expect ( headers [ 0 ] ) . toStrictEqual ( header )
87- } )
88-
8963 test ( 'Duplicate Header gets rejected' , ( ) => {
9064 logger . error = vi . fn ( )
91- const header = new Header ( {
65+ const header : IFileListHeader = {
9266 id : 'test' ,
9367 order : 1 ,
9468 render : ( ) => { } ,
9569 updated : ( ) => { } ,
96- } )
70+ }
9771
98- registerFileListHeaders ( header )
72+ registerFileListHeader ( header )
9973 expect ( getFileListHeaders ( ) ) . toHaveLength ( 1 )
10074 expect ( getFileListHeaders ( ) [ 0 ] ) . toStrictEqual ( header )
10175
102- const header2 = new Header ( {
76+ const header2 : IFileListHeader = {
10377 id : 'test' ,
10478 order : 2 ,
10579 render : ( ) => { } ,
10680 updated : ( ) => { } ,
107- } )
81+ }
10882
109- registerFileListHeaders ( header2 )
83+ registerFileListHeader ( header2 )
11084 expect ( getFileListHeaders ( ) ) . toHaveLength ( 1 )
11185 expect ( getFileListHeaders ( ) [ 0 ] ) . toStrictEqual ( header )
11286 expect ( logger . error ) . toHaveBeenCalledWith ( 'Header test already registered' , { header : header2 } )
@@ -115,68 +89,54 @@ describe('FileListHeader init', () => {
11589
11690describe ( 'FileListHeader validate' , ( ) => {
11791 test ( 'Missing required props' , ( ) => {
118- expect ( ( ) => {
119- new Header ( {
120- id : null ,
121- render : ( ) => { } ,
122- updated : ( ) => { } ,
123- } as any as Header )
124- } ) . toThrowError ( 'Invalid header: id, render and updated are required' )
125-
126- expect ( ( ) => {
127- new Header ( {
128- id : '123' ,
129- render : null ,
130- updated : ( ) => { } ,
131- } as any as Header )
132- } ) . toThrowError ( 'Invalid header: id, render and updated are required' )
133-
134- expect ( ( ) => {
135- new Header ( {
136- id : '123' ,
137- render : ( ) => { } ,
138- updated : null ,
139- } as any as Header )
140- } ) . toThrowError ( 'Invalid header: id, render and updated are required' )
92+ expect ( ( ) => registerFileListHeader ( {
93+ id : null ,
94+ render : ( ) => { } ,
95+ updated : ( ) => { } ,
96+ } as unknown as IFileListHeader ) ) . toThrowError ( 'Invalid header: id, render and updated are required' )
97+
98+ expect ( ( ) => registerFileListHeader ( {
99+ id : '123' ,
100+ render : null ,
101+ updated : ( ) => { } ,
102+ } as unknown as IFileListHeader ) ) . toThrowError ( 'Invalid header: id, render and updated are required' )
103+
104+ expect ( ( ) => registerFileListHeader ( {
105+ id : '123' ,
106+ render : ( ) => { } ,
107+ updated : null ,
108+ } as unknown as IFileListHeader ) ) . toThrowError ( 'Invalid header: id, render and updated are required' )
141109 } )
142110 test ( 'Invalid id' , ( ) => {
143- expect ( ( ) => {
144- new Header ( {
145- id : true ,
146- render : ( ) => { } ,
147- updated : ( ) => { } ,
148- } as any as Header )
149- } ) . toThrowError ( 'Invalid id property' )
111+ expect ( ( ) => registerFileListHeader ( {
112+ id : true ,
113+ render : ( ) => { } ,
114+ updated : ( ) => { } ,
115+ } as unknown as IFileListHeader ) ) . toThrowError ( 'Invalid id property' )
150116 } )
151117 test ( 'Invalid enabled' , ( ) => {
152- expect ( ( ) => {
153- new Header ( {
154- id : 'test' ,
155- enabled : true ,
156- render : ( ) => { } ,
157- updated : ( ) => { } ,
158- } as any as Header )
159- } ) . toThrowError ( 'Invalid enabled property' )
118+ expect ( ( ) => registerFileListHeader ( {
119+ id : 'test' ,
120+ enabled : true ,
121+ render : ( ) => { } ,
122+ updated : ( ) => { } ,
123+ } as unknown as IFileListHeader ) ) . toThrowError ( 'Invalid enabled property' )
160124 } )
161125 test ( 'Invalid render' , ( ) => {
162- expect ( ( ) => {
163- new Header ( {
164- id : 'test' ,
165- enabled : ( ) => { } ,
166- render : true ,
167- updated : ( ) => { } ,
168- } as any as Header )
169- } ) . toThrowError ( 'Invalid render property' )
126+ expect ( ( ) => registerFileListHeader ( {
127+ id : 'test' ,
128+ enabled : ( ) => { } ,
129+ render : true ,
130+ updated : ( ) => { } ,
131+ } as unknown as IFileListHeader ) ) . toThrowError ( 'Invalid render property' )
170132 } )
171133 test ( 'Invalid updated' , ( ) => {
172- expect ( ( ) => {
173- new Header ( {
174- id : 'test' ,
175- enabled : ( ) => { } ,
176- render : ( ) => { } ,
177- updated : true ,
178- } as any as Header )
179- } ) . toThrowError ( 'Invalid updated property' )
134+ expect ( ( ) => registerFileListHeader ( {
135+ id : 'test' ,
136+ enabled : ( ) => { } ,
137+ render : ( ) => { } ,
138+ updated : true ,
139+ } as unknown as IFileListHeader ) ) . toThrowError ( 'Invalid updated property' )
180140 } )
181141} )
182142
@@ -186,13 +146,13 @@ describe('FileListHeader exec', () => {
186146 const render = vi . fn ( )
187147 const updated = vi . fn ( )
188148
189- const header = new Header ( {
149+ const header : IFileListHeader = {
190150 id : 'test' ,
191151 order : 1 ,
192152 enabled,
193153 render,
194154 updated,
195- } )
155+ }
196156
197157 expect ( header . enabled ) . toBe ( enabled )
198158 expect ( header . render ) . toBe ( render )
0 commit comments