Skip to content

Commit cd4356b

Browse files
committed
Added: tests for new collection preview item
1 parent 5460b06 commit cd4356b

File tree

5 files changed

+98
-10
lines changed

5 files changed

+98
-10
lines changed

test/integration/collections/CollectionsRepository.test.ts

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { CollectionsRepository } from '../../../src/collections/infra/repositories/CollectionsRepository'
22
import { TestConstants } from '../../testHelpers/TestConstants'
33
import {
4+
CollectionPreview,
45
CreatedDatasetIdentifiers,
56
DatasetPreview,
67
FilePreview,
@@ -212,13 +213,20 @@ describe('CollectionsRepository', () => {
212213

213214
describe('getCollectionItems', () => {
214215
let testDatasetIds: CreatedDatasetIdentifiers
216+
215217
const testTextFile1Name = 'test-file-1.txt'
218+
const testSubCollectionAlias = 'collectionsRepositoryTestSubCollection'
216219

217220
beforeAll(async () => {
221+
await createCollectionViaApi(testSubCollectionAlias, testCollectionAlias).catch(() => {
222+
throw new Error(
223+
`Tests beforeAll(): Error while creating subcollection ${testSubCollectionAlias}`
224+
)
225+
})
218226
try {
219227
testDatasetIds = await createDataset.execute(
220228
TestConstants.TEST_NEW_DATASET_DTO,
221-
testCollectionAlias
229+
testSubCollectionAlias
222230
)
223231
} catch (error) {
224232
throw new Error('Tests beforeAll(): Error while creating test dataset')
@@ -232,7 +240,16 @@ describe('CollectionsRepository', () => {
232240
try {
233241
await deleteUnpublishedDatasetViaApi(testDatasetIds.numericId)
234242
} catch (error) {
235-
throw new Error('Tests afterAll(): Error while deleting test dataset')
243+
throw new Error(
244+
`Tests afterAll(): Error while deleting test dataset ${testDatasetIds.numericId}`
245+
)
246+
}
247+
try {
248+
await deleteCollectionViaApi(testSubCollectionAlias)
249+
} catch (error) {
250+
throw new Error(
251+
`Tests afterAll(): Error while deleting subcollection ${testSubCollectionAlias}`
252+
)
236253
}
237254
})
238255

@@ -243,6 +260,7 @@ describe('CollectionsRepository', () => {
243260
let actual = await sut.getCollectionItems(testCollectionAlias)
244261
const actualFilePreview = actual.items[0] as FilePreview
245262
const actualDatasetPreview = actual.items[1] as DatasetPreview
263+
const actualCollectionPreview = actual.items[2] as CollectionPreview
246264

247265
const expectedFileMd5 = '68b22040025784da775f55cfcb6dee2e'
248266
const expectedDatasetCitationFragment =
@@ -264,6 +282,7 @@ describe('CollectionsRepository', () => {
264282
expect(actualFilePreview.publicationStatuses[1]).toBe(PublicationStatus.Draft)
265283
expect(actualFilePreview.sizeInBytes).toBe(12)
266284
expect(actualFilePreview.url).not.toBeUndefined()
285+
expect(actualFilePreview.releaseOrCreateDate).not.toBeUndefined()
267286

268287
expect(actualDatasetPreview.title).toBe('Dataset created using the createDataset use case')
269288
expect(actualDatasetPreview.citation).toContain(expectedDatasetCitationFragment)
@@ -279,12 +298,23 @@ describe('CollectionsRepository', () => {
279298
expect(actualDatasetPreview.versionInfo.minorNumber).toBeUndefined()
280299
expect(actualDatasetPreview.versionInfo.state).toBe('DRAFT')
281300

282-
expect(actual.totalItemCount).toBe(2)
301+
const expectedCollectionsName = 'Scientific Research'
302+
expect(actualCollectionPreview.name).toBe(expectedCollectionsName)
303+
expect(actualCollectionPreview.alias).toBe(testSubCollectionAlias)
304+
expect(actualCollectionPreview.description).toBe('We do all the science.')
305+
expect(actualCollectionPreview.imageUrl).toBe(undefined)
306+
expect(actualCollectionPreview.parentAlias).toBe(testCollectionAlias)
307+
expect(actualCollectionPreview.parentName).toBe(expectedCollectionsName)
308+
expect(actualCollectionPreview.publicationStatuses[0]).toBe(PublicationStatus.Unpublished)
309+
expect(actualCollectionPreview.releaseOrCreateDate).not.toBeUndefined()
310+
expect(actualCollectionPreview.affiliation).toBe('Scientific Research University')
311+
312+
expect(actual.totalItemCount).toBe(3)
283313

284314
// Test limit and offset
285315
actual = await sut.getCollectionItems(testCollectionAlias, 1, 1)
286316
expect((actual.items[0] as DatasetPreview).persistentId).toBe(testDatasetIds.persistentId)
287-
expect(actual.totalItemCount).toBe(2)
317+
expect(actual.totalItemCount).toBe(3)
288318
})
289319

290320
test('should return error when collection does not exist', async () => {

test/testHelpers/collections/collectionHelper.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,18 @@ export const createCollectionPayload = (): CollectionPayload => {
6060
return collectionPayload
6161
}
6262

63-
export async function createCollectionViaApi(collectionAlias: string): Promise<CollectionPayload> {
63+
export async function createCollectionViaApi(
64+
collectionAlias: string,
65+
parentCollectionAlias?: string
66+
): Promise<CollectionPayload> {
6467
try {
68+
if (parentCollectionAlias == undefined) {
69+
parentCollectionAlias = 'root'
70+
}
71+
6572
return await axios
6673
.post(
67-
`${TestConstants.TEST_API_URL}/dataverses/root`,
74+
`${TestConstants.TEST_API_URL}/dataverses/${parentCollectionAlias}`,
6875
JSON.stringify({
6976
alias: collectionAlias,
7077
name: 'Scientific Research',
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { CollectionPreview } from '../../../src'
2+
import { CollectionPreviewPayload } from '../../../src/collections/infra/repositories/transformers/CollectionPreviewPayload'
3+
import { PublicationStatus } from '../../../src/core/domain/models/PublicationStatus'
4+
5+
export const createCollectionPreviewModel = (): CollectionPreview => {
6+
const collectionPreviewModel: CollectionPreview = {
7+
name: 'test collection',
8+
parentName: 'parent collection',
9+
alias: 'testcollection',
10+
parentAlias: 'parentcollection',
11+
description: 'test description',
12+
affiliation: 'test affiliation',
13+
publicationStatuses: [PublicationStatus.Published],
14+
releaseOrCreateDate: new Date('2023-05-15T08:21:01Z'),
15+
imageUrl: 'http://dataverse.com'
16+
}
17+
return collectionPreviewModel
18+
}
19+
20+
export const createCollectionPreviewPayload = (): CollectionPreviewPayload => {
21+
return {
22+
name: 'test collection',
23+
parentDataverseName: 'parent collection',
24+
identifier: 'testcollection',
25+
parentDataverseIdentifier: 'parentcollection',
26+
description: 'test description',
27+
affiliation: 'test affiliation',
28+
publicationStatuses: ['Published'],
29+
published_at: '2023-05-15T08:21:01Z',
30+
image_url: 'http://dataverse.com',
31+
type: 'dataverse',
32+
url: 'http://dataverse.com'
33+
}
34+
}

test/unit/collections/CollectionsRepository.test.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ import {
2727
createFilePreviewPayload
2828
} from '../../testHelpers/files/filePreviewHelper'
2929
import { CollectionItemSubset } from '../../../src/collections/domain/models/CollectionItemSubset'
30+
import {
31+
createCollectionPreviewModel,
32+
createCollectionPreviewPayload
33+
} from '../../testHelpers/collections/collectionPreviewHelper'
3034

3135
describe('CollectionsRepository', () => {
3236
const sut: CollectionsRepository = new CollectionsRepository()
@@ -293,7 +297,11 @@ describe('CollectionsRepository', () => {
293297
})
294298

295299
describe('getCollectionItems', () => {
296-
const testItems = [createDatasetPreviewModel(), createFilePreviewModel()]
300+
const testItems = [
301+
createDatasetPreviewModel(),
302+
createFilePreviewModel(),
303+
createCollectionPreviewModel()
304+
]
297305
const testTotalCount = 2
298306

299307
const testItemSubset: CollectionItemSubset = {
@@ -306,7 +314,11 @@ describe('CollectionsRepository', () => {
306314
status: 'OK',
307315
data: {
308316
total_count: testTotalCount,
309-
items: [createDatasetPreviewPayload(), createFilePreviewPayload()]
317+
items: [
318+
createDatasetPreviewPayload(),
319+
createFilePreviewPayload(),
320+
createCollectionPreviewPayload()
321+
]
310322
}
311323
}
312324
}

test/unit/collections/GetCollectionItems.test.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,16 @@ import { ReadError } from '../../../src'
44
import { createDatasetPreviewModel } from '../../testHelpers/datasets/datasetPreviewHelper'
55
import { createFilePreviewModel } from '../../testHelpers/files/filePreviewHelper'
66
import { CollectionItemSubset } from '../../../src/collections/domain/models/CollectionItemSubset'
7+
import { createCollectionPreviewModel } from '../../testHelpers/collections/collectionPreviewHelper'
78

89
describe('execute', () => {
910
test('should return item subset on repository success', async () => {
10-
const testItems = [createDatasetPreviewModel(), createFilePreviewModel()]
11-
const testTotalCount = 2
11+
const testItems = [
12+
createDatasetPreviewModel(),
13+
createFilePreviewModel(),
14+
createCollectionPreviewModel()
15+
]
16+
const testTotalCount = 3
1217

1318
const testItemSubset: CollectionItemSubset = {
1419
items: testItems,

0 commit comments

Comments
 (0)