mirror of
https://github.com/Febbweiss/CloudBudget-AngularJS.git
synced 2026-03-04 22:35:38 +00:00
Feature: get user's accounts
This commit is contained in:
184
test/accounts.controller.spec.js
Normal file
184
test/accounts.controller.spec.js
Normal file
@@ -0,0 +1,184 @@
|
||||
describe('AccountsController', function() {
|
||||
|
||||
var $location,
|
||||
$rootScope,
|
||||
$scope,
|
||||
$timeout,
|
||||
$httpBackend,
|
||||
AccountsService,
|
||||
FlashService,
|
||||
createController,
|
||||
apiRoutes,
|
||||
shouldPass,
|
||||
DEFAULT_ACCOUNT = {
|
||||
"name": "test",
|
||||
"reference": "1234567890",
|
||||
"user_id": "55b78934d2a706265ea28e9c",
|
||||
"_id": "560aa0e79633cd7c1495ff21"
|
||||
};
|
||||
|
||||
beforeEach(module('cloudbudget'));
|
||||
|
||||
beforeEach(inject(function ( _$rootScope_, _$httpBackend_, $controller, _$location_, _$timeout_, _AccountsService_, _FlashService_, _apiRoutes_) {
|
||||
$location = _$location_;
|
||||
$httpBackend = $httpBackend;
|
||||
$rootScope = _$rootScope_.$new();
|
||||
$scope = _$rootScope_.$new();
|
||||
$scope.form = {
|
||||
$valid: true,
|
||||
$setPristine: function() {}
|
||||
};
|
||||
$timeout = _$timeout_;
|
||||
AccountsService = _AccountsService_;
|
||||
FlashService = _FlashService_;
|
||||
apiRoutes = _apiRoutes_;
|
||||
|
||||
createController = function() {
|
||||
return $controller('AccountsController', {
|
||||
'$scope': $scope,
|
||||
'$location': $location,
|
||||
'$rootScope': $rootScope,
|
||||
FlashService: _FlashService_,
|
||||
AccountsService: _AccountsService_,
|
||||
});
|
||||
};
|
||||
}));
|
||||
|
||||
describe('init()', function() {
|
||||
it('should create successfully', inject(function($controller, $httpBackend) {
|
||||
$httpBackend.expect('GET', apiRoutes.accounts)
|
||||
.respond([DEFAULT_ACCOUNT]);
|
||||
|
||||
|
||||
var accountsController = createController();
|
||||
$httpBackend.flush();
|
||||
$timeout.flush();
|
||||
|
||||
accountsController.accounts.should.be.instanceof(Array).and.have.lengthOf(1);
|
||||
}));
|
||||
});
|
||||
|
||||
describe('* create()', function() {
|
||||
it('should create successfully', inject(function($controller, $httpBackend) {
|
||||
$httpBackend.expect('GET', apiRoutes.accounts)
|
||||
.respond([]);
|
||||
|
||||
$httpBackend.expect('POST', apiRoutes.accounts)
|
||||
.respond(DEFAULT_ACCOUNT);
|
||||
|
||||
|
||||
var accountsController = createController();
|
||||
accountsController.account = {
|
||||
name: 'test',
|
||||
reference: '1234567890'
|
||||
};
|
||||
|
||||
accountsController.create();
|
||||
$httpBackend.flush();
|
||||
$timeout.flush();
|
||||
|
||||
var account = accountsController.accounts[0];
|
||||
account.name.should.be.equal('test');
|
||||
account.reference.should.be.equal('1234567890');
|
||||
should.exist(account._id);
|
||||
}));
|
||||
|
||||
it('should fail to create account', inject(function($controller, $httpBackend) {
|
||||
$httpBackend.expect('GET', apiRoutes.accounts)
|
||||
.respond([]);
|
||||
|
||||
$httpBackend.expect('POST', apiRoutes.accounts)
|
||||
.respond(400, [{"field":"name","rule":"required","message":"Path `name` is required."}]);
|
||||
|
||||
|
||||
var accountsController = createController();
|
||||
accountsController.account = {
|
||||
reference: '1234567890'
|
||||
};
|
||||
|
||||
accountsController.create();
|
||||
$httpBackend.flush();
|
||||
$timeout.flush();
|
||||
|
||||
accountsController.accounts.should.be.instanceof(Array).and.have.lengthOf(0);
|
||||
}));
|
||||
});
|
||||
|
||||
describe('* delete()', function() {
|
||||
it('should delete successfully', inject(function($controller, $httpBackend) {
|
||||
$httpBackend.expect('GET', apiRoutes.accounts)
|
||||
.respond([DEFAULT_ACCOUNT]);
|
||||
|
||||
$httpBackend.expect('DELETE', apiRoutes.accounts + '560aa0e79633cd7c1495ff21')
|
||||
.respond(204);
|
||||
|
||||
|
||||
var accountsController = createController();
|
||||
accountsController.drop({_id: '560aa0e79633cd7c1495ff21'});
|
||||
$httpBackend.flush();
|
||||
$timeout.flush();
|
||||
|
||||
accountsController.accounts.should.be.instanceof(Array).and.have.lengthOf(0);
|
||||
}));
|
||||
|
||||
it('should fail to delete unknown account', inject(function($controller, $httpBackend) {
|
||||
$httpBackend.expect('GET', apiRoutes.accounts)
|
||||
.respond([DEFAULT_ACCOUNT]);
|
||||
|
||||
$httpBackend.expect('DELETE', apiRoutes.accounts + 'fake_id')
|
||||
.respond(404);
|
||||
|
||||
|
||||
var accountsController = createController();
|
||||
accountsController.drop({_id: 'fake_id'});
|
||||
$httpBackend.flush();
|
||||
$timeout.flush();
|
||||
|
||||
accountsController.accounts.should.be.instanceof(Array).and.have.lengthOf(1);
|
||||
}));
|
||||
});
|
||||
|
||||
describe('* edit()', function() {
|
||||
it('should edit successfully', inject(function($controller, $httpBackend) {
|
||||
$httpBackend.expect('GET', apiRoutes.accounts)
|
||||
.respond([DEFAULT_ACCOUNT]);
|
||||
|
||||
$httpBackend.expect('PUT', apiRoutes.accounts + '560aa0e79633cd7c1495ff21')
|
||||
.respond(200, {
|
||||
"name": "test updated",
|
||||
"reference": "1234567890",
|
||||
"user_id": "55b78934d2a706265ea28e9c",
|
||||
"_id": "560aa0e79633cd7c1495ff21"
|
||||
});
|
||||
|
||||
|
||||
var accountsController = createController();
|
||||
accountsController.edit({ name:"test updated"}, DEFAULT_ACCOUNT);
|
||||
$httpBackend.flush();
|
||||
$timeout.flush();
|
||||
|
||||
accountsController.accounts.should.be.instanceof(Array).and.have.lengthOf(1);
|
||||
var account = accountsController.accounts[0];
|
||||
account.name.should.be.equal('test updated');
|
||||
}));
|
||||
|
||||
it('should fail to edit unknown account', inject(function($controller, $httpBackend) {
|
||||
$httpBackend.expect('GET', apiRoutes.accounts)
|
||||
.respond([DEFAULT_ACCOUNT]);
|
||||
|
||||
$httpBackend.expect('PUT', apiRoutes.accounts + 'fake_id')
|
||||
.respond(404);
|
||||
|
||||
|
||||
var accountsController = createController();
|
||||
accountsController.edit({name:"test updated"}, {_id: 'fake_id'});
|
||||
$httpBackend.flush();
|
||||
$timeout.flush();
|
||||
|
||||
accountsController.accounts.should.be.instanceof(Array).and.have.lengthOf(1);
|
||||
var account = accountsController.accounts[0];
|
||||
account.name.should.be.equal('test');
|
||||
}));
|
||||
});
|
||||
|
||||
});
|
||||
@@ -78,7 +78,7 @@ describe('LoginController', function() {
|
||||
loginController.login();
|
||||
$timeout.flush();
|
||||
|
||||
$location.path().should.be.equal('/');
|
||||
$location.path().should.be.equal('/accounts');
|
||||
}));
|
||||
|
||||
it('should fail to log', inject(function($controller, $location) {
|
||||
|
||||
@@ -97,7 +97,7 @@ describe('RegisterController', function() {
|
||||
$httpBackend.flush();
|
||||
$timeout.flush();
|
||||
|
||||
$location.path().should.be.equal('/');
|
||||
$location.path().should.be.equal('/accounts');
|
||||
}));
|
||||
|
||||
it('should fail to register on bad parameter', inject(function($controller, $httpBackend, $location) {
|
||||
|
||||
Reference in New Issue
Block a user