|
| 1 | +import { ReadError } from '../../../src' |
| 2 | +import { DatasetType } from '../../../src' |
| 3 | +import { IDatasetsRepository } from '../../../src/datasets/domain/repositories/IDatasetsRepository' |
| 4 | +import { GetDatasetAvailableDatasetTypes } from '../../../src/datasets/domain/useCases/GetDatasetAvailableDatasetTypes' |
| 5 | + |
| 6 | +describe('GetDatasetAvailableDatasetTypes', () => { |
| 7 | + describe('execute', () => { |
| 8 | + test('should return datasetTypes array on repository success', async () => { |
| 9 | + const datasetTypesRepositoryStub: IDatasetsRepository = {} as IDatasetsRepository |
| 10 | + |
| 11 | + const testDatasetTypes: DatasetType[] = [ |
| 12 | + { |
| 13 | + id: 1, |
| 14 | + name: 'dataset', |
| 15 | + linkedMetadataBlocks: [], |
| 16 | + availableLicenses: [] |
| 17 | + }, |
| 18 | + { |
| 19 | + id: 2, |
| 20 | + name: 'software', |
| 21 | + linkedMetadataBlocks: ['codeMeta20'], |
| 22 | + availableLicenses: ['MIT', 'Apache-2.0'] |
| 23 | + } |
| 24 | + ] |
| 25 | + |
| 26 | + datasetTypesRepositoryStub.getDatasetAvailableDatasetTypes = jest |
| 27 | + .fn() |
| 28 | + .mockResolvedValue(testDatasetTypes) |
| 29 | + const sut = new GetDatasetAvailableDatasetTypes(datasetTypesRepositoryStub) |
| 30 | + |
| 31 | + const actual = await sut.execute() |
| 32 | + |
| 33 | + expect(actual).toEqual(testDatasetTypes) |
| 34 | + expect(datasetTypesRepositoryStub.getDatasetAvailableDatasetTypes).toHaveBeenCalledTimes(1) |
| 35 | + }) |
| 36 | + |
| 37 | + test('should return error result on repository error', async () => { |
| 38 | + const datasetsRepositoryStub: IDatasetsRepository = {} as IDatasetsRepository |
| 39 | + const expectedError = new ReadError('Failed to fetch dataset types') |
| 40 | + datasetsRepositoryStub.getDatasetAvailableDatasetTypes = jest |
| 41 | + .fn() |
| 42 | + .mockRejectedValue(expectedError) |
| 43 | + const sut = new GetDatasetAvailableDatasetTypes(datasetsRepositoryStub) |
| 44 | + |
| 45 | + await expect(sut.execute()).rejects.toThrow(ReadError) |
| 46 | + expect(datasetsRepositoryStub.getDatasetAvailableDatasetTypes).toHaveBeenCalledTimes(1) |
| 47 | + }) |
| 48 | + }) |
| 49 | +}) |
0 commit comments