53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
import { vi, describe, it, expect } from 'vitest';
|
|
import Execution from './execution';
|
|
import ExecutionStep from './execution-step';
|
|
import Flow from './flow';
|
|
import Base from './base';
|
|
import Telemetry from '../helpers/telemetry/index';
|
|
import { createExecution } from '../../test/factories/execution';
|
|
|
|
describe('Execution model', () => {
|
|
it('tableName should return correct name', () => {
|
|
expect(Execution.tableName).toBe('executions');
|
|
});
|
|
|
|
it('jsonSchema should have correct validations', () => {
|
|
expect(Execution.jsonSchema).toMatchSnapshot();
|
|
});
|
|
|
|
it('relationMappings should return correct associations', () => {
|
|
const relationMappings = Execution.relationMappings();
|
|
|
|
const expectedRelations = {
|
|
executionSteps: {
|
|
join: {
|
|
from: 'executions.id',
|
|
to: 'execution_steps.execution_id',
|
|
},
|
|
modelClass: ExecutionStep,
|
|
relation: Base.HasManyRelation,
|
|
},
|
|
flow: {
|
|
join: {
|
|
from: 'executions.flow_id',
|
|
to: 'flows.id',
|
|
},
|
|
modelClass: Flow,
|
|
relation: Base.BelongsToOneRelation,
|
|
},
|
|
};
|
|
|
|
expect(relationMappings).toStrictEqual(expectedRelations);
|
|
});
|
|
|
|
it('$afterInsert should call Telemetry.executionCreated', async () => {
|
|
const telemetryExecutionCreatedSpy = vi
|
|
.spyOn(Telemetry, 'executionCreated')
|
|
.mockImplementation(() => {});
|
|
|
|
const execution = await createExecution();
|
|
|
|
expect(telemetryExecutionCreatedSpy).toHaveBeenCalledWith(execution);
|
|
});
|
|
});
|