fixed price controller tests
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
parent
3ec641f733
commit
52a1e3f652
|
@ -16,8 +16,8 @@ export default class Controller extends Section {
|
||||||
|
|
||||||
upsertPrice(price) {
|
upsertPrice(price) {
|
||||||
price.hasMinPrice = price.minPrice ? true : false;
|
price.hasMinPrice = price.minPrice ? true : false;
|
||||||
let requiredFields = ['itemFk', 'started', 'ended', 'rate2', 'rate3'];
|
|
||||||
|
|
||||||
|
let requiredFields = ['itemFk', 'started', 'ended', 'rate2', 'rate3'];
|
||||||
for (let field of requiredFields)
|
for (let field of requiredFields)
|
||||||
if (price[field] == undefined) return;
|
if (price[field] == undefined) return;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
import './index';
|
||||||
|
|
||||||
|
describe('fixed price', () => {
|
||||||
|
describe('Component vnFixedPrice', () => {
|
||||||
|
let controller;
|
||||||
|
let $httpBackend;
|
||||||
|
|
||||||
|
beforeEach(ngModule('item'));
|
||||||
|
|
||||||
|
beforeEach(inject(($componentController, _$httpBackend_, $rootScope) => {
|
||||||
|
$httpBackend = _$httpBackend_;
|
||||||
|
const $scope = $rootScope.$new();
|
||||||
|
const $element = angular.element('<vn-fixed-price></vn-fixed-price>');
|
||||||
|
controller = $componentController('vnFixedPrice', {$element, $scope});
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe('upsertPrice()', () => {
|
||||||
|
it('should do nothing if one or more required arguments are missing', () => {
|
||||||
|
jest.spyOn(controller.vnApp, 'showSuccess');
|
||||||
|
|
||||||
|
controller.upsertPrice({});
|
||||||
|
|
||||||
|
expect(controller.vnApp.showSuccess).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should perform an http request to update the price', () => {
|
||||||
|
const now = new Date();
|
||||||
|
jest.spyOn(controller.vnApp, 'showSuccess');
|
||||||
|
|
||||||
|
$httpBackend.expectPATCH('FixedPrices/upsertFixedPrice').respond();
|
||||||
|
controller.upsertPrice({
|
||||||
|
itemFk: 1,
|
||||||
|
started: now,
|
||||||
|
ended: now,
|
||||||
|
rate2: 1,
|
||||||
|
rate3: 2
|
||||||
|
});
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(controller.vnApp.showSuccess).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('removePrice()', () => {
|
||||||
|
it(`should only remove the created instance by the model as it doesn't have an ID yet`, () => {
|
||||||
|
const $index = 0;
|
||||||
|
controller.$ = {
|
||||||
|
model: {
|
||||||
|
remove: () => {},
|
||||||
|
data: [{
|
||||||
|
foo: 'bar'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
jest.spyOn(controller.vnApp, 'showSuccess');
|
||||||
|
jest.spyOn(controller.$.model, 'remove');
|
||||||
|
|
||||||
|
controller.removePrice($index);
|
||||||
|
|
||||||
|
expect(controller.vnApp.showSuccess).not.toHaveBeenCalled();
|
||||||
|
expect(controller.$.model.remove).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should remove the instance performing an delete http request', () => {
|
||||||
|
const $index = 0;
|
||||||
|
controller.$ = {
|
||||||
|
model: {
|
||||||
|
remove: () => {},
|
||||||
|
data: [{
|
||||||
|
id: '1'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
jest.spyOn(controller.vnApp, 'showSuccess');
|
||||||
|
jest.spyOn(controller.$.model, 'remove');
|
||||||
|
|
||||||
|
const query = `FixedPrices/${controller.$.model.data[0].id}`;
|
||||||
|
$httpBackend.expectDELETE(query).respond();
|
||||||
|
controller.removePrice($index);
|
||||||
|
$httpBackend.flush();
|
||||||
|
|
||||||
|
expect(controller.vnApp.showSuccess).toHaveBeenCalled();
|
||||||
|
expect(controller.$.model.remove).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue