Skip to content

Commit 11054b0

Browse files
authored
Merge pull request #600 from thoov/fixing-test-suite
Fix test suite to run mocha variants during CI
2 parents d493bdc + ef6e399 commit 11054b0

24 files changed

+865
-524
lines changed

.eslintrc.js

+18-16
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1+
'use strict';
2+
13
module.exports = {
24
root: true,
5+
parser: 'babel-eslint',
36
parserOptions: {
4-
ecmaVersion: 2017,
5-
sourceType: 'module'
7+
ecmaVersion: 2018,
8+
sourceType: 'module',
9+
ecmaFeatures: {
10+
legacyDecorators: true
11+
}
612
},
713
plugins: [
814
'ember'
@@ -14,8 +20,7 @@ module.exports = {
1420
env: {
1521
browser: true
1622
},
17-
rules: {
18-
},
23+
rules: {},
1924
overrides: [
2025
// node files
2126
{
@@ -31,43 +36,40 @@ module.exports = {
3136
'blueprints/*/index.js',
3237
'config/**/*.js',
3338
'tests/dummy/config/**/*.js',
34-
'lib/**/*.js'
39+
'lib/**/*'
3540
],
3641
excludedFiles: [
3742
'addon/**',
3843
'addon-test-support/**',
3944
'app/**',
4045
'tests/dummy/app/**',
41-
'node-tests/**/*',
42-
'tests/unit/mocha/test-loader-test.js',
4346
],
4447
parserOptions: {
45-
sourceType: 'script',
46-
ecmaVersion: 2015
48+
sourceType: 'script'
4749
},
4850
env: {
4951
browser: false,
5052
node: true
5153
},
5254
plugins: ['node'],
53-
rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
54-
// add your custom rules and overrides for node files here
55-
})
55+
extends: ['plugin:node/recommended']
5656
},
57-
5857
{
5958
files: [
60-
"node-tests/**/*"
59+
'node-tests/**/*',
60+
],
61+
excludedFiles: [
62+
'testem.multiple-test-page.js'
6163
],
6264
parserOptions: {
63-
ecmaVersion: 2017,
65+
ecmaVersion: 2018,
6466
},
6567
env: {
6668
node: true,
6769
mocha: true,
6870
},
6971
rules: {
70-
},
72+
}
7173
}
7274
]
7375
};

.travis.yml

+37-27
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,73 @@
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
- "10"
57

8+
dist: xenial
9+
610
addons:
711
chrome: stable
812

913
cache:
1014
yarn: true
1115

16+
env:
17+
global:
18+
# See https://git.io/vdao3 for details.
19+
- JOBS=1
20+
21+
branches:
22+
only:
23+
- master
24+
# npm version tags
25+
- /^v\d+\.\d+\.\d+/
26+
1227
jobs:
1328
fail_fast: true
1429
allow_failures:
15-
- env: EMBER_TRY_SCENARIO=ember-canary TEST_FRAMEWORK=ember-qunit
16-
- env: EMBER_TRY_SCENARIO=ember-canary TEST_FRAMEWORK=ember-mocha
30+
- env: EMBER_TRY_SCENARIO=ember-canary
1731

1832
include:
1933
# runs linting and tests with current locked deps
2034

2135
- stage: "Tests"
2236
name: "Tests"
23-
install:
24-
- yarn install --non-interactive
25-
- ./bin/install-test-framework.sh
2637
script:
27-
- yarn lint:js
28-
- yarn test:all
38+
- yarn lint
39+
- yarn test:ember
2940

30-
- name: "Floating Dependencies"
41+
- stage: "Additional Tests"
42+
name: "Floating Dependencies"
43+
install:
44+
- yarn install --no-lockfile --non-interactive
3145
script:
32-
- yarn test:all
46+
- yarn test:ember
3347

