ENH: Setting up esa, base template (#13)

Fixes #4
This commit is contained in:
Matthew Ryan Dillon 2017-08-30 06:06:31 -07:00 committed by GitHub
parent 75b75358cd
commit 253aac1fd4
27 changed files with 187 additions and 73 deletions

View file

@ -1,5 +1,6 @@
{
"predef": [
"setBreakpoint",
"document",
"window",
"location",

View file

@ -0,0 +1,60 @@
import Ember from 'ember';
import MediaService from 'ember-responsive/media';
const {
getOwner
} = Ember;
const { classify } = Ember.String;
MediaService.reopen({
// Change this if you want a different default breakpoint in tests.
_defaultBreakpoint: 'desktop',
_breakpointArr: Ember.computed('breakpoints', function() {
return Object.keys(this.get('breakpoints')) || Ember.A([]);
}),
_forceSetBreakpoint(breakpoint) {
let found = false;
const props = {};
this.get('_breakpointArr').forEach(function(bp) {
const val = bp === breakpoint;
if (val) {
found = true;
}
props[`is${classify(bp)}`] = val;
});
if (found) {
this.setProperties(props);
} else {
throw new Error(
`You tried to set the breakpoint to ${breakpoint}, which is not in your app/breakpoint.js file.`
);
}
},
match() {}, // do not set up listeners in test
init() {
this._super(...arguments);
this._forceSetBreakpoint(this.get('_defaultBreakpoint'));
}
});
export default Ember.Test.registerAsyncHelper('setBreakpoint', function(app, breakpoint) {
// this should use getOwner once that's supported
const mediaService = app.__deprecatedInstance__.lookup('service:media');
mediaService._forceSetBreakpoint(breakpoint);
});
export function setBreakpointForIntegrationTest(container, breakpoint) {
const mediaService = getOwner(container).lookup('service:media');
mediaService._forceSetBreakpoint(breakpoint);
container.set('media', mediaService);
return mediaService;
}

View file

@ -1,4 +1,6 @@
import resolver from './helpers/resolver';
import './helpers/responsive';
import './helpers/flash-message';
import {
setResolver

View file

@ -1,12 +0,0 @@
import { moduleFor, test } from 'ember-qunit';
moduleFor('controller:login', 'Unit | Controller | login', {
// Specify the other units that are required for this test.
// needs: ['controller:foo']
});
// Replace this with your real tests.
test('it exists', function(assert) {
let controller = this.subject();
assert.ok(controller);
});

View file

@ -1,11 +0,0 @@
import { moduleFor, test } from 'ember-qunit';
moduleFor('route:application', 'Unit | Route | application', {
// Specify the other units that are required for this test.
// needs: ['controller:foo']
});
test('it exists', function(assert) {
let route = this.subject();
assert.ok(route);
});

View file

@ -1,11 +0,0 @@
import { moduleFor, test } from 'ember-qunit';
moduleFor('route:index', 'Unit | Route | index', {
// Specify the other units that are required for this test.
// needs: ['controller:foo']
});
test('it exists', function(assert) {
let route = this.subject();
assert.ok(route);
});

View file

@ -1,11 +0,0 @@
import { moduleFor, test } from 'ember-qunit';
moduleFor('route:login', 'Unit | Route | login', {
// Specify the other units that are required for this test.
// needs: ['controller:foo']
});
test('it exists', function(assert) {
let route = this.subject();
assert.ok(route);
});