salix/modules/supplier/front/account/index.spec.js

99 lines
3.2 KiB
JavaScript

import './index.js';
import watcher from 'core/mocks/watcher';
import crudModel from 'core/mocks/crud-model';
describe('Supplier Component vnSupplierAccount', () => {
let $scope;
let controller;
let $httpBackend;
beforeEach(ngModule('supplier'));
beforeEach(inject(($componentController, $rootScope, _$httpBackend_) => {
$httpBackend = _$httpBackend_;
$scope = $rootScope.$new();
$scope.model = crudModel;
$scope.watcher = watcher;
$scope.bankEntity = {
open: () => {}
};
const $element = angular.element('<vn-supplier-account></vn-supplier-account>');
controller = $componentController('vnSupplierAccount', {$element, $scope});
controller.supplierAccount = {
supplierFk: 442,
name: 'Verdnatura'
};
}));
describe('onAccept()', () => {
it('should set the created bank entity id into the target account', () => {
controller.supplierAccounts = [{}, {}, {}];
const data = {
id: 999,
index: 1
};
controller.onAccept(data);
const targetAccount = controller.supplierAccounts[data.index];
expect(targetAccount.bankEntityFk).toEqual(data.id);
});
});
describe('onSubmit()', () => {
it(`should reload the card`, done => {
controller.card = {reload: () => {}};
controller.$.payMethodToTransfer = {show: () => {}};
jest.spyOn(controller.$.payMethodToTransfer, 'show');
jest.spyOn(controller.$.model, 'save').mockReturnValue(new Promise(resolve => {
return resolve({
id: 1234
});
}));
jest.spyOn(controller.card, 'reload').mockReturnValue(new Promise(resolve => {
return resolve({
id: 1234
});
}));
controller.wireTransferFk = 'a';
controller.supplier = {payMethodFk: 'b'};
controller.onSubmit().then(() => {
expect(controller.card.reload).toHaveBeenCalledWith();
expect(controller.$.payMethodToTransfer.show).toHaveBeenCalled();
done();
}).catch(done.fail);
});
});
describe('setWireTransfer()', () => {
it(`should make HTTP PATCH request to set wire transfer and call notifySaved`, () => {
const supplierId = 1;
const params = {
id: supplierId,
payMethodFk: 2
};
const response = {
data: {id: 2}
};
const uri = 'payMethods/findOne?filter=%7B%22where%22:%7B%22code%22:%22wireTransfer%22%7D%7D';
jest.spyOn($scope.watcher, 'notifySaved');
controller.$params.id = supplierId;
controller.wireTransferFk = 2;
controller.supplier = {payMethodFk: 1};
$httpBackend.expectGET(uri).respond(response);
$httpBackend.expectPATCH(`Suppliers/${supplierId}`, params).respond();
controller.setWireTransfer();
$httpBackend.flush();
expect($scope.watcher.notifySaved).toHaveBeenCalledWith();
});
});
});