AutorÃa | Ultima modificación | Ver Log |
(function() {if (typeof process === 'object') {require('mocha-jsdom')();}var root = this;var assert = (root.chai || require('chai')).assert;describe('NProgress', function() {var $, NProgress;beforeEach(function() {$ = root.jQuery || require('jquery');NProgress = root.NProgress || require('../nprogress');this.settings = $.extend({}, NProgress.settings);});afterEach(function() {$("#nprogress").remove();$('html').attr('class', '');NProgress.status = null;// Restore settings$.extend(NProgress.settings, this.settings);});describe('.set()', function() {it('.set(0) must render', function(done) {NProgress.set(0);assert.equal($("#nprogress").length, 1);assert.equal($("#nprogress .bar").length, 1);assert.equal($("#nprogress .peg").length, 1);assert.equal($("#nprogress .spinner").length, 1);done();});it('.set(1) should appear and disappear', function(done) {NProgress.configure({ speed: 10 });NProgress.set(0).set(1);assert.equal($("#nprogress").length, 1);setTimeout(function() {assert.equal($("#nprogress").length, 0);done();}, 70);});it('must respect minimum', function() {NProgress.set(0);assert.equal(NProgress.status, NProgress.settings.minimum);});it('must clamp to minimum', function() {NProgress.set(-100);assert.equal(NProgress.status, NProgress.settings.minimum);});it('must clamp to maximum', function() {NProgress.set(456);assert.equal(NProgress.status, null);});});// ----describe('.start()', function() {it('must render', function(done) {NProgress.start();;assert.equal($("#nprogress").length, 1);done();});it('must respect minimum', function() {NProgress.start();;assert.equal(NProgress.status, NProgress.settings.minimum);});it('must be attached to specified parent', function() {var test = $('<div>', {id: 'test'}).appendTo('body');NProgress.configure({parent: '#test'});NProgress.start();;assert.isTrue($("#nprogress").parent().is(test));assert.isTrue($(NProgress.settings.parent).hasClass("nprogress-custom-parent"));});});// ----describe('.done()', function() {it('must not render without start', function(done) {NProgress.done();assert.equal($("#nprogress").length, 0);done();});it('.done(true) must render', function(done) {NProgress.done(true);assert.equal($("#nprogress").length, 1);done();});});// ----describe('.remove()', function() {it('should be removed from the parent', function() {NProgress.set(1);NProgress.remove();var parent = $(NProgress.settings.parent);assert.isFalse(parent.hasClass('nprogress-custom-parent'));assert.equal(parent.find('#nprogress').length, 0);});});// ----describe('.inc()', function() {it('should render', function() {NProgress.inc();assert.equal($("#nprogress").length, 1);});it('should start with minimum', function() {NProgress.inc();assert.equal(NProgress.status, NProgress.settings.minimum);});it('should increment', function() {NProgress.start();;var start = NProgress.status;NProgress.inc();assert.operator(NProgress.status, '>', start);});it('should never reach 1.0', function() {for (var i=0; i<100; ++i) { NProgress.inc(); }assert.operator(NProgress.status, '<', 1.0);});});// -----describe('.configure()', function() {it('should work', function() {NProgress.configure({ minimum: 0.5 });assert.equal(NProgress.settings.minimum, 0.5);});});// ----describe('.configure(showSpinner)', function() {it('should render spinner by default', function() {NProgress.start();;assert.equal($("#nprogress .spinner").length, 1);});it('should be true by default', function() {assert.equal(NProgress.settings.showSpinner, true);});it('should hide (on false)', function() {NProgress.configure({ showSpinner: false });NProgress.start();;assert.equal($("#nprogress .spinner").length, 0);});});});})();