-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathGetDatasetStorageDriver.test.ts
More file actions
51 lines (42 loc) · 2.12 KB
/
GetDatasetStorageDriver.test.ts
File metadata and controls
51 lines (42 loc) · 2.12 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
39
40
41
42
43
44
45
46
47
48
49
50
51
import { GetDatasetStorageDriver } from '../../../src/datasets/domain/useCases/GetDatasetStorageDriver'
import { IDatasetsRepository } from '../../../src/datasets/domain/repositories/IDatasetsRepository'
import { StorageDriver } from '../../../src/datasets/domain/models/StorageDriver'
import { ReadError } from '../../../src/core/domain/repositories/ReadError'
describe('GetDatasetStorageDriver (unit)', () => {
const testStorageDriver: StorageDriver = {
name: 'local',
type: 'filesystem',
label: 'Local Storage',
directUpload: true,
directDownload: true,
uploadOutOfBand: false
}
test('should return storage driver on repository success', async () => {
const datasetsRepositoryStub: IDatasetsRepository = {} as IDatasetsRepository
datasetsRepositoryStub.getDatasetStorageDriver = jest.fn().mockResolvedValue(testStorageDriver)
const sut = new GetDatasetStorageDriver(datasetsRepositoryStub)
const actual = await sut.execute(1)
expect(actual).toEqual(testStorageDriver)
expect(actual.name).toBe('local')
expect(actual.type).toBe('filesystem')
expect(actual.label).toBe('Local Storage')
expect(actual.directUpload).toBe(true)
expect(actual.directDownload).toBe(true)
expect(actual.uploadOutOfBand).toBe(false)
})
test('should return storage driver when using persistent id', async () => {
const datasetsRepositoryStub: IDatasetsRepository = {} as IDatasetsRepository
datasetsRepositoryStub.getDatasetStorageDriver = jest.fn().mockResolvedValue(testStorageDriver)
const sut = new GetDatasetStorageDriver(datasetsRepositoryStub)
const actual = await sut.execute('doi:10.77777/FK2/AAAAAA')
expect(actual).toEqual(testStorageDriver)
})
test('should return error result on repository error', async () => {
const datasetsRepositoryStub: IDatasetsRepository = {} as IDatasetsRepository
datasetsRepositoryStub.getDatasetStorageDriver = jest
.fn()
.mockRejectedValue(new ReadError('[404] Dataset not found'))
const sut = new GetDatasetStorageDriver(datasetsRepositoryStub)
await expect(sut.execute(1)).rejects.toThrow(ReadError)
})
})