Ghost/ghost/admin/tests/integration/services/lazy-loader-test.js
Kevin Ansfield a85f5fae35 Switch to eslint-plugin-ghost extending plugin:ghost/ember
no issue
- fix lint errors in lib/gh-koenig
- fix ghost:base eslint errors
- update ember plugin refs, remove ember-suave plugin refs
- remove old jshint refs
- add `lint:js` script
- switch to `eslint-plugin-ghost` extending `plugin:ghost/ember`
2018-01-12 12:17:56 +00:00

59 lines
1.8 KiB
JavaScript

import $ from 'jquery';
import Pretender from 'pretender';
import {describe, it} from 'mocha';
import {expect} from 'chai';
import {setupTest} from 'ember-mocha';
describe('Integration: Service: lazy-loader', function () {
setupTest('service:lazy-loader', {integration: true});
let server;
let ghostPaths = {
adminRoot: '/assets/'
};
beforeEach(function () {
server = new Pretender();
});
afterEach(function () {
server.shutdown();
});
it('loads a script correctly and only once', function () {
let subject = this.subject({
ghostPaths,
scriptPromises: {},
testing: false
});
server.get('/assets/test.js', function ({requestHeaders}) {
expect(requestHeaders.Accept).to.match(/text\/javascript/);
return [200, {'Content-Type': 'text/javascript'}, 'window.testLoadScript = \'testvalue\''];
});
return subject.loadScript('test-script', 'test.js').then(() => {
expect(subject.get('scriptPromises.test-script')).to.exist;
expect(window.testLoadScript).to.equal('testvalue');
expect(server.handlers[0].numberOfCalls).to.equal(1);
return subject.loadScript('test-script', 'test.js');
}).then(() => {
expect(server.handlers[0].numberOfCalls).to.equal(1);
});
});
it('loads styles correctly', function () {
let subject = this.subject({
ghostPaths,
testing: false
});
return subject.loadStyle('testing', 'style.css').catch(() => {
// we add a catch handler here because `/assets/style.css` doesn't exist
expect($('#testing-styles').length).to.equal(1);
expect($('#testing-styles').attr('href')).to.equal('/assets/style.css');
});
});
});