Skip to content
Snippets Groups Projects
Commit 72dc3cd3 authored by Rémi PAPIN's avatar Rémi PAPIN
Browse files

Introduce the Q fct

parent 13545e87
Branches
Tags
1 merge request!139Features/unit tests
{
"type": "io.cozy.triggers",
"id": "238ba37b8bc8130bd323edb5c1005c8f",
"attributes": {
"_id": "238ba37b8bc8130bd323edb5c1005c8f",
"_rev": "1-a33bf741c6958a707792bb2a0c8bc520",
"domain": "cozy.tools:8080",
"prefix": "cozy35ba44d2d1749e6f21646edce51e7190",
"type": "@cron",
"worker": "konnector",
"arguments": "0 3 8 * * *",
"debounce": "",
"options": null,
"message": {
"account": "238ba37b8bc8130bd323edb5c1005b96",
"konnector": "eglgrandlyon"
},
"current_state": {
"trigger_id": "238ba37b8bc8130bd323edb5c1005c8f",
"status": "errored",
"last_execution": "2020-11-13T10:03:16.4121536Z",
"last_executed_job_id": "238ba37b8bc8130bd323edb5c1006b56",
"last_failure": "2020-11-13T10:03:16.4121536Z",
"last_failed_job_id": "238ba37b8bc8130bd323edb5c1006b56",
"last_error": "fork/exec : no such file or directory",
"last_manual_execution": "2020-11-13T10:03:16.4121536Z",
"last_manual_job_id": "238ba37b8bc8130bd323edb5c1006b56"
},
"cozyMetadata": {
"doctypeVersion": "1",
"metadataVersion": 1,
"createdAt": "2020-11-13T10:03:16.0148026Z",
"createdByApp": "ecolyo",
"updatedAt": "2020-11-13T10:03:16.0148026Z"
}
},
"meta": {},
"links": {
"self": "/jobs/triggers/238ba37b8bc8130bd323edb5c1005c8f"
}
}
...@@ -2,6 +2,7 @@ import KonnectorService from './konnector.service' ...@@ -2,6 +2,7 @@ import KonnectorService from './konnector.service'
import { Client, QueryDefinition } from 'cozy-client' import { Client, QueryDefinition } from 'cozy-client'
import TriggerService from 'services/triggers.service' import TriggerService from 'services/triggers.service'
import { Trigger, TriggerState, Account } from 'models' import { Trigger, TriggerState, Account } from 'models'
import mockAccount from './__mocks__/accountsData.json'
const mockTriggers = ({ const mockTriggers = ({
getTrigger: jest.fn(), getTrigger: jest.fn(),
...@@ -17,19 +18,6 @@ const mockClient = ({ ...@@ -17,19 +18,6 @@ const mockClient = ({
getStackClient: jest.fn(), getStackClient: jest.fn(),
} as unknown) as jest.Mocked<Client> } as unknown) as jest.Mocked<Client>
const mockAccount: Account = {
_id: 'a686348c1fc85f92033e19eb6b0042af',
// eslint-disable-next-line @typescript-eslint/camelcase
account_type: 'eglgrandlyon',
auth: {
// eslint-disable-next-line @typescript-eslint/camelcase
credentials_encrypted:
'bmFjbNDdeM1X3TDBNfSmJTWOsiMkZHLkhUZVdfIh/BlrsTpNKYKZ6p63eBOpXUBSok5cTJBNuP2fVwOZAPzVKAACO+FMC2sdZtgk/CDqxwOA/roQlg==',
login: 'test',
},
identifier: 'login',
}
const mockKonnectorData = [ const mockKonnectorData = [
{ {
_id: 'test', _id: 'test',
...@@ -38,7 +26,6 @@ const mockKonnectorData = [ ...@@ -38,7 +26,6 @@ const mockKonnectorData = [
state: 'test', state: 'test',
}, },
] ]
const mockFind = new QueryDefinition()
const mockTriggerData: Trigger = { const mockTriggerData: Trigger = {
_id: 'test', _id: 'test',
type: 'test', type: 'test',
...@@ -65,7 +52,6 @@ const mockTriggerState: TriggerState = { ...@@ -65,7 +52,6 @@ const mockTriggerState: TriggerState = {
describe('KonnectorService service', () => { describe('KonnectorService service', () => {
const konnectorService = new KonnectorService(mockClient) const konnectorService = new KonnectorService(mockClient)
mockClient.find.mockReturnValue(mockFind)
mockClient.query.mockImplementation(() => mockClient.query.mockImplementation(() =>
Promise.resolve({ data: mockKonnectorData }) Promise.resolve({ data: mockKonnectorData })
) )
......
import { Client } from 'cozy-client' import { Client, Q } from 'cozy-client'
import { KONNECTORS_DOCTYPE } from 'doctypes' import { KONNECTORS_DOCTYPE } from 'doctypes'
import { Account, Konnector, TriggerState } from 'models' import { Account, Konnector, TriggerState } from 'models'
import TriggerService from 'services/triggers.service' import TriggerService from 'services/triggers.service'
...@@ -11,11 +11,12 @@ export default class KonnectorService { ...@@ -11,11 +11,12 @@ export default class KonnectorService {
} }
public async getKonnector(id: string) { public async getKonnector(id: string) {
const { data } = await this._client.query( const query = Q(KONNECTORS_DOCTYPE)
this._client.find(KONNECTORS_DOCTYPE).where({ // eslint-disable-next-line @typescript-eslint/camelcase
.where({
_id: KONNECTORS_DOCTYPE + '/' + id, _id: KONNECTORS_DOCTYPE + '/' + id,
}) })
) const { data } = await this._client.query(query)
const konnector: Konnector = data && data[0] const konnector: Konnector = data && data[0]
return konnector return konnector
} }
...@@ -34,8 +35,7 @@ export default class KonnectorService { ...@@ -34,8 +35,7 @@ export default class KonnectorService {
} }
public async createIndexKonnector() { public async createIndexKonnector() {
const query = this._client const query = Q(KONNECTORS_DOCTYPE)
.find('io.cozy.konnectors')
// eslint-disable-next-line @typescript-eslint/camelcase // eslint-disable-next-line @typescript-eslint/camelcase
.where({ _id: 'index' }) .where({ _id: 'index' })
.limitBy(1) .limitBy(1)
......
...@@ -39,11 +39,9 @@ export default class TriggerService { ...@@ -39,11 +39,9 @@ export default class TriggerService {
'TriggersServices : createTrigger - _triggerAttributes not found' 'TriggersServices : createTrigger - _triggerAttributes not found'
) )
} }
console.log(triggerAttributes)
const trigger = await triggersMutations(this._client).createTrigger( const trigger = await triggersMutations(this._client).createTrigger(
triggerAttributes triggerAttributes
) )
console.log(trigger)
return trigger return trigger
} }
...@@ -96,6 +94,8 @@ export default class TriggerService { ...@@ -96,6 +94,8 @@ export default class TriggerService {
const triggerState = await this._client const triggerState = await this._client
.getStackClient() .getStackClient()
.fetchJSON('GET', `/jobs/triggers/${trigger._id}`) .fetchJSON('GET', `/jobs/triggers/${trigger._id}`)
console.log('triggerState')
console.log(triggerState)
return triggerState.data.attributes.current_state return triggerState.data.attributes.current_state
? triggerState.data.attributes.current_state ? triggerState.data.attributes.current_state
: null : null
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment