99 lines
3.2 KiB
JavaScript
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();
|
|
});
|
|
});
|
|
});
|
|
|