Skip to content

Commit a9b1a37

Browse files
authored
Merge pull request #1472 from mydea/fn/test-helper-types
Update types & ember to 4.x
2 parents c7af467 + ceb68fb commit a9b1a37

File tree

16 files changed

+788
-563
lines changed

16 files changed

+788
-563
lines changed

.eslintrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module.exports = {
77
sourceType: 'module',
88
},
99
plugins: ['ember', '@typescript-eslint', 'prettier'],
10-
extends: ['eslint:recommended', 'plugin:ember/recommended', 'prettier/@typescript-eslint'],
10+
extends: ['eslint:recommended', 'plugin:ember/recommended', 'plugin:prettier/recommended'],
1111
env: {
1212
browser: true,
1313
},

.github/workflows/ci.yml

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,7 @@ jobs:
2626
steps:
2727
- name: Checkout Code
2828
uses: actions/checkout@v2
29-
- name: Install Node
30-
uses: actions/setup-node@v1
31-
with:
32-
node-version: '^10'
29+
- uses: volta-cli/action@v1
3330
# https://github.com/expo/expo-github-action/issues/20#issuecomment-541676895
3431
- name: Raise Watched File Limit
3532
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
@@ -53,7 +50,7 @@ jobs:
5350
- name: Install Node
5451
uses: actions/setup-node@v1
5552
with:
56-
node-version: '^10'
53+
node-version: '^12'
5754
- name: Install Dependencies
5855
run: yarn install --frozen-lockfile
5956
- name: Prepare CI Environment
@@ -70,10 +67,7 @@ jobs:
7067
steps:
7168
- name: Checkout Code
7269
uses: actions/checkout@v2
73-
- name: Install Node
74-
uses: actions/setup-node@v1
75-
with:
76-
node-version: '^10'
70+
- uses: volta-cli/action@v1
7771
- name: Raise Watched File Limit
7872
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
7973
- name: Install Dependencies
@@ -100,10 +94,7 @@ jobs:
10094
steps:
10195
- name: Checkout Code
10296
uses: actions/checkout@v2
103-
- name: Install Node
104-
uses: actions/setup-node@v1
105-
with:
106-
node-version: '^10'
97+
- uses: volta-cli/action@v1
10798
- name: Raise Watched File Limit
10899
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
109100
- name: Install Dependencies

docs/ember/testing.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ This is a decent test, and TypeScript actually makes the experience of writing c
260260
To inform TypeScript about this, we need to tell it that the type of `this` in each test assertion includes the `user` property, of type `User`. We’ll start by importing the `TestContext` defined by Ember’s test helpers, and extending it:
261261

262262
```typescript
263-
import { TestContext } from 'ember-test-helpers';
263+
import { TestContext } from '@ember/test-helpers';
264264

265265
import User from 'app/types/user';
266266

@@ -282,9 +282,8 @@ Putting it all together, this is what our updated test definition would look lik
282282
```typescript
283283
import { module, test } from 'qunit';
284284
import { setupRenderingTest } from 'ember-qunit';
285-
import { render } from '@ember/test-helpers';
285+
import { render, TestContext } from '@ember/test-helpers';
286286
import hbs from 'htmlbars-inline-precompile';
287-
import { TestContext } from 'ember-test-helpers';
288287

289288
import User from 'app/types/user';
290289

known-typings.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ For addons which do not have types shipped with the addon directly, you may be f
2525
* `@types/ember-data`
2626
* `@types/ember-mocha`
2727
* `@types/ember-qunit`
28-
* `@types/ember-test-helpers`
29-
* `@types/ember-testing-helpers`
28+
* `@types/ember__test-helpers`
3029
* `@types/ember`
3130
* `@types/rsvp`