3448
# we recommend new addons test the current and previous LTS
3549
# as well as latest stable release (bonus points to beta/canary)
36-
- stage: "Additional Tests"
37-
env: EMBER_TRY_SCENARIO=ember-lts-2.16 TEST_FRAMEWORK=ember-qunit
38-
- env: EMBER_TRY_SCENARIO=ember-lts-2.16 TEST_FRAMEWORK=ember-mocha
39-
- env: EMBER_TRY_SCENARIO=ember-lts-2.18 TEST_FRAMEWORK=ember-qunit
40-
- env: EMBER_TRY_SCENARIO=ember-lts-2.18 TEST_FRAMEWORK=ember-mocha
41-
- env: EMBER_TRY_SCENARIO=ember-release TEST_FRAMEWORK=ember-qunit
50+
- env: EMBER_TRY_SCENARIO=ember-lts-3.12
51+
- env: EMBER_TRY_SCENARIO=ember-lts-3.16
52+
- env: EMBER_TRY_SCENARIO=ember-release
4253
- env: EMBER_TRY_SCENARIO=ember-release TEST_FRAMEWORK=ember-mocha
43-
- env: EMBER_TRY_SCENARIO=ember-beta TEST_FRAMEWORK=ember-qunit
44-
- env: EMBER_TRY_SCENARIO=ember-beta TEST_FRAMEWORK=ember-mocha
45-
- env: EMBER_TRY_SCENARIO=ember-canary TEST_FRAMEWORK=ember-qunit
46-
- env: EMBER_TRY_SCENARIO=ember-canary TEST_FRAMEWORK=ember-mocha
47-
- env: EMBER_TRY_SCENARIO=ember-default-with-jquery TEST_FRAMEWORK=ember-qunit
48-
- env: EMBER_TRY_SCENARIO=ember-default-with-jquery TEST_FRAMEWORK=ember-mocha
54+
- env: EMBER_TRY_SCENARIO=ember-beta
55+
- env: EMBER_TRY_SCENARIO=ember-canary
56+
- env: EMBER_TRY_SCENARIO=ember-default-with-jquery
57+
- env: EMBER_TRY_SCENARIO=ember-classic
4958

5059
before_install:
5160
- curl -o- -L https://yarnpkg.com/install.sh | bash
5261
- export PATH=$HOME/.yarn/bin:$PATH
5362

54-
after_success:
55-
- if [[ ($TRAVIS_BRANCH == master || -n $TRAVIS_TAG) && $EMBER_TRY_SCENARIO == ember-default ]]; then
56-
node_modules/.bin/ember deploy production;
57-
fi
58-
5963
install:
60-
- yarn install --no-lockfile --non-interactive
64+
- yarn install --non-interactive
6165

6266
script:
67+
- TEST_FRAMEWORK=$TEST_FRAMEWORK bin/install-test-framework.sh
6368
- node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO
69+
70+
after_success:
71+
- if [[ ($TRAVIS_BRANCH == master || -n $TRAVIS_TAG) && $EMBER_TRY_SCENARIO == ember-default ]]; then
72+
node_modules/.bin/ember deploy production;
73+
fi

bin/install-test-framework.sh

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#!/bin/bash
22
set -ev
33
if [ "${TEST_FRAMEWORK}" = "ember-mocha" ]; then
4-
yarn remove ember-qunit
5-
echo "n" | ember install ember-mocha@0.16.0 @ember/jquery && ember feature:enable jquery-integration
4+
yarn remove ember-qunit 2>/dev/null && echo "n" | ember install ember-mocha || true
65
fi

config/ember-try.js

+65-70
Original file line numberDiff line numberDiff line change
@@ -13,84 +13,79 @@ const command = [
1313
process.env.TRAVIS_PULL_REQUEST
1414
].filter(Boolean).join(' ');
1515

