Skip to content

Commit bd797ad

Browse files
committed
Changed: createCollection returning created collection id
1 parent 08f0fa5 commit bd797ad

File tree

5 files changed

+11
-9
lines changed

5 files changed

+11
-9
lines changed

src/collections/domain/repositories/ICollectionsRepository.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ import { Collection } from '../models/Collection'
33

44
export interface ICollectionsRepository {
55
getCollection(collectionIdOrAlias: number | string): Promise<Collection>
6-
createCollection(collectionDTO: CollectionDTO, parentCollectionId: string): Promise<void>
6+
createCollection(collectionDTO: CollectionDTO, parentCollectionId: string): Promise<number>
77
}

src/collections/domain/useCases/CreateCollection.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { UseCase } from '../../../core/domain/useCases/UseCase'
22
import { CollectionDTO } from '../dtos/CollectionDTO'
33
import { ICollectionsRepository } from '../repositories/ICollectionsRepository'
44

5-
export class CreateCollection implements UseCase<void> {
5+
export class CreateCollection implements UseCase<number> {
66
private collectionsRepository: ICollectionsRepository
77

88
constructor(collectionsRepository: ICollectionsRepository) {
@@ -12,7 +12,7 @@ export class CreateCollection implements UseCase<void> {
1212
/**
1313
* TODO
1414
*/
15-
async execute(newCollection: CollectionDTO, parentCollectionId = 'root'): Promise<void> {
16-
await this.collectionsRepository.createCollection(newCollection, parentCollectionId)
15+
async execute(newCollection: CollectionDTO, parentCollectionId = 'root'): Promise<number> {
16+
return await this.collectionsRepository.createCollection(newCollection, parentCollectionId)
1717
}
1818
}

src/collections/infra/repositories/CollectionsRepository.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export class CollectionsRepository extends ApiRepository implements ICollections
2222
public async createCollection(
2323
collectionDTO: CollectionDTO,
2424
parentCollectionId = 'root'
25-
): Promise<void> {
25+
): Promise<number> {
2626
const dataverseContacts = collectionDTO.contacts.map((contact) => ({
2727
contactEmail: contact
2828
}))
@@ -35,7 +35,7 @@ export class CollectionsRepository extends ApiRepository implements ICollections
3535
}
3636

3737
return this.doPost(`/${this.collectionsResourceName}/${parentCollectionId}`, requestBody)
38-
.then(() => undefined)
38+
.then((response) => response.data.data.id)
3939
.catch((error) => {
4040
throw error
4141
})

test/integration/collections/CollectionsRepository.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ describe('CollectionsRepository', () => {
9090
describe('createCollection', () => {
9191
test('should create collection in root when no parent collection is set', async () => {
9292
const newCollectionDTO = createCollectionDTO()
93-
await sut.createCollection(newCollectionDTO)
93+
const actual = await sut.createCollection(newCollectionDTO)
94+
expect(typeof actual).toBe('number')
9495
})
9596
})
9697
})

test/unit/collections/CreateCollection.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@ import { createCollectionDTO } from '../../testHelpers/collections/collectionHel
55

66
describe('execute', () => {
77
const testCollectionDTO = createCollectionDTO()
8+
const testCollectionId = 1
89

910
test('should return undefined on repository success', async () => {
1011
const collectionRepositoryStub: ICollectionsRepository = {} as ICollectionsRepository
11-
collectionRepositoryStub.createCollection = jest.fn().mockResolvedValue(undefined)
12+
collectionRepositoryStub.createCollection = jest.fn().mockResolvedValue(testCollectionId)
1213
const testCreateCollection = new CreateCollection(collectionRepositoryStub)
1314

1415
const actual = await testCreateCollection.execute(testCollectionDTO)
1516

16-
expect(actual).toEqual(undefined)
17+
expect(actual).toEqual(testCollectionId)
1718
})
1819

1920
test('should return error result on repository error', async () => {

0 commit comments

Comments
 (0)