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

98 lines
3.4 KiB
JavaScript
Raw Normal View History

import './index';
describe('component vnUserDescriptor', () => {
let controller;
let $httpBackend;
let user = {id: 1, name: 'foo'};
beforeEach(ngModule('account'));
beforeEach(inject(($componentController, _$httpBackend_) => {
$httpBackend = _$httpBackend_;
$httpBackend.whenGET('UserAccounts/1/exists').respond({exists: true});
controller = $componentController('vnUserDescriptor', {$element: null}, {user});
jest.spyOn(controller, 'emit');
jest.spyOn(controller.vnApp, 'showSuccess');
}));
describe('onDelete()', () => {
it('should delete entity and go to index', () => {
controller.$state.go = jest.fn();
$httpBackend.expectDELETE('Accounts/1').respond();
controller.onDelete();
$httpBackend.flush();
expect(controller.$state.go).toHaveBeenCalledWith('account.index');
expect(controller.vnApp.showSuccess).toHaveBeenCalled();
});
});
describe('onPassChange()', () => {
it('should throw an error when password is empty', () => {
expect(() => {
controller.onPassChange();
}).toThrowErrorMatchingSnapshot();
});
it('should throw an error when repeat password not matches new password', () => {
controller.newPassword = 'foo';
controller.repeatPassword = 'bar';
expect(() => {
controller.onPassChange();
}).toThrowErrorMatchingSnapshot();
});
it('should make a request when password checks passes', () => {
controller.newPassword = 'foo';
controller.repeatPassword = 'foo';
$httpBackend.expectPATCH('Accounts/1/setPassword').respond();
controller.onPassChange();
$httpBackend.flush();
expect(controller.vnApp.showSuccess).toHaveBeenCalled();
expect(controller.emit).toHaveBeenCalledWith('change');
});
});
describe('onEnableAccount()', () => {
it('should make request to enable account', () => {
$httpBackend.expectPOST('UserAccounts', {id: 1}).respond();
controller.onEnableAccount();
$httpBackend.flush();
expect(controller.hasAccount).toBeTruthy();
expect(controller.vnApp.showSuccess).toHaveBeenCalled();
expect(controller.emit).toHaveBeenCalledWith('change');
});
});
describe('onDisableAccount()', () => {
it('should make request to disable account', () => {
$httpBackend.expectDELETE('UserAccounts/1').respond();
controller.onDisableAccount();
$httpBackend.flush();
expect(controller.hasAccount).toBeFalsy();
expect(controller.vnApp.showSuccess).toHaveBeenCalled();
expect(controller.emit).toHaveBeenCalledWith('change');
});
});
describe('onSetActive()', () => {
it('should make request to activate/deactivate the user', () => {
$httpBackend.expectPATCH('Accounts/1', {active: true}).respond();
controller.onSetActive(true);
$httpBackend.flush();
expect(controller.user.active).toBeTruthy();
expect(controller.vnApp.showSuccess).toHaveBeenCalled();
expect(controller.emit).toHaveBeenCalledWith('change');
});
});
});