repo for angularjs testing training
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

82 lines
2.5 KiB

'use strict';
/*
describe('Controller - Books Controller', function() {
var booksController;
var booksServiceMock;
var $rootScope;
var $state;
var $q;
var $timeout;
var deferredListResponse;
var mockBookList;
beforeEach(function() {
module('ui.router.state');
module('book-inventory-app.books');
booksServiceMock = jasmine.createSpyObj('BooksService', ['getBooks', 'deleteBook']);
mockBookList = [{ id: '1'}, { id: '2' }, { id: '3'}];
inject(function($controller, _$rootScope_, _$state_, _$q_, _$timeout_) {
$rootScope = _$rootScope_;
$state = _$state_;
$q = _$q_;
$timeout = _$timeout_;
deferredListResponse = $q.defer();
booksServiceMock.getBooks.and.returnValue(deferredListResponse.promise);
deferredListResponse.resolve(mockBookList);
booksController = $controller('BooksController', {
$state: $state,
BooksService: booksServiceMock
});
spyOn($state, 'go');
$rootScope.$apply();
});
});
it('should load a list of books on init', function() {
expect(booksController.booksList).toBeDefined();
expect(booksController.booksList).toBe(mockBookList);
expect(booksController.booksList.length).toBe(3);
})
it('should select a book for the details view', function() {
expect(booksController.selectedBook).toBeUndefined();
booksController.selectBook(mockBookList[0]);
expect(booksController.selectedBook).toBe(mockBookList[0]);
booksController.selectBook(mockBookList[2]);
expect(booksController.selectedBook).toBe(mockBookList[2]);
})
it('should call the service to delete a book', function() {
var deferred = $q.defer();
booksServiceMock.deleteBook.and.returnValue(deferred.promise);
booksController.deleteBook('2');
expect(booksServiceMock.deleteBook).toHaveBeenCalledWith('2');
})
it('should reload the book list after successfully deleting a book', function() {
var deferred = $q.defer();
booksServiceMock.deleteBook.and.returnValue(deferred.promise);
booksServiceMock.getBooks.calls.reset();
expect(booksServiceMock.getBooks).not.toHaveBeenCalled();
booksController.deleteBook('1');
deferred.resolve(true);
$rootScope.$apply();
expect(booksServiceMock.getBooks).toHaveBeenCalled();
})
});
*/