Skip to content

Commit fc2acfc

Browse files
committed
add integration tests
1 parent 7a73b1c commit fc2acfc

1 file changed

Lines changed: 119 additions & 1 deletion

File tree

test/integration/templates/TemplateRepository.test.ts

Lines changed: 119 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import { ApiConfig, MetadataFieldTypeClass, WriteError } from '../../../src'
2-
import { createTemplate, getTemplatesByCollectionId } from '../../../src/templates'
2+
import {
3+
createTemplate,
4+
getTemplatesByCollectionId,
5+
updateTemplateLicenseTerms,
6+
updateTemplateMetadata,
7+
updateTemplateTermsOfAccess
8+
} from '../../../src/templates'
39
import { CreateTemplateDTO } from '../../../src/templates/domain/dtos/CreateTemplateDTO'
410
import { TemplatesRepository } from '../../../src/templates/infra/repositories/TemplatesRepository'
511
import { DataverseApiAuthMechanism } from '../../../src/core/infra/repositories/ApiConfig'
@@ -246,4 +252,116 @@ describe('TemplatesRepository', () => {
246252
await expect(sut.deleteTemplate(999999)).rejects.toThrow()
247253
})
248254
})
255+
256+
describe('updateTemplateMetadata', () => {
257+
test('should update template metadata and instructions', async () => {
258+
const templateName = `Template for UpdateTemplateMetadata ${Date.now()}`
259+
await createTemplate.execute(
260+
{
261+
name: templateName,
262+
isDefault: false,
263+
fields: [
264+
{
265+
typeName: 'author',
266+
typeClass: MetadataFieldTypeClass.Compound,
267+
multiple: true,
268+
value: [
269+
{
270+
authorName: {
271+
typeName: 'authorName',
272+
typeClass: MetadataFieldTypeClass.Primitive,
273+
value: 'Belicheck, Bill'
274+
},
275+
authorAffiliation: {
276+
typeName: 'authorIdentifierScheme',
277+
typeClass: MetadataFieldTypeClass.Primitive,
278+
value: 'ORCID'
279+
}
280+
}
281+
]
282+
}
283+
],
284+
instructions: [
285+
{
286+
instructionField: 'author',
287+
instructionText: 'The author data'
288+
}
289+
]
290+
},
291+
testCollectionAlias
292+
)
293+
const templates = await getTemplatesByCollectionId.execute(testCollectionAlias)
294+
const templateId = templates[templates.length - 1].id
295+
296+
await updateTemplateMetadata.execute(
297+
templateId,
298+
{
299+
name: `${templateName} updated`,
300+
instructions: [
301+
{
302+
instructionField: 'author',
303+
instructionText: 'Updated author instructions'
304+
}
305+
]
306+
},
307+
true
308+
)
309+
310+
const updatedTemplate = await sut.getTemplate(templateId)
311+
312+
expect(updatedTemplate.name).toBe(`${templateName} updated`)
313+
expect(updatedTemplate.instructions).toContainEqual({
314+
instructionField: 'author',
315+
instructionText: 'Updated author instructions'
316+
})
317+
318+
await deleteDatasetTemplateViaApi(templateId)
319+
})
320+
})
321+
322+
describe('updateTemplateLicenseTerms', () => {
323+
test('should update template custom terms of use', async () => {
324+
const templateName = `Template for UpdateTemplateLicenseTerms ${Date.now()}`
325+
await createTemplate.execute({ name: templateName, isDefault: false }, testCollectionAlias)
326+
const templates = await getTemplatesByCollectionId.execute(testCollectionAlias)
327+
const templateId = templates[templates.length - 1].id
328+
329+
await updateTemplateLicenseTerms.execute(templateId, {
330+
customTerms: {
331+
termsOfUse: 'Updated template terms of use'
332+
}
333+
})
334+
335+
const updatedTemplate = await sut.getTemplate(templateId)
336+
337+
expect(updatedTemplate.termsOfUse.customTerms?.termsOfUse).toBe(
338+
'Updated template terms of use'
339+
)
340+
341+
await deleteDatasetTemplateViaApi(templateId)
342+
})
343+
})
344+
345+
describe('updateTemplateTermsOfAccess', () => {
346+
test('should update template terms of access', async () => {
347+
const templateName = `Template for UpdateTemplateTermsOfAccess ${Date.now()}`
348+
await createTemplate.execute({ name: templateName, isDefault: false }, testCollectionAlias)
349+
const templates = await getTemplatesByCollectionId.execute(testCollectionAlias)
350+
const templateId = templates[templates.length - 1].id
351+
352+
await updateTemplateTermsOfAccess.execute(templateId, {
353+
fileAccessRequest: true,
354+
termsOfAccessForRestrictedFiles: 'Restricted access only'
355+
})
356+
357+
const updatedTemplate = await sut.getTemplate(templateId)
358+
359+
expect(updatedTemplate.termsOfUse.termsOfAccess.fileAccessRequest).toBe(true)
360+
expect(updatedTemplate.termsOfUse.termsOfAccess.termsOfAccessForRestrictedFiles).toBe(
361+
'Restricted access only'
362+
)
363+
364+
await deleteDatasetTemplateViaApi(templateId)
365+
})
366+
})
249367
})

0 commit comments

Comments
 (0)