angular.js/example/personalLog/test/personalLogSpec.js
Misko Hevery d0270d9256 Remove many eager-publish services, lazy polling
- Browser now starts the poller on first call to addPollFn()

- Many services ($location, $cookies, $router) are no longer eager-publish. The result is that
  unless someone needs the $cookies, they will not cause the Browser to start polling for them.
2011-01-04 16:40:40 -08:00

124 lines
No EOL
3.1 KiB
JavaScript

describe('example.personalLog.LogCtrl', function() {
var logCtrl;
function createNotesCtrl() {
var scope = angular.scope();
var inject = scope.$inject;
scope.$cookies = inject('$cookies');
return scope.$new(example.personalLog.LogCtrl);
}
beforeEach(function() {
logCtrl = createNotesCtrl();
});
it('should initialize notes with an empty array', function() {
expect(logCtrl.logs).toEqual([]);
});
describe('addLog', function() {
beforeEach(function() {
expect(logCtrl.logs).toEqual([]);
});
it('should add newMsg to logs as a log entry', function() {
logCtrl.newMsg = 'first log message';
logCtrl.addLog();
expect(logCtrl.logs.length).toBe(1);
expect(logCtrl.logs[0].msg).toBe('first log message');
//one more msg, this time passed in as param
logCtrl.addLog('second log message');
expect(logCtrl.logs.length).toBe(2);
expect(logCtrl.logs[0].msg).toBe('first log message');
expect(logCtrl.logs[1].msg).toBe('second log message');
});
it('should clear newMsg when log entry is persisted', function() {
logCtrl.addLog('first log message');
expect(logCtrl.newMsg).toBe('');
});
it('should store logs in the logs cookie', function() {
expect(logCtrl.$cookies.logs).not.toBeDefined();
logCtrl.addLog('first log message');
expect(logCtrl.$cookies.logs).toBeTruthy();
});
it('should do nothing if newMsg is empty', function() {
logCtrl.addLog('');
expect(logCtrl.logs.length).toBe(0);
});
});
describe('rmLog', function() {
beforeEach(function() {
logCtrl.addLog('message1');
logCtrl.addLog('message2');
logCtrl.addLog('message3');
logCtrl.addLog('message4');
expect(logCtrl.logs.length).toBe(4);
});
it('should delete a message identified by index', function() {
logCtrl.rmLog(logCtrl.logs[1]);
expect(logCtrl.logs.length).toBe(3);
logCtrl.rmLog(logCtrl.logs[2]);
expect(logCtrl.logs.length).toBe(2);
expect(logCtrl.logs[0].msg).toBe('message1');
expect(logCtrl.logs[1].msg).toBe('message3');
});
it('should update cookies when a log is deleted', function() {
expect(logCtrl.$cookies.logs).toMatch(/\[\{.*?\}(,\{.*?\}){3}\]/);
logCtrl.rmLog(logCtrl.logs[1]);
expect(logCtrl.$cookies.logs).toMatch(/\[\{.*?\}(,\{.*?\}){2}\]/);
logCtrl.rmLog(logCtrl.logs[0]);
logCtrl.rmLog(logCtrl.logs[0]);
logCtrl.rmLog(logCtrl.logs[0]);
expect(logCtrl.$cookies.logs).toMatch(/\[\]/);
});
});
describe('rmLogs', function() {
beforeEach(function() {
logCtrl.addLog('message1');
logCtrl.addLog('message2');
logCtrl.addLog('message3');
logCtrl.addLog('message4');
expect(logCtrl.logs.length).toBe(4);
});
it('should remove all logs', function() {
logCtrl.rmLogs();
expect(logCtrl.logs).toEqual([]);
});
it('should remove logs cookie', function() {
expect(logCtrl.$cookies.logs).toBeTruthy();
logCtrl.rmLogs();
expect(logCtrl.$cookies.logs).not.toBeDefined();
});
});
});