Skip to content

Commit 30dbbff

Browse files
committed
test: unit cases
1 parent 1143cf1 commit 30dbbff

File tree

3 files changed

+70
-1
lines changed

3 files changed

+70
-1
lines changed

test/testHelpers/collections/collectionFeaturedItemsHelper.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { File, Blob } from '@web-std/file'
33
import { CollectionFeaturedItem } from '../../../src/collections/domain/models/CollectionFeaturedItem'
44
import { ROOT_COLLECTION_ID } from '../../../src/collections/domain/models/Collection'
55
import { TestConstants } from '../TestConstants'
6+
import { CollectionFeaturedItemPayload } from '../../../src/collections/infra/repositories/transformers/CollectionFeaturedItemPayload'
67

78
interface CreateCollectionFeaturedItemData {
89
content: string
@@ -62,6 +63,44 @@ export async function deleteCollectionFeaturedItemViaApi(featuredItemId: number)
6263
}
6364
}
6465

66+
export const createCollectionFeaturedItemsModel = (): CollectionFeaturedItem[] => {
67+
return [
68+
{
69+
id: 1,
70+
content: 'This is a featured item',
71+
displayOrder: 1,
72+
imageFileName: 'test-image.png',
73+
imageFileUrl: 'http://localhost:8080/api/access/dataverseFeatureItemImage/1'
74+
},
75+
{
76+
id: 2,
77+
content: 'This is another featured item',
78+
displayOrder: 2,
79+
imageFileName: undefined,
80+
imageFileUrl: undefined
81+
}
82+
]
83+
}
84+
85+
export const createCollectionFeaturedItemsPayload = (): CollectionFeaturedItemPayload[] => {
86+
return [
87+
{
88+
id: 1,
89+
content: 'This is a featured item',
90+
displayOrder: 1,
91+
imageFileName: 'test-image.png',
92+
imageFileUrl: 'http://localhost:8080/api/access/dataverseFeatureItemImage/1'
93+
},
94+
{
95+
id: 2,
96+
content: 'This is another featured item',
97+
displayOrder: 2,
98+
imageFileName: null,
99+
imageFileUrl: null
100+
}
101+
]
102+
}
103+
65104
export function createImageFile(fileName = 'test-image.png'): File {
66105
// Binary data for a 1x1 black pixel PNG image
67106
const imageData = Uint8Array.from([

test/testHelpers/collections/collectionHelper.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import { NewCollectionRequestPayload } from '../../../src/collections/infra/repo
88
import { CollectionFacetPayload } from '../../../src/collections/infra/repositories/transformers/CollectionFacetPayload'
99
import { CollectionType } from '../../../src/collections/domain/models/CollectionType'
1010

11+
export const ROOT_COLLECTION_ALIAS = 'root'
12+
1113
const COLLECTION_ID = 11111
1214
const COLLECTION_IS_RELEASED = true
1315
const COLLECTION_ALIAS_STR = 'secondCollection'
@@ -205,4 +207,3 @@ export const createCollectionFacetRequestPayload = (): CollectionFacetPayload =>
205207
displayName: 'testDisplayName'
206208
}
207209
}
208-
export const ROOT_COLLECTION_ALIAS = 'root'
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { ICollectionsRepository } from '../../../src/collections/domain/repositories/ICollectionsRepository'
2+
import { ReadError } from '../../../src'
3+
import { createCollectionFeaturedItemsModel } from '../../testHelpers/collections/collectionFeaturedItemsHelper'
4+
import { GetCollectionFeaturedItems } from '../../../src/collections/domain/useCases/GetCollectionFeaturedItems'
5+
6+
describe('execute', () => {
7+
test('should return collection featured items on repository success', async () => {
8+
const testFeaturedItems = createCollectionFeaturedItemsModel()
9+
const collectionRepositoryStub: ICollectionsRepository = {} as ICollectionsRepository
10+
collectionRepositoryStub.getCollectionFeaturedItems = jest
11+
.fn()
12+
.mockResolvedValue(testFeaturedItems)
13+
const testGetCollectionFeaturedItems = new GetCollectionFeaturedItems(collectionRepositoryStub)
14+
15+
const actual = await testGetCollectionFeaturedItems.execute(1)
16+
17+
expect(actual).toEqual(testFeaturedItems)
18+
})
19+
20+
test('should return error result on repository error', async () => {
21+
const collectionRepositoryStub: ICollectionsRepository = {} as ICollectionsRepository
22+
collectionRepositoryStub.getCollectionFeaturedItems = jest
23+
.fn()
24+
.mockRejectedValue(new ReadError())
25+
const testGetCollectionFeaturedItems = new GetCollectionFeaturedItems(collectionRepositoryStub)
26+
27+
await expect(testGetCollectionFeaturedItems.execute(1)).rejects.toThrow(ReadError)
28+
})
29+
})

0 commit comments

Comments
 (0)