salix/modules/ticket/back/methods/state/specs/isEditable.spec.js

62 lines
2.3 KiB
JavaScript

const app = require('vn-loopback/server/server');
describe('state isEditable()', () => {
it('should return false if the state is not editable by a specific role', async() => {
const salesPersonRole = 18;
const onDeliveryState = 13;
let ctx = {req: {accessToken: {userId: salesPersonRole}}};
let result = await app.models.State.isEditable(ctx, onDeliveryState);
expect(result).toBe(false);
});
it('should return true if the state is editable by a specific role', async() => {
const salesPersonRole = 18;
const asignedState = 20;
let ctx = {req: {accessToken: {userId: salesPersonRole}}};
let result = await app.models.State.isEditable(ctx, asignedState);
expect(result).toBe(true);
});
it('should return true again if the state is editable by a specific role', async() => {
const employeeRole = 1;
const fixingState = 1;
let ctx = {req: {accessToken: {userId: employeeRole}}};
let result = await app.models.State.isEditable(ctx, fixingState);
expect(result).toBe(true);
});
it('should return false if the state is not editable for the given role', async() => {
const employeeRole = 1;
const asignedState = 20;
let ctx = {req: {accessToken: {userId: employeeRole}}};
let result = await app.models.State.isEditable(ctx, asignedState);
expect(result).toBe(false);
});
it('should return true if the state is editable for the given role', async() => {
const productionRole = 49;
const onDeliveryState = 13;
let ctx = {req: {accessToken: {userId: productionRole}}};
let result = await app.models.State.isEditable(ctx, onDeliveryState);
expect(result).toBe(true);
});
it('should return true if the ticket is editable, the role is salesPerson and the ticket state is printed', async() => {
const salesPersonRole = 18;
const printedState = 4;
const okState = 3;
const ctx = {req: {accessToken: {userId: salesPersonRole}}};
let canEditCurrent = await app.models.State.isEditable(ctx, printedState);
let canAsignNew = await app.models.State.isEditable(ctx, okState);
let result = canEditCurrent && canAsignNew;
expect(result).toBe(true);
});
});