Skip to content

Commit 4bf4100

Browse files
author
Ben Demboski
committed
Update to ember-cli 2.16.2
Mainly to get an updated babel so we don't force a regenerator runtime on apps consuming this addon.
1 parent ae92289 commit 4bf4100

25 files changed

+6081
-164
lines changed

.eslintrc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module.exports = {
22
root: true,
33
parserOptions: {
4-
ecmaVersion: 6,
4+
ecmaVersion: 2017,
55
sourceType: 'module'
66
},
77
extends: 'eslint:recommended',

.gitignore

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# See http://help.github.com/ignore-files/ for more about ignoring files.
1+
# See https://help.github.com/ignore-files/ for more about ignoring files.
22

33
# compiled output
44
/dist
@@ -14,6 +14,10 @@
1414
/coverage/*
1515
/libpeerconnection.log
1616
npm-debug.log*
17+
yarn-error.log
1718
testem.log
1819

19-
/.idea
20+
# ember-try
21+
.node_modules.ember-try/
22+
bower.json.ember-try
23+
package.json.ember-try

.npmignore

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
.editorconfig
99
.ember-cli
1010
.gitignore
11+
.eslintrc.js
1112
.watchmanconfig
1213
.travis.yml
1314
bower.json

.travis.yml

+32-10
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,46 @@
11
---
22
language: node_js
33
node_js:
4+
# we recommend testing addons with the same minimum supported node version as Ember CLI
5+
# so that your addon works for all apps
46
- "4"
57

68
sudo: false
9+
dist: trusty
10+
11+
addons:
12+
chrome: stable
713

814
cache:
9-
directories:
10-
- node_modules
15+
yarn: true
16+
17+
env:
18+
global:
19+
# See https://git.io/vdao3 for details.
20+
- JOBS=1
21+
matrix:
22+
# we recommend new addons test the current and previous LTS
23+
# as well as latest stable release (bonus points to beta/canary)
24+
- EMBER_TRY_SCENARIO=ember-lts-2.8
25+
- EMBER_TRY_SCENARIO=ember-lts-2.12
26+
- EMBER_TRY_SCENARIO=ember-release
27+
- EMBER_TRY_SCENARIO=ember-beta
28+
- EMBER_TRY_SCENARIO=ember-canary
29+
- EMBER_TRY_SCENARIO=ember-default
30+
31+
matrix:
32+
fast_finish: true
33+
allow_failures:
34+
- env: EMBER_TRY_SCENARIO=ember-canary
1135

1236
before_install:
13-
- npm config set spin false
14-
- npm install -g bower
15-
- bower --version
16-
- npm install phantomjs-prebuilt
17-
- node_modules/phantomjs-prebuilt/bin/phantomjs --version
37+
- curl -o- -L https://yarnpkg.com/install.sh | bash
38+
- export PATH=$HOME/.yarn/bin:$PATH
1839

1940
install:
20-
- npm install
21-
- bower install
41+
- yarn install --no-lockfile --non-interactive
2242

2343
script:
24-
- ember try:each
44+
# Usually, it's ok to finish the test scenario without reverting
45+
# to the addon's original dependency state, skipping "cleanup".
46+
- node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO --skip-cleanup

README.md

+12-24
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,11 @@ use it to wrap any tasks that you want to block asynchronous test helpers:
2828

2929
```javascript
3030
// components/my-component.js
31-
import Ember from 'ember';
31+
import Component from '@ember/component';
3232
import { task } from 'ember-concurrency';
3333
import withTestWaiter from 'ember-concurrency-test-waiter/with-test-waiter';
3434
import doSomethingAsync from '../utils/do-something-async';
3535

36-
const { Component } = Ember;
37-
3836
export default Component.extend({
3937
myTask: withTestWaiter(task(function*() {
4038
return yield doSomethingAsync();
@@ -56,12 +54,10 @@ defineModifier();
5654

5755
```javascript
5856
// components/my-component.js
59-
import Ember from 'ember';
57+
import Component from '@ember/component';
6058
import { task } from 'ember-concurrency';
6159
import doSomethingAsync from '../utils/do-something-async';
6260

63-
const { Component } = Ember;
64-
6561
export default Component.extend({
6662
myTask: task(function*() {
6763
return yield doSomethingAsync();
@@ -89,25 +85,21 @@ defineModifier();
8985
```javascript
9086
// app/components/image-size.js
9187

92-
import Ember from 'ember';
88+
import $ from 'jquery';
89+
import Component from '@ember/component';
90+
import { Promise } from 'rsvp';
91+
import { run } from '@ember/runloop';
9392
import { task } from 'ember-concurrency';
9493

95-
const {
96-
$,
97-
Component,
98-
RSVP: { Promise },
99-
run
100-
} = Ember;
101-
10294
export default Component.extend({
10395
src: null,
10496
dimensions: null,
105-
97+
10698
init() {
10799
this._super(...arguments);
108100
this.get('computeDimensions').perform(this.get('src'));
109101
},
110-
102+
111103
computeDimensions: task(function*(src) {
112104
let img = yield new Promise((resolve, reject) => {
113105
let $img = $('<img>');
@@ -134,25 +126,21 @@ export default Component.extend({
134126
```javascript
135127
// tests/integration/components/image-size.js
136128

137-
import Ember from 'ember';
129+
import { A } from '@ember/array';
130+
import { run } from '@ember/runloop';
138131
import { moduleForComponent, test } from 'ember-qunit';
139132
import hbs from 'htmlbars-inline-precompile';
140133
import wait from 'ember-test-helpers/wait';
141134

142-
const {
143-
A,
144-
run
145-
} = Ember;
146-
147135
moduleForComponent('image-size', 'Integration | Component | image-size', {
148136
integration: true
149137
});
150138

151139
test('it works', function(assert) {
152140
assert.expect(2);
153-
141+
154142
this.render(hbs`{{image-size src="assets/test-image.jpg"}}`);
155-
143+
156144
assert.equal(this.$().text().trim(), "loading...");
157145
return wait().then(() => { // yay!
158146
assert.equal(this.$().text().trim(), "200x350");

addon/with-test-waiter.js

+18-22
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,30 @@
1+
import { assert } from '@ember/debug';
2+
import { registerWaiter } from '@ember/test';
13
import Ember from 'ember';
24

3-
const {
4-
Test,
5-
assert,
6-
testing
7-
} = Ember;
8-
5+
let registered = false;
96
let taskRunCounter = 0;
107

11-
if (testing) {
12-
Test.registerWaiter(() => taskRunCounter === 0);
13-
}
14-
158
// A function that, given a task property, will register it with the test
169
// waiter so async test helpers will block anytime a task instance spawned
1710
// from that property is running.
1811
export default function withTestWaiter(taskProperty) {
19-
if (testing) {
20-
assert("withTestWaiter() will only work with ember-concurrency >=0.7.19 -- please upgrade", taskProperty.taskFn);
12+
assert("withTestWaiter() will only work with ember-concurrency >=0.7.19 -- please upgrade", taskProperty.taskFn);
13+
14+
let originalTaskFn = taskProperty.taskFn;
2115

22-
let originalTaskFn = taskProperty.taskFn;
16+
taskProperty.taskFn = function *(...args) {
17+
if (Ember.testing && !registered) {
18+
registerWaiter(() => taskRunCounter === 0);
19+
registered = true;
20+
}
2321

24-
taskProperty.taskFn = function *(...args) {
25-
taskRunCounter += 1;
26-
try {
27-
return yield * originalTaskFn.apply(this, args);
28-
} finally {
29-
taskRunCounter -= 1;
30-
}
31-
};
32-
}
22+
taskRunCounter += 1;
23+
try {
24+
return yield * originalTaskFn.apply(this, args);
25+
} finally {
26+
taskRunCounter -= 1;
27+
}
28+
};
3329
return taskProperty;
3430
}

bower.json

-7
This file was deleted.

config/ember-try.js

+72-7
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,83 @@
11
/* eslint-env node */
22
module.exports = {
3-
useVersionCompatibility: true,
4-
3+
useYarn: true,
54
scenarios: [
65
{
7-
name: 'ember-alpha',
8-
allowedToFail: true,
6+
name: 'ember-lts-2.8',
97
bower: {
10-
'dependencies': {
11-
'ember': 'alpha'
8+
dependencies: {
9+
'ember': 'components/ember#lts-2-8'
1210
},
1311
resolutions: {
14-
'ember': 'alpha'
12+
'ember': 'lts-2-8'
1513
}
14+
},
15+
npm: {
16+
devDependencies: {
17+
'ember-source': null
18+
}
19+
}
20+
},
21+
{
22+
name: 'ember-lts-2.12',
23+
npm: {
24+
devDependencies: {
25+
'ember-source': '~2.12.0'
26+
}
27+
}
28+
},
29+
{
30+
name: 'ember-release',
31+
bower: {
32+
dependencies: {
33+
'ember': 'components/ember#release'
34+
},
35+
resolutions: {
36+
'ember': 'release'
37+
}
38+
},
39+
npm: {
40+
devDependencies: {
41+
'ember-source': null
42+
}
43+
}
44+
},
45+
{
46+
name: 'ember-beta',
47+
bower: {
48+
dependencies: {
49+
'ember': 'components/ember#beta'
50+
},
51+
resolutions: {
52+
'ember': 'beta'
53+
}
54+
},
55+
npm: {
56+
devDependencies: {
57+
'ember-source': null
58+
}
59+
}
60+
},
61+
{
62+
name: 'ember-canary',
63+
bower: {
64+
dependencies: {
65+
'ember': 'components/ember#canary'
66+
},
67+
resolutions: {
68+
'ember': 'canary'
69+
}
70+
},
71+
npm: {
72+
devDependencies: {
73+
'ember-source': null
74+
}
75+
}
76+
},
77+
{
78+
name: 'ember-default',
79+
npm: {
80+
devDependencies: {}
1681
}
1782
}
1883
]

ember-cli-build.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
/* eslint-env node */
2-
/* global require, module */
3-
var EmberAddon = require('ember-cli/lib/broccoli/ember-addon');
2+
'use strict';
3+
4+
const EmberAddon = require('ember-cli/lib/broccoli/ember-addon');
45

56
module.exports = function(defaults) {
6-
var app = new EmberAddon(defaults, {
7+
let app = new EmberAddon(defaults, {
78
// Add options here
89
});
910

0 commit comments

Comments
 (0)