From 591c19a506941b8b725d956e62857c578475eeaa Mon Sep 17 00:00:00 2001 From: Alfred Rosenthal Date: Wed, 14 Jun 2023 12:28:49 -0700 Subject: [PATCH] added some more tests --- .../submission-repository.test.ts | 21 +++++++++++++++++++ api/src/services/submission-service.test.ts | 20 ++++++++++++++++++ api/src/services/submission-service.ts | 5 +++-- app/src/hooks/api/useDatasetApi.test.ts | 13 ++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) diff --git a/api/src/repositories/submission-repository.test.ts b/api/src/repositories/submission-repository.test.ts index c3018e48d..c9d9a8012 100644 --- a/api/src/repositories/submission-repository.test.ts +++ b/api/src/repositories/submission-repository.test.ts @@ -13,6 +13,7 @@ import { SUBMISSION_MESSAGE_TYPE, SUBMISSION_STATUS_TYPE } from './submission-repository'; +import { simsHandlebarsTemplate_DETAILS, simsHandlebarsTemplate_HEADER } from './templates/SIMS-handlebar-template'; chai.use(sinonChai); @@ -881,4 +882,24 @@ describe('SubmissionRepository', () => { expect(response).to.eql(mockResponse); }); }); + + describe('getHandleBarsTemplateByDatasetId', () => { + beforeEach(() => { + sinon.restore(); + }); + + it('should succeed with valid data', async () => { + const mockResponse = { + header: simsHandlebarsTemplate_HEADER, + details: simsHandlebarsTemplate_DETAILS + }; + const mockDBConnection = getMockDBConnection(); + + const submissionRepository = new SubmissionRepository(mockDBConnection); + + const response = await submissionRepository.getHandleBarsTemplateByDatasetId('uuid'); + + expect(response).to.eql(mockResponse); + }); + }); }); diff --git a/api/src/services/submission-service.test.ts b/api/src/services/submission-service.test.ts index 9a5d60d3f..91a757a84 100644 --- a/api/src/services/submission-service.test.ts +++ b/api/src/services/submission-service.test.ts @@ -665,4 +665,24 @@ describe('SubmissionService', () => { expect(response).to.be.eql(1); }); }); + + describe('getHandleBarsTemplateByDatasetId', () => { + it('should succeed with valid data', async () => { + const mockDBConnection = getMockDBConnection(); + const submissionService = new SubmissionService(mockDBConnection); + + const repo = sinon.stub(SubmissionRepository.prototype, 'getHandleBarsTemplateByDatasetId').resolves({ + header: 'header', + details: 'details' + }); + + const response = await submissionService.getHandleBarsTemplateByDatasetId('uuid'); + + expect(repo).to.be.calledOnce; + expect(response).to.be.eql({ + header: 'header', + details: 'details' + }); + }); + }); }); diff --git a/api/src/services/submission-service.ts b/api/src/services/submission-service.ts index 1f6c66d13..e97472a08 100644 --- a/api/src/services/submission-service.ts +++ b/api/src/services/submission-service.ts @@ -429,9 +429,10 @@ export class SubmissionService extends DBService { } /** + * Gets an object containing handlebars templates for the dataset page for a given dataset ID * - * @param datasetId - * @returns + * @param datasetId uuid used to fetch handlebars templates + * @returns An object containing */ async getHandleBarsTemplateByDatasetId(datasetId: string): Promise { return this.submissionRepository.getHandleBarsTemplateByDatasetId(datasetId); diff --git a/app/src/hooks/api/useDatasetApi.test.ts b/app/src/hooks/api/useDatasetApi.test.ts index efbbf3378..10d26fb51 100644 --- a/app/src/hooks/api/useDatasetApi.test.ts +++ b/app/src/hooks/api/useDatasetApi.test.ts @@ -74,4 +74,17 @@ describe('useDatasetApi', () => { datasets: [{ datasetId: 'bbb' }, { datasetId: 'ccc' }] }); }); + + it('getHandleBarsTemplateByDatasetId works as expected', async () => { + mock.onGet(`api/dwc/submission/uuid/handlebar`).reply(200, { + header: 'Header Template', + details: 'Details Template' + }); + + const results = await useDatasetApi(axios).getHandleBarsTemplateByDatasetId('uuid'); + expect(results).toEqual({ + header: 'Header Template', + details: 'Details Template' + }); + }); });