@@ -294,6 +294,68 @@ describe('CollectionsRepository', () => {
294294 const expectedFileName = 'test-file-1.txt'
295295 const expectedCollectionsName = 'Scientific Research'
296296
297+ //prettier-ignore
298+ const expectedFacetsAll = [
299+ {
300+ dvCategory : { friendly : 'Dataverse Category' , labels : [ { name : 'Laboratory' , count : 1 } ] }
301+ } ,
302+ {
303+ publicationStatus : { friendly : 'Publication Status' , labels : [ { name : 'Unpublished' , count : 3 } , { name : 'Draft' , count : 2 } ] }
304+ } ,
305+ {
306+ authorName_ss : { friendly : 'Author Name' , labels : [ { name : 'Admin, Dataverse' , count : 1 } , { name : 'Owner, Dataverse' , count : 1 } ] }
307+ } ,
308+ {
309+ subject_ss : { friendly : 'Subject' , labels : [ { name : 'Medicine, Health and Life Sciences' , count : 1 } ] }
310+ } ,
311+ {
312+ fileTypeGroupFacet : { friendly : 'File Type' , labels : [ { name : 'Text' , count : 1 } ] }
313+ } ,
314+ {
315+ fileAccess : { friendly : 'Access' , labels : [ { name : 'Public' , count : 1 } ] }
316+ }
317+ ]
318+ //prettier-ignore
319+ const expectedFacetsFromCollectionOnly = [
320+ {
321+ dvCategory : { friendly : 'Dataverse Category' , labels : [ { name : 'Laboratory' , count : 1 } ] }
322+ } ,
323+ {
324+ publicationStatus : { friendly : 'Publication Status' , labels : [ { name : 'Unpublished' , count : 1 } ] }
325+ }
326+ ]
327+ //prettier-ignore
328+ const expectedFacetsFromDatasetOnly = [
329+ {
330+ publicationStatus : { friendly : 'Publication Status' , labels : [ { name : 'Draft' , count : 1 } , { name : 'Unpublished' , count : 1 } ] }
331+ } ,
332+ {
333+ authorName_ss : { friendly : 'Author Name' , labels : [ { name : 'Admin, Dataverse' , count : 1 } , { name : 'Owner, Dataverse' , count : 1 } ] }
334+ } ,
335+ {
336+ subject_ss : { friendly : 'Subject' , labels : [ { name : 'Medicine, Health and Life Sciences' , count : 1 } ] }
337+ }
338+ ]
339+ //prettier-ignore
340+ const expectedFacetsFromFileOnly = [
341+ {
342+ publicationStatus : { friendly : 'Publication Status' , labels : [ { name : 'Draft' , count : 1 } , { name : 'Unpublished' , count : 1 } ] }
343+ } ,
344+ { fileTypeGroupFacet : { friendly : 'File Type' , labels : [ { name : 'Text' , count : 1 } ] } } ,
345+ { fileAccess : { friendly : 'Access' , labels : [ { name : 'Public' , count : 1 } ] } }
346+ ]
347+ //prettier-ignore
348+ const expectedFacetsFromCollectionAndFile = [
349+ {
350+ dvCategory : { friendly : 'Dataverse Category' , labels : [ { name : 'Laboratory' , count : 1 } ] }
351+ } ,
352+ {
353+ publicationStatus : { friendly : 'Publication Status' , labels : [ { name : 'Unpublished' , count : 2 } , { name : 'Draft' , count : 1 } ] }
354+ } ,
355+ { fileTypeGroupFacet : { friendly : 'File Type' , labels : [ { name : 'Text' , count : 1 } ] } } ,
356+ { fileAccess : { friendly : 'Access' , labels : [ { name : 'Public' , count : 1 } ] } }
357+ ]
358+
297359 expect ( actualFilePreview . checksum ?. type ) . toBe ( 'MD5' )
298360 expect ( actualFilePreview . checksum ?. value ) . toBe ( expectedFileMd5 )
299361 expect ( actualFilePreview . datasetCitation ) . toContain ( expectedDatasetCitationFragment )
@@ -347,6 +409,8 @@ describe('CollectionsRepository', () => {
347409
348410 expect ( actual . totalItemCount ) . toBe ( 3 )
349411
412+ expect ( actual . facets ) . toEqual ( expectedFacetsAll )
413+
350414 // Test limit and offset
351415 actual = await sut . getCollectionItems ( testCollectionAlias , 1 , 1 )
352416 expect ( ( actual . items [ 0 ] as DatasetPreview ) . persistentId ) . toBe ( testDatasetIds . persistentId )
@@ -413,6 +477,7 @@ describe('CollectionsRepository', () => {
413477 expect ( actual . items . length ) . toBe ( 1 )
414478 expect ( actual . totalItemCount ) . toBe ( 1 )
415479 expect ( ( actual . items [ 0 ] as CollectionPreview ) . name ) . toBe ( expectedCollectionsName )
480+ expect ( actual . facets ) . toEqual ( expectedFacetsFromCollectionOnly )
416481
417482 // Test type dataset
418483 const collectionSearchCriteriaForDatasetType = new CollectionSearchCriteria ( ) . withItemTypes ( [
@@ -427,6 +492,7 @@ describe('CollectionsRepository', () => {
427492 expect ( actual . items . length ) . toBe ( 1 )
428493 expect ( actual . totalItemCount ) . toBe ( 1 )
429494 expect ( ( actual . items [ 0 ] as DatasetPreview ) . title ) . toBe ( expectedDatasetDescription )
495+ expect ( actual . facets ) . toEqual ( expectedFacetsFromDatasetOnly )
430496
431497 // Test type file
432498 const collectionSearchCriteriaForFileType = new CollectionSearchCriteria ( ) . withItemTypes ( [
@@ -441,6 +507,7 @@ describe('CollectionsRepository', () => {
441507 expect ( actual . items . length ) . toBe ( 1 )
442508 expect ( actual . totalItemCount ) . toBe ( 1 )
443509 expect ( ( actual . items [ 0 ] as FilePreview ) . name ) . toBe ( expectedFileName )
510+ expect ( actual . facets ) . toEqual ( expectedFacetsFromFileOnly )
444511
445512 // Test multiple types
446513 const collectionSearchCriteriaForMultiTypes = new CollectionSearchCriteria ( ) . withItemTypes ( [
@@ -457,6 +524,7 @@ describe('CollectionsRepository', () => {
457524 expect ( actual . totalItemCount ) . toBe ( 2 )
458525 expect ( ( actual . items [ 0 ] as FilePreview ) . name ) . toBe ( expectedFileName )
459526 expect ( ( actual . items [ 1 ] as CollectionPreview ) . name ) . toBe ( expectedCollectionsName )
527+ expect ( actual . facets ) . toEqual ( expectedFacetsFromCollectionAndFile )
460528 } )
461529
462530 test ( 'should return error when collection does not exist' , async ( ) => {
0 commit comments