93 lines
3.3 KiB
JavaScript
93 lines
3.3 KiB
JavaScript
const app = require('vn-loopback/server/server');
|
|
const LoopBackContext = require('loopback-context');
|
|
|
|
describe('Supplier updateFiscalData', () => {
|
|
const supplierId = 1;
|
|
const administrativeId = 5;
|
|
const employeeId = 1;
|
|
const defaultData = {
|
|
name: 'Plants SL',
|
|
nif: '06089160W',
|
|
account: '4100000001',
|
|
sageTaxTypeFk: 4,
|
|
sageWithholdingFk: 1,
|
|
sageTransactionTypeFk: 1,
|
|
postCode: '15214',
|
|
city: 'PONTEVEDRA',
|
|
provinceFk: 1,
|
|
countryFk: 1,
|
|
};
|
|
|
|
it('should return an error if the user is not administrative', async() => {
|
|
const ctx = {req: {accessToken: {userId: employeeId}}};
|
|
ctx.args = {};
|
|
|
|
let error;
|
|
await app.models.Supplier.updateFiscalData(ctx, supplierId)
|
|
.catch(e => {
|
|
error = e;
|
|
});
|
|
|
|
expect(error.message).toBeDefined();
|
|
});
|
|
|
|
it('should check that the supplier fiscal data is untainted', async() => {
|
|
const supplier = await app.models.Supplier.findById(supplierId);
|
|
|
|
expect(supplier.name).toEqual(defaultData.name);
|
|
expect(supplier.nif).toEqual(defaultData.nif);
|
|
expect(supplier.account).toEqual(defaultData.account);
|
|
expect(supplier.sageTaxTypeFk).toEqual(defaultData.sageTaxTypeFk);
|
|
expect(supplier.sageWithholdingFk).toEqual(defaultData.sageWithholdingFk);
|
|
expect(supplier.sageTransactionTypeFk).toEqual(defaultData.sageTransactionTypeFk);
|
|
expect(supplier.postCode).toEqual(defaultData.postCode);
|
|
expect(supplier.city).toEqual(defaultData.city);
|
|
expect(supplier.provinceFk).toEqual(defaultData.provinceFk);
|
|
expect(supplier.countryFk).toEqual(defaultData.countryFk);
|
|
});
|
|
|
|
it('should update the supplier fiscal data and return the count if changes made', async() => {
|
|
const activeCtx = {
|
|
accessToken: {userId: administrativeId},
|
|
};
|
|
const ctx = {req: activeCtx};
|
|
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
|
|
active: activeCtx
|
|
});
|
|
|
|
ctx.args = {
|
|
name: 'Weapon Dealer',
|
|
nif: 'A68446004',
|
|
account: '4000000005',
|
|
sageTaxTypeFk: 5,
|
|
sageWithholdingFk: 2,
|
|
sageTransactionTypeFk: 2,
|
|
postCode: '46460',
|
|
city: 'VALENCIA',
|
|
provinceFk: 2,
|
|
countryFk: 1,
|
|
supplierActivityFk: 'animals',
|
|
healthRegister: '400664487H'
|
|
};
|
|
|
|
const result = await app.models.Supplier.updateFiscalData(ctx, supplierId);
|
|
|
|
expect(result.name).toEqual('Weapon Dealer');
|
|
expect(result.nif).toEqual('A68446004');
|
|
expect(result.account).toEqual('4000000005');
|
|
expect(result.sageTaxTypeFk).toEqual(5);
|
|
expect(result.sageWithholdingFk).toEqual(2);
|
|
expect(result.sageTransactionTypeFk).toEqual(2);
|
|
expect(result.postCode).toEqual('46460');
|
|
expect(result.city).toEqual('VALENCIA');
|
|
expect(result.provinceFk).toEqual(2);
|
|
expect(result.countryFk).toEqual(1);
|
|
expect(result.supplierActivityFk).toEqual('animals');
|
|
expect(result.healthRegister).toEqual('400664487H');
|
|
|
|
// Restores
|
|
ctx.args = defaultData;
|
|
await app.models.Supplier.updateFiscalData(ctx, supplierId);
|
|
});
|
|
});
|