/*globals describe before beforeEach afterEach it assert sinon ckan jQuery */ describe('ckan.module.StatsNavModule()', function () { var StatsNavModule = ckan.module.registry['stats-nav']; beforeEach(function () { this.el = document.createElement('div'); this.sandbox = ckan.sandbox(); this.sandbox.body = this.fixture; this.sandbox.location = { href: '', hash: '' }; this.module = new StatsNavModule(this.el, {}, this.sandbox); jQuery.fn.tab = sinon.stub(); }); afterEach(function () { this.module.teardown(); delete jQuery.fn.tab; }); describe('.initialize()', function () { it('should listen for shown events and update the location.hash', function () { var anchor = jQuery('').attr('href', '#stats-test')[0]; this.module.initialize(); this.module.el.trigger({type: 'shown', target: anchor}); assert.equal(this.sandbox.location.hash, 'test'); }); it('should select the tab from the location hash on init', function () { var anchor = jQuery('').attr('href', '#stats-test').appendTo(this.el); this.sandbox.location.hash = '#test'; this.module.initialize(); assert.called(jQuery.fn.tab); assert.calledWith(jQuery.fn.tab, 'show'); }); }); });