UNPKG

@spalger/kibana

Version:

Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic

108 lines (80 loc) 2.51 kB
describe('Private module loader', function () { var Private; var expect = require('expect.js'); var ngMock = require('ngMock'); beforeEach(ngMock.module('kibana')); beforeEach(ngMock.inject(function ($injector) { Private = $injector.get('Private'); })); it('accepts a provider that will be called to init a module', function () { var football = {}; function Provider() { return football; } var instance = Private(Provider); expect(instance).to.be(football); }); it('injects angular dependencies into the Provider', function () { function Provider(Private) { return Private; } var instance = Private(Provider); expect(instance).to.be(Private); }); it('detects circular dependencies', function () { expect(function () { function Provider1() { var p3 = Private(Provider3); } function Provider2() { var p3 = Private(Provider3); } function Provider3() { var p1 = Private(Provider3); } var p1 = Private(Provider1); }).to.throwException(/circular/i); }); it('allways provides the same instance form the Provider', function () { function Provider() { return {}; } expect(Private(Provider)).to.be(Private(Provider)); }); describe('#stub', function () { it('accepts a replacement instance for a Provider', function () { var replaced = {}; var replacement = {}; function Provider() { return replaced; } var instance = Private(Provider); expect(instance).to.be(replaced); Private.stub(Provider, replacement); var instance2 = Private(Provider); expect(instance2).to.be(replacement); Private.stub(Provider, replaced); var instance3 = Private(Provider); expect(instance3).to.be(replaced); }); }); describe('#swap', function () { it('accepts a new Provider that should replace an existing Provider', function () { function Provider1() { return {}; } function Provider2() { return {}; } var instance1 = Private(Provider1); expect(instance1).to.be.an('object'); Private.swap(Provider1, Provider2); var instance2 = Private(Provider1); expect(instance2).to.be.an('object'); expect(instance2).to.not.be(instance1); Private.swap(Provider1, Provider1); var instance3 = Private(Provider1); expect(instance3).to.be(instance1); }); }); });