Merge branch 'unit-test-client' into dev
This commit is contained in:
commit
49a5b97e4d
|
@ -0,0 +1,48 @@
|
|||
//TEST PENDING DUE TO MISSING TRIGGER ON FORM SUBMIT.
|
||||
|
||||
// import './address-create.js';
|
||||
|
||||
// describe('Component vnAddressCreate', () => {
|
||||
// let $componentController;
|
||||
// let $state;
|
||||
// let $scope;
|
||||
// let $httpBackend;
|
||||
// let vnApp;
|
||||
|
||||
// beforeEach(() => {
|
||||
// angular.mock.module('client');
|
||||
// });
|
||||
|
||||
// beforeEach(angular.mock.inject(function(_$componentController_, $rootScope, _$httpBackend_,_$state_, _vnApp_) {
|
||||
// $componentController = _$componentController_;
|
||||
// $scope = $rootScope.$new();
|
||||
// $httpBackend = _$httpBackend_;
|
||||
// $state = _$state_;
|
||||
// vnApp = _vnApp_;
|
||||
// spyOn(vnApp, 'showError');
|
||||
// }));
|
||||
|
||||
// it('should request to update the password', function() {
|
||||
// let controller = $componentController('vnAddressCreate', {$httpBackend: $httpBackend, $scope: $scope, $state: $state});
|
||||
// controller.address = {
|
||||
// agencyFk: 23,
|
||||
// city: "Valencia",
|
||||
// clientFk: 3,
|
||||
// consignee: "sd",
|
||||
// enabled: false,
|
||||
// id: 22490,
|
||||
// mobile: "123456789",
|
||||
// phone: "98765432",
|
||||
// postcode: "12345",
|
||||
// provinceFk: 63,
|
||||
// street: "a"
|
||||
// };
|
||||
// $httpBackend.when('PATCH', '/client/api/Addresses/3').respond('done');
|
||||
// $httpBackend.expectPATCH('/client/api/Addresses/3', {
|
||||
// clientFk: 3,
|
||||
// enabled: true
|
||||
// });
|
||||
// $httpBackend.flush();
|
||||
// });
|
||||
// });
|
||||
|
|
@ -10,7 +10,7 @@ export default class Controller {
|
|||
this.billData = {};
|
||||
this.copyData();
|
||||
}
|
||||
$onChanges(changes) {
|
||||
$onChanges() {
|
||||
this.copyData();
|
||||
}
|
||||
copyData() {
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
import './billing-data.js';
|
||||
|
||||
describe('Component vnClientBillingData', () => {
|
||||
let $componentController;
|
||||
let $scope;
|
||||
let vnApp;
|
||||
|
||||
beforeEach(() => {
|
||||
angular.mock.module('client');
|
||||
});
|
||||
|
||||
beforeEach(angular.mock.inject(function(_$componentController_, $rootScope, _$q_, _vnApp_) {
|
||||
$componentController = _$componentController_;
|
||||
$scope = $rootScope.$new();
|
||||
vnApp = _vnApp_;
|
||||
spyOn(vnApp, 'showError');
|
||||
}));
|
||||
|
||||
// describe('$onChanges()', () => {
|
||||
// it(`should call copyData()`, () => {
|
||||
|
||||
// });
|
||||
// });
|
||||
|
||||
describe('copyData()', () => {
|
||||
it(`should pass client data to billData`, () => {
|
||||
let controller = $componentController('vnClientBillingData', {$scope: $scope});
|
||||
controller.client = {
|
||||
payMethodFk: 'this',
|
||||
iban: 'is',
|
||||
dueDay: 'basically',
|
||||
discount: 'nonsense',
|
||||
credit: 'test',
|
||||
creditInsurance: 'text!'
|
||||
};
|
||||
controller.copyData();
|
||||
expect(controller.billData).toEqual(controller.client);
|
||||
});
|
||||
});
|
||||
|
||||
describe('submit()', () => {
|
||||
it(`should call submit() on the watcher then receive a callback`, () => {
|
||||
let controller = $componentController('vnClientBillingData', {$scope: $scope});
|
||||
spyOn(controller, 'submit');
|
||||
controller.submit();
|
||||
expect(controller.submit).toHaveBeenCalled();
|
||||
// controller.client = {
|
||||
// payMethodFk: 'this',
|
||||
// iban: 'is',
|
||||
// dueDay: 'basically',
|
||||
// discount: 'nonsense',
|
||||
// credit: 'test',
|
||||
// creditInsurance: 'text!'
|
||||
// };
|
||||
// controller.copyData();
|
||||
// expect(controller.billData).toEqual(controller.client);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -1,5 +1,5 @@
|
|||
import {ng} from 'vendor';
|
||||
import 'core';
|
||||
|
||||
const ngModule = ng.module('client', []);
|
||||
const ngModule = ng.module('client', ['salix']);
|
||||
export default ngModule;
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
vn-id="watcher"
|
||||
url="/client/api/Accounts"
|
||||
id-field="id"
|
||||
data="$ctrl.client.account"
|
||||
to="$ctrl.account"
|
||||
data="$ctrl.account"
|
||||
form="form">
|
||||
</vn-watcher>
|
||||
<form name="form" ng-submit="watcher.submit()" pad-medium>
|
||||
|
|
|
@ -1,23 +1,75 @@
|
|||
import VNClientWebAccess from './web-access.js';
|
||||
describe('some component', () => {
|
||||
let instance;
|
||||
var $scope;
|
||||
var $http;
|
||||
var vnApp = {showError: jasmine.createSpy('showError')};
|
||||
import './web-access.js';
|
||||
|
||||
describe('Component VnClientWebAccess', () => {
|
||||
let $componentController;
|
||||
let $httpBackend;
|
||||
let $scope;
|
||||
let vnApp;
|
||||
|
||||
beforeEach(() => {
|
||||
instance = new VNClientWebAccess($scope, $http, vnApp);
|
||||
angular.mock.module('client');
|
||||
});
|
||||
|
||||
it('should throw an error when password is empty', () => {
|
||||
instance.newPassword = '';
|
||||
instance.onPassChange('ACCEPT');
|
||||
beforeEach(angular.mock.inject(function(_$componentController_, $rootScope, _$httpBackend_, _vnApp_) {
|
||||
$componentController = _$componentController_;
|
||||
$scope = $rootScope.$new();
|
||||
$httpBackend = _$httpBackend_;
|
||||
vnApp = _vnApp_;
|
||||
spyOn(vnApp, 'showError');
|
||||
}));
|
||||
|
||||
describe('$onChanges()', () => {
|
||||
it(`should pass client's account to account`, () => {
|
||||
let controller = $componentController('vnClientWebAccess', {$scope: $scope});
|
||||
controller.client = {client: 'Bruce Wayne', account: 'Wayne Industries'};
|
||||
controller.account = {};
|
||||
controller.$onChanges();
|
||||
expect(controller.account).toBe('Wayne Industries');
|
||||
});
|
||||
});
|
||||
|
||||
describe('onPassOpen()', () => {
|
||||
it('should set passwords to empty values', () => {
|
||||
let controller = $componentController('vnClientWebAccess', {$scope: $scope});
|
||||
controller.newPassword = 'm24x8';
|
||||
controller.repeatPassword = 'm24x8';
|
||||
controller.onPassOpen();
|
||||
expect(controller.newPassword).toBe('');
|
||||
expect(controller.repeatPassword).toBe('');
|
||||
});
|
||||
});
|
||||
|
||||
describe('onPassChange()', () => {
|
||||
it('should request to update the password', function() {
|
||||
let controller = $componentController('vnClientWebAccess', {$scope: $scope});
|
||||
controller.client = {id: '1234'};
|
||||
controller.newPassword = 'm24x8';
|
||||
controller.repeatPassword = 'm24x8';
|
||||
$httpBackend.when('PATCH', '/client/api/Accounts/1234').respond('done');
|
||||
$httpBackend.expectPATCH('/client/api/Accounts/1234', {password: 'm24x8'});
|
||||
controller.onPassChange('ACCEPT');
|
||||
$httpBackend.flush();
|
||||
});
|
||||
|
||||
describe(`when password is empty`, () => {
|
||||
it('should throw an error', () => {
|
||||
let controller = $componentController('vnClientWebAccess', {$scope: $scope});
|
||||
controller.client = {id: '1234'};
|
||||
controller.newPassword = '';
|
||||
controller.onPassChange('ACCEPT');
|
||||
expect(vnApp.showError).toHaveBeenCalledWith(`Passwords can't be empty`);
|
||||
});
|
||||
});
|
||||
|
||||
it('should throw an error when password repeat doesnt match', () => {
|
||||
instance.newPassword = 'test';
|
||||
instance.repeatPassword = 'notTheSame';
|
||||
instance.onPassChange('ACCEPT');
|
||||
describe(`when passwords don't match`, () => {
|
||||
it('should throw an error', () => {
|
||||
let controller = $componentController('vnClientWebAccess', {$scope: $scope});
|
||||
controller.client = {id: '1234'};
|
||||
controller.newPassword = 'm24x8';
|
||||
controller.repeatPassword = 'notMatchingPassword';
|
||||
controller.onPassChange('ACCEPT');
|
||||
expect(vnApp.showError).toHaveBeenCalledWith(`Passwords don't match`);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -116,7 +116,12 @@ export default class Watcher extends Component {
|
|||
});
|
||||
}
|
||||
writeData(json, resolve) {
|
||||
this.data = this.copyObject(json.data);
|
||||
Object.keys(this.data).forEach(
|
||||
key => {
|
||||
this.data[key] = json.data[key];
|
||||
}
|
||||
);
|
||||
|
||||
this.copyData();
|
||||
resolve(json);
|
||||
}
|
||||
|
@ -135,7 +140,6 @@ export default class Watcher extends Component {
|
|||
copyData() {
|
||||
this.orgData = this.copyObject(this.data);
|
||||
}
|
||||
|
||||
copyObject(data) {
|
||||
let copy = {};
|
||||
if (data) {
|
||||
|
@ -148,7 +152,6 @@ export default class Watcher extends Component {
|
|||
}
|
||||
return copy;
|
||||
}
|
||||
|
||||
callback(transition) {
|
||||
if (!this.state && this.dataChanged()) {
|
||||
this.state = transition.to().name;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// require all modules ending in ".spec" from the
|
||||
// current directory and all subdirectories
|
||||
|
||||
import 'angular';
|
||||
import 'angular-mocks';
|
||||
var testsContext = require.context('./', true, /\.spec\.js$/);
|
||||
testsContext.keys().forEach(testsContext);
|
||||
|
|
|
@ -46,16 +46,13 @@
|
|||
"jasmine": "^2.7.0",
|
||||
"karma": "^1.7.0",
|
||||
"karma-chrome-launcher": "^2.2.0",
|
||||
"karma-firefox-launcher": "^1.0.1",
|
||||
"karma-jasmine": "^1.1.0",
|
||||
"karma-requirejs": "^1.1.0",
|
||||
"karma-sourcemap-loader": "^0.3.7",
|
||||
"karma-webpack": "^2.0.4",
|
||||
"merge-stream": "^1.0.1",
|
||||
"node-sass": "^3.11.0",
|
||||
"pre-commit": "^1.1.3",
|
||||
"raw-loader": "*",
|
||||
"requirejs": "^2.3.5",
|
||||
"sass-loader": "^4.0.2",
|
||||
"style-loader": "^0.13.1",
|
||||
"webpack": "^2.2.0",
|
||||
|
|
Loading…
Reference in New Issue