11import { CollectionsRepository } from '../../../src/collections/infra/repositories/CollectionsRepository'
22import { TestConstants } from '../../testHelpers/TestConstants'
33import {
4+ CollectionFeaturedItemsDTO ,
45 CollectionItemType ,
56 CollectionPreview ,
67 CollectionSearchCriteria ,
@@ -31,6 +32,8 @@ import {
3132import { ROOT_COLLECTION_ID } from '../../../src/collections/domain/models/Collection'
3233import {
3334 createCollectionFeaturedItemViaApi ,
35+ createImageFile ,
36+ deleteAllCollectionFeaturedItemsViaApi ,
3437 deleteCollectionFeaturedItemViaApi
3538} from '../../testHelpers/collections/collectionFeaturedItemsHelper'
3639
@@ -762,7 +765,6 @@ describe('CollectionsRepository', () => {
762765
763766 test ( 'should return featured items array given a valid collection alias when collection has featured items' , async ( ) => {
764767 const featuredItemsResponse = await sut . getCollectionFeaturedItems ( testCollectionAlias )
765- console . log ( { featuredItemsResponse } )
766768
767769 expect ( featuredItemsResponse . length ) . toBe ( 1 )
768770 expect ( featuredItemsResponse [ 0 ] . id ) . toBe ( testFeaturedItemId )
@@ -785,4 +787,106 @@ describe('CollectionsRepository', () => {
785787 )
786788 } )
787789 } )
790+
791+ describe ( 'updateCollectionFeaturedItems' , ( ) => {
792+ afterAll ( async ( ) => {
793+ try {
794+ await deleteAllCollectionFeaturedItemsViaApi ( testCollectionAlias )
795+ } catch ( error ) {
796+ throw new Error (
797+ `Tests afterAll(): Error while deleting all featured items from collection: ${ testCollectionAlias } `
798+ )
799+ }
800+ } )
801+
802+ it ( 'should update collection featured items sending all new items' , async ( ) => {
803+ const newFeaturedItems : CollectionFeaturedItemsDTO = [
804+ {
805+ content : '<p class="rte-paragraph">Test content 1</p>' ,
806+ displayOrder : 0 ,
807+ file : undefined ,
808+ keepFile : false
809+ } ,
810+ {
811+ content : '<p class="rte-paragraph">Test content 2</p>' ,
812+ displayOrder : 1 ,
813+ file : undefined ,
814+ keepFile : false
815+ } ,
816+ {
817+ content : '<p class="rte-paragraph">Test content 3</p>' ,
818+ displayOrder : 2 ,
819+ file : createImageFile ( 'featured-item-test-image-3.png' ) ,
820+ keepFile : false
821+ }
822+ ]
823+
824+ const response = await sut . updateCollectionFeaturedItems (
825+ testCollectionAlias ,
826+ newFeaturedItems
827+ )
828+
829+ expect ( response ) . toHaveLength ( 3 )
830+
831+ expect ( response [ 0 ] . content ) . toEqual ( newFeaturedItems [ 0 ] . content )
832+ expect ( response [ 0 ] . displayOrder ) . toEqual ( newFeaturedItems [ 0 ] . displayOrder )
833+ expect ( response [ 0 ] . imageFileName ) . toEqual ( undefined )
834+ expect ( response [ 0 ] . imageFileUrl ) . toEqual ( undefined )
835+
836+ expect ( response [ 1 ] . content ) . toEqual ( newFeaturedItems [ 1 ] . content )
837+ expect ( response [ 1 ] . displayOrder ) . toEqual ( newFeaturedItems [ 1 ] . displayOrder )
838+ expect ( response [ 1 ] . imageFileName ) . toEqual ( undefined )
839+ expect ( response [ 1 ] . imageFileUrl ) . toEqual ( undefined )
840+
841+ expect ( response [ 2 ] . content ) . toEqual ( newFeaturedItems [ 2 ] . content )
842+ expect ( response [ 2 ] . displayOrder ) . toEqual ( newFeaturedItems [ 2 ] . displayOrder )
843+ expect ( response [ 2 ] . imageFileName ) . toEqual ( 'featured-item-test-image-3.png' )
844+ expect ( response [ 2 ] . imageFileUrl ) . toContain (
845+ 'http://localhost:8080/api/access/dataverseFeatureItemImage/'
846+ )
847+ } )
848+ } )
849+
850+ // describe('deleteAllCollectionFeaturedItems', () => {
851+
852+ // beforeAll(async () => {
853+ // try {
854+ // await createCollectionFeaturedItemViaApi(testCollectionAlias, {
855+ // content: '<p class="rte-paragraph">Test content</p>',
856+ // displayOrder: 1,
857+ // withFile: true,
858+ // fileName: 'featured-item-test-image.png'
859+ // })
860+ // await createCollectionFeaturedItemViaApi(testCollectionAlias, {
861+ // content: '<p class="rte-paragraph">Test content 2</p>',
862+ // displayOrder: 2,
863+ // withFile: false
864+ // })
865+ // await createCollectionFeaturedItemViaApi(testCollectionAlias, {
866+ // content: '<p class="rte-paragraph">Test content 3</p>',
867+ // displayOrder: 3,
868+ // withFile: false
869+ // })
870+
871+ // } catch (error) {
872+ // throw new Error(
873+ // `Tests afterAll(): Error while deleting all featured items from collection: ${testCollectionAlias}`
874+ // )
875+ // }
876+ // })
877+
878+ // it('should delete all collection featured items', async () => {
879+ // const featuredItemsResponseFirst = await sut.getCollectionFeaturedItems(testCollectionAlias)
880+
881+ // console.log({ featuredItemsResponseFirst })
882+
883+ // await deleteAllCollectionFeaturedItemsViaApi(testCollectionAlias)
884+
885+ // const featuredItemsResponse = await sut.getCollectionFeaturedItems(testCollectionAlias)
886+
887+ // console.log({ featuredItemsResponse })
888+
889+ // expect(featuredItemsResponse).toStrictEqual([])
890+ // })
891+ // })
788892} )
0 commit comments