diff --git a/src/services/konnector.service.ts b/src/services/konnector.service.ts index 37f1ad53180bbfa7f6656de89e9c4f7690a9aad4..3784df1309b3e64f15a06657656df005ae590fa2 100644 --- a/src/services/konnector.service.ts +++ b/src/services/konnector.service.ts @@ -26,6 +26,7 @@ export default class KonnectorService { ): Promise<TriggerState | null> { const triggerService = new TriggerService(this._client) const trigger = await triggerService.getTrigger(account, konnector) + console.log(trigger) if (trigger) { const triggerState = await triggerService.fetchTriggerState(trigger) return triggerState diff --git a/src/services/queryRunner.service.spec.ts b/src/services/queryRunner.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..0f7792930dc67bfd9aeace41aaed8eebc058c8f8 --- /dev/null +++ b/src/services/queryRunner.service.spec.ts @@ -0,0 +1,88 @@ +import { TimeStep } from 'enum/timeStep.enum' +import { DateTime } from 'luxon' +import QueryRunner from './queryRunner.service' +import mockClient from './__mocks__/client' + +const mockTimePeriod = { + startDate: DateTime.fromISO('2020-11-01T00:00:00.000+01:00'), + endDate: DateTime.fromISO('2020-11-30T23:59:59.999+01:00'), +} + +const queryResult = { + data: [ + { + id: 'bf1ce3a5774e140056714c4c200c093e', + _id: 'bf1ce3a5774e140056714c4c200c093e', + _type: 'com.grandlyon.egl.day', + _rev: '1-4fe971dff073a3c3c6cc12a0246e642e', + day: 1, + hour: 0, + load: 257.25, + minute: 0, + month: 11, + year: 2020, + }, + { + id: 'cf7dc6f44a19b354f99b01ba1a0b4840', + _id: 'cf7dc6f44a19b354f99b01ba1a0b4840', + _type: 'com.grandlyon.egl.day', + _rev: '1-4fe971dff073a3c3c6cc12a0246e642e', + day: 1, + hour: 0, + load: 257.25, + minute: 0, + month: 11, + year: 2020, + }, + ], + next: false, + skip: 0, + bookmark: + 'g2wAAAACaAJkAA5zdGFydGtleV9kb2NpZG0AAAAgY2Y3ZGM2ZjQ0YTE5YjM1NGY5OWIwMWJhMWEwYjI3ZjhoAmQACHN0YXJ0a2V5bAAAAANiAAAH5GELYQRqag', +} + +describe('queryRunner service', () => { + const queryRunner = new QueryRunner(mockClient) + const fluidType = 0 + describe('fetchFluidData', () => { + const expectedResult = [ + { + date: DateTime.fromISO('2020-11-01T00:00:00.000+01:00'), + value: 257.25, + }, + { + date: DateTime.fromISO('2020-11-01T00:00:00.000+01:00'), + value: 257.25, + }, + ] + it('should return the data of the selected Fluid', async () => { + mockClient.query.mockImplementation(() => Promise.resolve(queryResult)) + + const result = await queryRunner.fetchFluidData( + mockTimePeriod, + TimeStep.DAY, + fluidType + ) + expect(result).toEqual(expectedResult) + }) + it('should return null', async () => { + mockClient.query.mockImplementationOnce(() => Promise.resolve(null)) + const result = await queryRunner.fetchFluidData( + mockTimePeriod, + TimeStep.DAY, + fluidType + ) + expect(result).toBeNull() + }) + }) + describe('fetchFluidMaxData', () => { + it('should return the max data of the selected Fluid', async () => { + const result = await queryRunner.fetchFluidData( + mockTimePeriod, + TimeStep.DAY, + fluidType + ) + expect(result).toBeNull() + }) + }) +}) diff --git a/src/services/queryRunner.service.ts b/src/services/queryRunner.service.ts index 016c9a2ac19e1b5f7d5f2759ebde7feef1eea4fb..051d2fec12ebaeae89452e2f1f18de95035f451c 100644 --- a/src/services/queryRunner.service.ts +++ b/src/services/queryRunner.service.ts @@ -1,4 +1,4 @@ -import { Client, QueryDefinition } from 'cozy-client' +import { Client, QueryDefinition, Q } from 'cozy-client' import { DateTime, Interval } from 'luxon' import { ENEDIS_DAY_DOCTYPE, @@ -70,7 +70,6 @@ export default class QueryRunner { const result = await this.fetchData( this.buildListQuery(timeStep, timePeriod, fluidType, this._max_limit) ) - if (result && result.data) { const filteredResult = this.filterDataList(result, timePeriod) const mappedResult = this.mapDataList(filteredResult) @@ -143,6 +142,7 @@ export default class QueryRunner { let result = null try { result = await this._client.query(query) + console.log(result) } catch (error) { // log stuff //throw new Error("Cozy Cient Error"); @@ -201,8 +201,7 @@ export default class QueryRunner { ) { const doctype = this.getRelevantDoctype(fluidType, timeStep) - return this._client - .find(doctype) + return Q(doctype) .where(this.getPredicate(timePeriod, timeStep)) .limitBy(limit) } diff --git a/src/services/triggers.service.ts b/src/services/triggers.service.ts index 9cc426c197292345af89ed65e9d37102f89d9383..74bd3f558dcff8cedc3f8cc5afb95303018e974a 100644 --- a/src/services/triggers.service.ts +++ b/src/services/triggers.service.ts @@ -70,7 +70,6 @@ export default class TriggerService { ? triggerState.data.attributes.current_state : null } catch (error) { - console.log(error) throw new Error('Fetch trigger state failed') } } diff --git a/test/services/QueryRunner.spec.ts b/test/services/QueryRunner.spec.ts.old similarity index 100% rename from test/services/QueryRunner.spec.ts rename to test/services/QueryRunner.spec.ts.old