Skip to content

Commit 8720bdc

Browse files
committed
test: add integration cases
1 parent 48785ee commit 8720bdc

File tree

4 files changed

+108
-5
lines changed

4 files changed

+108
-5
lines changed

src/collections/infra/repositories/CollectionsRepository.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,6 @@ export class CollectionsRepository extends ApiRepository implements ICollections
451451
throw error
452452
})
453453
}
454-
455454
public async linkCollection(
456455
linkedCollectionIdOrAlias: number | string,
457456
linkingCollectionIdOrAlias: number | string
@@ -465,7 +464,6 @@ export class CollectionsRepository extends ApiRepository implements ICollections
465464
throw error
466465
})
467466
}
468-
469467
public async unlinkCollection(
470468
linkedCollectionIdOrAlias: number | string,
471469
linkingCollectionIdOrAlias: number | string
@@ -478,7 +476,6 @@ export class CollectionsRepository extends ApiRepository implements ICollections
478476
throw error
479477
})
480478
}
481-
482479
public async getCollectionLinks(collectionIdOrAlias: number | string): Promise<CollectionLinks> {
483480
return this.doGet(`/${this.collectionsResourceName}/${collectionIdOrAlias}/links`, true)
484481
.then((response) => {

src/datasets/domain/models/DatasetTemplate.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { DatasetLicense, DatasetMetadataBlocks, TermsOfUse } from './Dataset'
1+
import { DatasetLicense, DatasetMetadataBlock, TermsOfUse } from './Dataset'
22

33
export interface DatasetTemplate {
44
id: number
@@ -9,7 +9,7 @@ export interface DatasetTemplate {
99
createTime: string
1010
createDate: string
1111
// 👇 From Edit Template Metadata
12-
datasetMetadataBlocks: DatasetMetadataBlocks
12+
datasetMetadataBlocks: DatasetMetadataBlock[]
1313
instructions: DatasetTemplateInstruction[]
1414
// 👇 From Edit Template Terms
1515
termsOfUse: TermsOfUse

test/integration/datasets/DatasetsRepository.test.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ import { FilesRepository } from '../../../src/files/infra/repositories/FilesRepo
5252
import { DirectUploadClient } from '../../../src/files/infra/clients/DirectUploadClient'
5353
import { createTestFileUploadDestination } from '../../testHelpers/files/fileUploadDestinationHelper'
5454
import { CitationFormat } from '../../../src/datasets/domain/models/CitationFormat'
55+
import {
56+
createDatasetTemplateViaApi,
57+
deleteDatasetTemplateViaApi
58+
} from '../../testHelpers/datasets/datasetTemplatesHelper'
5559

5660
const TEST_DIFF_DATASET_DTO: DatasetDTO = {
5761
license: {
@@ -1649,4 +1653,39 @@ describe('DatasetsRepository', () => {
16491653
await expect(sut.getDatasetAvailableCategories(nonExistentTestDatasetId)).rejects.toThrow()
16501654
})
16511655
})
1656+
1657+
describe('getDatasetTemplates', () => {
1658+
const testCollectionAlias = 'testGetDatasetTemplates'
1659+
1660+
beforeAll(async () => {
1661+
await createCollectionViaApi(testCollectionAlias)
1662+
})
1663+
1664+
afterAll(async () => {
1665+
await deleteCollectionViaApi(testCollectionAlias)
1666+
})
1667+
1668+
test('should return empty dataset templates', async () => {
1669+
const actual = await sut.getDatasetTemplates(testCollectionAlias)
1670+
1671+
expect(actual.length).toBe(0)
1672+
})
1673+
1674+
test('should return dataset templates for a collection', async () => {
1675+
const templateCreated = await createDatasetTemplateViaApi(testCollectionAlias)
1676+
1677+
const actual = await sut.getDatasetTemplates(testCollectionAlias)
1678+
1679+
expect(actual.length).toBe(1)
1680+
1681+
expect(actual[0].name).toBe(templateCreated.name)
1682+
expect(actual[0].isDefault).toBe(templateCreated.isDefault)
1683+
expect(actual[0].datasetMetadataBlocks.length).toBe(1)
1684+
expect(actual[0].datasetMetadataBlocks[0].name).toBe('citation')
1685+
expect(actual[0].datasetMetadataBlocks[0].fields.author.length).toBe(1)
1686+
expect(actual[0].instructions.length).toBe(templateCreated.instructions.length)
1687+
1688+
await deleteDatasetTemplateViaApi(actual[0].id)
1689+
})
1690+
})
16521691
})
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import axios from 'axios'
2+
import { TestConstants } from '../TestConstants'
3+
import { DatasetTemplatePayload } from '../../../src/datasets/infra/repositories/transformers/DatasetTemplatePayload'
4+
5+
const DATASET_TEMPLATE_DTO = {
6+
name: 'Dataset Template',
7+
isDefault: true,
8+
fields: [
9+
{
10+
typeName: 'author',
11+
value: [
12+
{
13+
authorName: {
14+
typeName: 'authorName',
15+
value: 'Belicheck, Bill'
16+
},
17+
authorAffiliation: {
18+
typeName: 'authorIdentifierScheme',
19+
value: 'ORCID'
20+
}
21+
}
22+
]
23+
}
24+
],
25+
instructions: [
26+
{
27+
instructionField: 'author',
28+
instructionText: 'The author data'
29+
}
30+
]
31+
}
32+
33+
const DATAVERSE_API_REQUEST_HEADERS = {
34+
headers: { 'Content-Type': 'application/json', 'X-Dataverse-Key': process.env.TEST_API_KEY }
35+
}
36+
37+
export async function createDatasetTemplateViaApi(
38+
collectionAlias: string
39+
): Promise<DatasetTemplatePayload> {
40+
try {
41+
if (collectionAlias == undefined) {
42+
collectionAlias = ':root'
43+
}
44+
return await axios
45+
.post(
46+
`${TestConstants.TEST_API_URL}/dataverses/${collectionAlias}/templates`,
47+
JSON.stringify(DATASET_TEMPLATE_DTO),
48+
DATAVERSE_API_REQUEST_HEADERS
49+
)
50+
.then((response) => response.data.data)
51+
} catch (error) {
52+
throw new Error(`Error while creating dataset template in collection ${collectionAlias}`)
53+
}
54+
}
55+
56+
export async function deleteDatasetTemplateViaApi(templateId: number): Promise<void> {
57+
try {
58+
return await axios
59+
.delete(
60+
`${TestConstants.TEST_API_URL}/admin/template/${templateId}`,
61+
DATAVERSE_API_REQUEST_HEADERS
62+
)
63+
.then((response) => response.data.data)
64+
} catch (error) {
65+
throw new Error(`Error while deleting dataset template with id ${templateId}`)
66+
}
67+
}

0 commit comments

Comments
 (0)