package.json

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -51,29 +51,28 @@
5151
},
5252
"devDependencies": {
5353
"@ember/optional-features": "2.0.0",
54-
"@glimmer/component": "^1.0.0-beta.3",
55-
"@glimmer/tracking": "^1.0.0-beta.3",
54+
"@glimmer/component": "^1.0.4",
55+
"@glimmer/tracking": "^1.0.4",
5656
"@typed-ember/renovate-config": "1.2.1",
57-
"@types/capture-console": "1.0.0",
58-
"@types/chai": "4.2.14",
59-
"@types/chai-as-promised": "7.1.3",
60-
"@types/console-ui": "2.2.3",
57+
"@types/capture-console": "1.0.1",
58+
"@types/chai": "4.3.0",
59+
"@types/chai-as-promised": "7.1.4",
60+
"@types/console-ui": "2.2.5",
6161
"@types/core-object": "3.0.1",
62-
"@types/debug": "4.1.5",
63-
"@types/ember": "3.16.2",
64-
"@types/ember-qunit": "3.4.13",
65-
"@types/ember__object": "^3.1.1",
66-
"@types/esprima": "4.0.2",
67-
"@types/express": "4.17.7",
68-
"@types/fs-extra": "9.0.4",
69-
"@types/got": "9.6.11",
70-
"@types/mocha": "8.0.4",
62+
"@types/debug": "4.1.7",
63+
"@types/ember": "4.0.0",
64+
"@types/ember-qunit": "5.0.0",
65+
"@types/esprima": "4.0.3",
66+
"@types/express": "4.17.13",
67+
"@types/fs-extra": "9.0.13",
68+
"@types/got": "9.6.12",
69+
"@types/mocha": "9.1.0",
7170
"@types/node": "14.14.8",
72-
"@types/qunit": "2.11.1",
73-
"@types/resolve": "1.17.1",
74-
"@types/semver": "7.3.4",
75-
"@typescript-eslint/eslint-plugin": "4.8.1",
76-
"@typescript-eslint/parser": "4.8.1",
71+
"@types/qunit": "2.11.3",
72+
"@types/resolve": "1.20.1",
73+
"@types/semver": "7.3.9",
74+
"@typescript-eslint/eslint-plugin": "5.10.1",
75+
"@typescript-eslint/parser": "5.10.1",
7776
"broccoli-asset-rev": "3.0.0",
7877
"broccoli-node-api": "1.7.0",
7978
"broccoli-plugin": "4.0.3",
@@ -98,11 +97,11 @@
9897
"ember-resolver": "8.0.2",
9998
"ember-source": "3.23.0",
10099
"ember-try": "1.4.0",
101-
"eslint": "7.13.0",
102-
"eslint-config-prettier": "6.15.0",
103-
"eslint-plugin-ember": "9.6.0",
100+
"eslint": "8.7.0",
101+
"eslint-config-prettier": "8.3.0",
102+
"eslint-plugin-ember": "10.5.8",
104103
"eslint-plugin-node": "11.1.0",
105-
"eslint-plugin-prettier": "3.1.4",
104+
"eslint-plugin-prettier": "4.0.0",
106105
"esprima": "4.0.1",
107106
"fixturify": "2.1.0",
108107
"got": "11.8.0",
@@ -111,21 +110,19 @@
111110
"in-repo-b": "link:tests/dummy/lib/in-repo-b",
112111
"loader.js": "4.7.0",
113112
"mocha": "8.2.1",
114-
"prettier": "2.1.2",
115-
"prettier-eslint": "11.0.0",
113+
"prettier": "2.5.1",
114+
"prettier-eslint": "13.0.0",
116115
"qunit-dom": "1.6.0",
117116
"rimraf": "3.0.2",
118117
"testdouble": "3.16.1",
119118
"ts-node": "9.0.0",
120-
"typescript": "4.0.5"
119+
"typescript": "4.5.5"
121120
},
122121
"resolutions": {
123-
"@types/ember": "3.16.2",
124-
"@types/ember__string": "3.16.1",
125122
"hawk": "7"
126123
},
127124
"engines": {
128-
"node": "10.* || >= 12.*"
125+
"node": ">= 12.*"
129126
},
130127
"ember-addon": {
131128
"configPath": "tests/dummy/config",
@@ -142,7 +139,7 @@
142139
"proseWrap": "never"
143140
},
144141
"volta": {
145-
"node": "10.23.0",
146-
"yarn": "1.22.10"
142+
"node": "12.22.9",
143+
"yarn": "1.22.17"
147144
}
148145
}

