describe('provider: topicLoggerProvider', function () { 'use strict'; // Provider instance var tlp; // Instanciates the module beforeEach(function () { module('myitsmApp'); }); // Here we don't do any configuration to our provider describe('Default Configuration', function () { beforeEach(function () { inject(['topicLoggerProvider', function (topicLoggerProvider) { tlp = topicLoggerProvider; }]); }); it('topicLoggerProvider should be defined', function () { expect(tlp).toBeDefined(); }); it('topicLoggerProvider should have zero defauld topics', function () { expect(tlp.getTopics().length).toEqual(0); }); }); describe('Configuration of topics. Adding Topics', function () { beforeEach(function () { module(['topicLoggerProvider', function (topicLoggerProvider) { topicLoggerProvider.addTopic('expressions'); }]); inject(['topicLoggerProvider', function (topicLoggerProvider) { tlp = topicLoggerProvider; }]); }); it('topicLoggerProvider should have 1 topics', function () { expect(tlp.getTopics().length).toEqual(1); expect(tlp.getTopics()[0]).toEqual('expressions'); }); it('topicLoggerProvider, adding a topic that alerady exist, should not change topics list', function () { tlp.addTopic('expressions'); expect(tlp.getTopics().length).toEqual(1); expect(tlp.getTopics()[0]).toEqual('expressions'); }); }); describe('Configuration of topics. Removing Topics', function () { beforeEach(function () { module(['topicLoggerProvider', function (topicLoggerProvider) { topicLoggerProvider.addTopic('expressions'); }]); inject(['topicLoggerProvider', function (topicLoggerProvider) { tlp = topicLoggerProvider; }]); }); it('topicLoggerProvider should have 0 topics after topic remove', function () { tlp.removeTopic('expressions'); expect(tlp.getTopics().length).toEqual(0); }); it('topicLoggerProvider, removing of unexisted topic should not break code', function () { tlp.removeTopic('expressions'); tlp.removeTopic('some-topic-not-in-list'); expect(tlp.getTopics().length).toEqual(0); }); }); describe('Includes topic', function () { beforeEach(function () { module(['topicLoggerProvider', function (topicLoggerProvider) { topicLoggerProvider.addTopic('expressions'); }]); inject(['topicLoggerProvider', function (topicLoggerProvider) { tlp = topicLoggerProvider; }]); }); it('topicLoggerProvider return true/false for topic in/not in topics list', function () { expect(tlp.includesTopic('expressions')).toEqual(true); expect(tlp.includesTopic('some-topic-not-in-list')).toEqual(false); }); }); });