-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathGetDatasetCitationInOtherFormats.test.ts
More file actions
38 lines (30 loc) · 1.82 KB
/
Copy pathGetDatasetCitationInOtherFormats.test.ts
File metadata and controls
38 lines (30 loc) · 1.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { GetDatasetCitationInOtherFormats } from '../../../src/datasets/domain/useCases/GetDatasetCitationInOtherFormats'
import { IDatasetsRepository } from '../../../src/datasets/domain/repositories/IDatasetsRepository'
import { ReadError } from '../../../src/core/domain/repositories/ReadError'
import { CitationFormats } from '../../../src/datasets/domain/models/CitationFormats'
import { DatasetNotNumberedVersion } from '../../../src/datasets/domain/models/DatasetNotNumberedVersion'
import { CitationResponse } from '../../../src/datasets/domain/models/CitationResponse'
describe('GetDatasetCitationInOtherFormats.execute', () => {
const testDatasetId = 1
const testFormat: CitationFormats = CitationFormats.BibTeX
const testVersion: DatasetNotNumberedVersion = DatasetNotNumberedVersion.LATEST
test('should return citation response on repository success', async () => {
const expectedCitation: CitationResponse = {
content: '@data{example, ...}',
contentType: 'text/plain'
}
const datasetsRepositoryStub: IDatasetsRepository = {
getDatasetCitationInOtherFormats: jest.fn().mockResolvedValue(expectedCitation)
} as unknown as IDatasetsRepository
const sut = new GetDatasetCitationInOtherFormats(datasetsRepositoryStub)
const actual = await sut.execute(testDatasetId, testVersion, testFormat as CitationFormats)
expect(actual).toEqual(expectedCitation)
})
test('should throw ReadError on repository failure', async () => {
const datasetsRepositoryStub: IDatasetsRepository = {
getDatasetCitationInOtherFormats: jest.fn().mockRejectedValue(new ReadError())
} as unknown as IDatasetsRepository
const sut = new GetDatasetCitationInOtherFormats(datasetsRepositoryStub)
await expect(sut.execute(testDatasetId, testVersion, testFormat)).rejects.toThrow(ReadError)
})
})