tests/dummy/app/app.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import Resolver from './resolver';
33
import loadInitializers from 'ember-load-initializers';
44
import config from './config/environment';
55

6-
const App = Application.extend({
7-
modulePrefix: config.modulePrefix,
8-
podModulePrefix: config.podModulePrefix,
9-
Resolver,
10-
});
6+
class App extends Application {
7+
modulePrefix = config.modulePrefix;
8+
podModulePrefix = config.podModulePrefix;
9+
Resolver = Resolver;
10+
}
1111

1212
loadInitializers(App, config.modulePrefix);
1313

Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div style="border: 2px solid black;width: 100%; background-color: azure; margin-top: 20px; padding: 0 0 20px 20px">
22
<p style="margin-top: 0px; border-bottom: chocolate 1px solid">js-importing-ts.hbs</p>
3-
{{poke}}
3+
{{this.poke}}
44
<p>Ts helper: {{typed-help}}</p>
55
<p>Js helper: {{js-help}}</p>
66
</div>
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
import Component from '@ember/component';
2-
import { equal } from '@ember/object/computed';
1+
import Component from '@glimmer/component';
32

43
import * as constants from '../lib/some-const';
54

6-
export default Component.extend({
7-
poke: equal('ha', constants.CHANGE),
8-
});
5+
export default class JsImportingTs extends Component {
6+
get poke() {
7+
return constants.CHANGE === 'ha';
8+
}
9+
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import Component from '@ember/component';
1+
import Component from '@glimmer/component';
22

3-
export default Component.extend({
4-
someValue: 'from component',
5-
});
3+
export default class TestOne extends Component {
4+
someValue = 'from component';
5+
}

tests/dummy/app/templates/components/ts-component.hbs renamed to tests/dummy/app/components/ts-component.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<div style="border: 2px solid black;width: 100%; background-color: azure; margin-top: 20px; padding: 0 0 20px 20px">
22
<p style="margin-top: 0px; border-bottom: chocolate 1px solid">ts-component.hbs</p>
3-
{{#if someValue}}
4-
Component defines <b>someValue</b> property as: {{someValue}}
3+
{{#if this.someValue}}
4+
Component defines <b>someValue</b> property as: {{this.someValue}}
55
{{else}}
66
<span style="color:red">Missing <b>someValue</b> property, expected to be defined by the component.</span>
77
{{/if}}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import Component from '@ember/component';
1+
import Component from '@glimmer/component';
22

33
function compute(): { value: string } {
44
return { value: 'from component' };
55
}
66

7-
export default Component.extend({
8-
someValue: compute().value,
9-
});
7+
export default class TsComponent extends Component {
8+
someValue = compute().value;
9+
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Controller from '@ember/controller';
22

3-
export default Controller.extend({
3+
export default class ApplicationController extends Controller {
44
// Just a very roundabout way of using some ES6 features
5-
value: ((test = 'Test') => `${test} ${'Value'}`)(),
6-
foo: 'hello',
7-
});
5+
value = ((test = 'Test') => `${test} ${'Value'}`)();
6+
foo = 'hello';
7+
}

tests/dummy/app/router.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import EmberRouter from '@ember/routing/router';
22
import config from './config/environment';
33

4-
const Router = EmberRouter.extend({
5-
location: config.locationType,
6-
rootURL: config.rootURL,
7-
});
4+
class Router extends EmberRouter {
5+
location = config.locationType;
6+
rootURL = config.rootURL;
7+
}
88

99
Router.map(function () {});
1010

tests/dummy/app/templates/components/.gitkeep

Whitespace-only changes.

ts/tests/acceptance/build-test.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,7 @@ function isExpressionStatement(stmt: Statement | ModuleDeclaration): stmt is Exp
160160
return stmt.type === 'ExpressionStatement';
161161
}
162162

163-
function isSpecialCallExpression(
164-
expr: Expression
165-
): expr is CallExpression & {
163+
function isSpecialCallExpression(expr: Expression): expr is CallExpression & {
166164
arguments: [Literal, Expression, ClassExpression];
167165
} {
168166
return (

0 commit comments

Comments
 (0)