From 182e92b13270ac9858ffdd0ab397cd8fefe57f25 Mon Sep 17 00:00:00 2001 From: Jesus Date: Wed, 28 Jun 2017 22:50:58 +0100 Subject: [PATCH 1/2] Add to the api mock a fake method that will load the evalution based on the right Id's. --- src/rest-api/trainer/spec/trainerApi.spec.ts | 32 ++++++++++++++++++++ src/rest-api/trainer/trainerApi.ts | 15 +++++++++ 2 files changed, 47 insertions(+) diff --git a/src/rest-api/trainer/spec/trainerApi.spec.ts b/src/rest-api/trainer/spec/trainerApi.spec.ts index 89edfd8..cac41e7 100644 --- a/src/rest-api/trainer/spec/trainerApi.spec.ts +++ b/src/rest-api/trainer/spec/trainerApi.spec.ts @@ -1,6 +1,8 @@ import {expect} from 'chai'; import * as trainerMockData from '../trainerMockData'; +import * as exerciseEvaluationMockData from '../exerciseEvaluationMockedData'; import {EditTrainingSummary} from '../../../model/trainer/editTrainingSummary'; +import { ExerciseEvaluation } from '../../../model/trainer/deliveryEvaluation'; import {trainerApi} from '../trainerApi'; describe('TrainerApi', () => { @@ -63,4 +65,34 @@ describe('TrainerApi', () => { }); }).bind(this)); }); + + describe('getExerciseEvaluationById', () => { + it('returns expected Exercise Evaluation by id equals 1', sinon.test((done) => { + // Arrange + const sinon: sinon.SinonStatic = this; + + const id = 123; + + const expectedMockEvaluation: ExerciseEvaluation = { + id: 123, + name: 'Exercise delivery - Module UX + Design', + studentDelivery:null + }; + + const exerciseEvaluationMockDataStub = sinon.stub(exerciseEvaluationMockData, 'exerciseEvaluationMockedData', + [expectedMockEvaluation], + ); + + // Act + // const promise = trainerApi.getTrainingConentByTrainingId(id); + const promise = trainerApi.getExerciseEvaluationById(id); + + promise.then((content) => { + // Assert + expect(content.name).to.equal(expectedMockEvaluation.name); + done(); + }); + }).bind(this)); + + }); }); diff --git a/src/rest-api/trainer/trainerApi.ts b/src/rest-api/trainer/trainerApi.ts index 8f4b999..7701355 100644 --- a/src/rest-api/trainer/trainerApi.ts +++ b/src/rest-api/trainer/trainerApi.ts @@ -1,4 +1,6 @@ import {trainingContentMockData} from './trainerMockData'; +import {exerciseEvaluationMockedData} from './exerciseEvaluationMockedData'; +import { ExerciseEvaluation } from '../../model/trainer/deliveryEvaluation'; class TrainerApi { public getTrainingConentByTrainingId(id: number): Promise { @@ -14,6 +16,19 @@ class TrainerApi { return Promise.resolve(content); } + public getExerciseEvaluationById(id: number): Promise { + let evaluation: ExerciseEvaluation; + + const evaluationData = exerciseEvaluationMockedData.filter((evaluationItem) => { + return evaluationItem.id === id; + }); + + if (evaluationData && evaluationData.length > 0) { + evaluation = evaluationData[0]; + } + + return Promise.resolve(evaluation); + } } export const trainerApi = new TrainerApi(); From 2fe38ea7c69c95e1f3493e7d5f02fa699108f297 Mon Sep 17 00:00:00 2001 From: Jesus Date: Tue, 11 Jul 2017 22:45:18 +0100 Subject: [PATCH 2/2] code review modifications to use js find exercise evaluation instead to filter and formatting styles. Added Save exercise evaluation method. Fixed a type --- .../training/edit/actions/fetchTrainingContent.ts | 2 +- .../edit/actions/spec/fetchTrainingContent.spec.ts | 6 +++--- src/rest-api/trainer/spec/trainerApi.spec.ts | 10 +++------- src/rest-api/trainer/trainerApi.ts | 14 +++++++++----- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/pages/trainer/training/edit/actions/fetchTrainingContent.ts b/src/pages/trainer/training/edit/actions/fetchTrainingContent.ts index 1eeb89c..d738ef4 100644 --- a/src/pages/trainer/training/edit/actions/fetchTrainingContent.ts +++ b/src/pages/trainer/training/edit/actions/fetchTrainingContent.ts @@ -3,7 +3,7 @@ import {trainerApi} from '../../../../../rest-api'; export const fetchTrainingContentStarted = (trainingId: number) => { return (dispatcher) => { - const promise = trainerApi.getTrainingConentByTrainingId(trainingId); + const promise = trainerApi.getTrainingContentByTrainingId(trainingId); promise.then( (data) => dispatcher(fetchTrainingContentCompleted(data)), diff --git a/src/pages/trainer/training/edit/actions/spec/fetchTrainingContent.spec.ts b/src/pages/trainer/training/edit/actions/spec/fetchTrainingContent.spec.ts index c1aa4bc..dca4a61 100644 --- a/src/pages/trainer/training/edit/actions/spec/fetchTrainingContent.spec.ts +++ b/src/pages/trainer/training/edit/actions/spec/fetchTrainingContent.spec.ts @@ -52,7 +52,7 @@ describe('fetchTrainingContentStarted', () => { }); }); - it('should calls to getTrainingConentByTrainingId and expect payload', sinon.test((done) => { + it('should calls to getTrainingContentByTrainingId and expect payload', sinon.test((done) => { // Arrange const sinon: sinon.SinonStatic = this; @@ -60,7 +60,7 @@ describe('fetchTrainingContentStarted', () => { const expectedContent = 'Test content'; const store = mockStore([]); - const getTrainingConentByTrainingIdStub = sinon.stub(trainerApi, 'getTrainingConentByTrainingId', () => { + const getTrainingContentByTrainingIdStub = sinon.stub(trainerApi, 'getTrainingContentByTrainingId', () => { return { then: (callback) => { callback(expectedContent); @@ -72,7 +72,7 @@ describe('fetchTrainingContentStarted', () => { store.dispatch(fetchTrainingContentStarted(trainingId)) .then(() => { // Assert - expect(getTrainingConentByTrainingIdStub.calledWith(trainingId)).to.be.true; + expect(getTrainingContentByTrainingIdStub.calledWith(trainingId)).to.be.true; expect(store.getActions()[0].payload).to.equal(expectedContent); done(); diff --git a/src/rest-api/trainer/spec/trainerApi.spec.ts b/src/rest-api/trainer/spec/trainerApi.spec.ts index cac41e7..ce4af74 100644 --- a/src/rest-api/trainer/spec/trainerApi.spec.ts +++ b/src/rest-api/trainer/spec/trainerApi.spec.ts @@ -11,7 +11,7 @@ describe('TrainerApi', () => { expect(trainerApi).not.to.be.undefined; }); - describe('getTrainingConentByTrainingId', () => { + describe('getTrainingContentByTrainingId', () => { it('returns expected content by id equals 1', sinon.test((done) => { // Arrange const sinon: sinon.SinonStatic = this; @@ -28,7 +28,7 @@ describe('TrainerApi', () => { ); // Act - const promise = trainerApi.getTrainingConentByTrainingId(id); + const promise = trainerApi.getTrainingContentByTrainingId(id); promise.then((content) => { // Assert @@ -56,7 +56,7 @@ describe('TrainerApi', () => { ); // Act - const promise = trainerApi.getTrainingConentByTrainingId(id); + const promise = trainerApi.getTrainingContentByTrainingId(id); promise.then((content) => { // Assert @@ -70,21 +70,17 @@ describe('TrainerApi', () => { it('returns expected Exercise Evaluation by id equals 1', sinon.test((done) => { // Arrange const sinon: sinon.SinonStatic = this; - const id = 123; - const expectedMockEvaluation: ExerciseEvaluation = { id: 123, name: 'Exercise delivery - Module UX + Design', studentDelivery:null }; - const exerciseEvaluationMockDataStub = sinon.stub(exerciseEvaluationMockData, 'exerciseEvaluationMockedData', [expectedMockEvaluation], ); // Act - // const promise = trainerApi.getTrainingConentByTrainingId(id); const promise = trainerApi.getExerciseEvaluationById(id); promise.then((content) => { diff --git a/src/rest-api/trainer/trainerApi.ts b/src/rest-api/trainer/trainerApi.ts index 7701355..e2e085d 100644 --- a/src/rest-api/trainer/trainerApi.ts +++ b/src/rest-api/trainer/trainerApi.ts @@ -3,7 +3,7 @@ import {exerciseEvaluationMockedData} from './exerciseEvaluationMockedData'; import { ExerciseEvaluation } from '../../model/trainer/deliveryEvaluation'; class TrainerApi { - public getTrainingConentByTrainingId(id: number): Promise { + public getTrainingContentByTrainingId(id: number): Promise { let content: string; const trainingContent = trainingContentMockData.filter((trainingMockData) => { @@ -19,15 +19,19 @@ class TrainerApi { public getExerciseEvaluationById(id: number): Promise { let evaluation: ExerciseEvaluation; - const evaluationData = exerciseEvaluationMockedData.filter((evaluationItem) => { + const evaluationData = exerciseEvaluationMockedData.find((evaluationItem) => { return evaluationItem.id === id; }); - if (evaluationData && evaluationData.length > 0) { - evaluation = evaluationData[0]; + if (evaluationData) { + evaluation = evaluationData; } - return Promise.resolve(evaluation); + return Promise.resolve(evaluationData); + } + + public saveExerciseEvaluation(exerciseEvaluation:ExerciseEvaluation){ + return Promise.resolve(exerciseEvaluation); } }