16-
module.exports = function() {
17-
return Promise.all([
18-
getChannelURL('release'),
19-
getChannelURL('beta'),
20-
getChannelURL('canary')
21-
]).then((urls) => {
22-
return {
23-
command,
24-
useYarn: true,
25-
scenarios: [
26-
{
27-
name: 'ember-lts-2.16',
28-
env: {
29-
EMBER_OPTIONAL_FEATURES: JSON.stringify({ 'jquery-integration': true })
30-
},
31-
npm: {
32-
devDependencies: {
33-
'@ember/jquery': '^0.5.1',
34-
'ember-source': '~2.16.0'
35-
}
16+
module.exports = async function() {
17+
return {
18+
command,
19+
useYarn: true,
20+
scenarios: [
21+
{
22+
name: 'ember-lts-3.12',
23+
npm: {
24+
devDependencies: {
25+
'ember-source': '~3.12.0'
3626
}
37-
},
38-
{
39-
name: 'ember-lts-2.18',
40-
env: {
41-
EMBER_OPTIONAL_FEATURES: JSON.stringify({ 'jquery-integration': true })
42-
},
43-
npm: {
44-
devDependencies: {
45-
'@ember/jquery': '^0.5.1',
46-
'ember-source': '~2.18.0'
47-
}
27+
}
28+
},
29+
{
30+
name: 'ember-lts-3.16',
31+
npm: {
32+
devDependencies: {
33+
'ember-source': '~3.16.0'
4834
}
49-
},
50-
{
51-
name: 'ember-release',
52-
npm: {
53-
devDependencies: {
54-
'ember-source': urls[0]
55-
}
35+
}
36+
},
37+
{
38+
name: 'ember-release',
39+
npm: {
40+
devDependencies: {
41+
'ember-source': await getChannelURL('release')
5642
}
57-
},
58-
{
59-
name: 'ember-beta',
60-
npm: {
61-
devDependencies: {
62-
'ember-source': urls[1]
63-
}
43+
}
44+
},
45+
{
46+
name: 'ember-beta',
47+
npm: {
48+
devDependencies: {
49+
'ember-source': await getChannelURL('beta')
6450
}
65-
},
66-
{
67-
name: 'ember-canary',
68-
npm: {
69-
devDependencies: {
70-
'ember-source': urls[2]
71-
}
51+
}
52+
},
53+
{
54+
name: 'ember-canary',
55+
npm: {
56+
devDependencies: {
57+
'ember-source': await getChannelURL('canary')
7258
}
59+
}
60+
},
61+
{
62+
name: 'ember-default-with-jquery',
63+
env: {
64+
EMBER_OPTIONAL_FEATURES: JSON.stringify({
65+
'jquery-integration': true
66+
})
7367
},
74-
{
75-
name: 'ember-default',
76-
npm: {
77-
devDependencies: {}
68+
npm: {
69+
devDependencies: {
70+
'@ember/jquery': '^0.5.1'
7871
}
72+
}
73+
},
74+
{
75+
name: 'ember-classic',
76+
env: {
77+
EMBER_OPTIONAL_FEATURES: JSON.stringify({
78+
'application-template-wrapper': true,
79+
'default-async-observers': false,
80+
'template-only-glimmer-components': false
81+
})
7982
},
80-
{
81-
name: 'ember-default-with-jquery',
82-
env: {
83-
EMBER_OPTIONAL_FEATURES: JSON.stringify({
84-
'jquery-integration': true
85-
})
86-
},
87-
npm: {
88-
devDependencies: {
89-
'@ember/jquery': '^0.5.1'
90-
}
83+
npm: {
84+
ember: {
85+
edition: 'classic'
9186
}
9287
}
93-
]
94-
};
95-
});
88+
}
89+
]
90+
};
9691
};

node-tests/fixtures/test-helper-with-load.js

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
/* globals require */
2-
31
import { setResolver } from '@ember/test-helpers';
42
import resolver from './helpers/resolver';
53
import loadEmberExam from 'ember-exam/test-support/load';

0 commit comments

Comments
 (0)