diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a66597bd7..8b9b7f7f7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,3 +115,33 @@ jobs: - name: Run Mocha Tests run: | yarn workspace ember-cli-fastboot test:mocha + + try-scenarios: + name: "ember-try for ember-cli-fastboot: ${{ matrix.ember-try-scenario }}" + runs-on: ubuntu-latest + timeout-minutes: 7 + + strategy: + fail-fast: false + matrix: + ember-try-scenario: + - ember-lts-3.16 + - ember-lts-3.20 + - ember-release + - ember-beta + - ember-canary + - ember-default-with-jquery + - ember-classic + - embroider-safe + - embroider-optimized + - no-deprecations + - ember-release-no-deprecations + + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: 14 + - run: yarn install --ignore-engines --frozen-lockfile + - name: test + run: yarn workspace ember-cli-fastboot ember try:one ${{ matrix.ember-try-scenario }} --skip-cleanup diff --git a/packages/ember-cli-fastboot/config/ember-try.js b/packages/ember-cli-fastboot/config/ember-try.js new file mode 100644 index 000000000..0ee75ae9e --- /dev/null +++ b/packages/ember-cli-fastboot/config/ember-try.js @@ -0,0 +1,99 @@ +'use strict'; + +const getChannelURL = require('ember-source-channel-url'); +const { embroiderSafe, embroiderOptimized } = require('@embroider/test-setup'); + +module.exports = async function () { + return { + useYarn: true, + scenarios: [ + { + name: 'ember-lts-3.16', + npm: { + devDependencies: { + 'ember-source': '~3.16.0', + }, + }, + }, + { + name: 'ember-lts-3.20', + npm: { + devDependencies: { + 'ember-source': '~3.20.5', + }, + }, + }, + { + name: 'ember-release', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('release'), + }, + }, + }, + { + name: 'ember-beta', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('beta'), + }, + }, + }, + { + name: 'ember-canary', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('canary'), + }, + }, + }, + { + name: 'ember-default-with-jquery', + env: { + EMBER_OPTIONAL_FEATURES: JSON.stringify({ + 'jquery-integration': true, + }), + }, + npm: { + devDependencies: { + '@ember/jquery': '^1.1.0', + }, + }, + }, + { + name: 'ember-classic', + env: { + EMBER_OPTIONAL_FEATURES: JSON.stringify({ + 'application-template-wrapper': true, + 'default-async-observers': false, + 'template-only-glimmer-components': false, + }), + }, + npm: { + ember: { + edition: 'classic', + }, + }, + }, + embroiderSafe(), + embroiderOptimized(), + { + name: 'no-deprecations', + npm: { + devDependencies: { + 'ember-deprecation-error': '*', + }, + }, + }, + { + name: 'ember-release-no-deprecations', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('release'), + 'ember-deprecation-error': '*', + }, + }, + }, + ], + }; +}; diff --git a/packages/ember-cli-fastboot/package.json b/packages/ember-cli-fastboot/package.json index 91b4f0a73..0a7acacd1 100644 --- a/packages/ember-cli-fastboot/package.json +++ b/packages/ember-cli-fastboot/package.json @@ -25,7 +25,8 @@ "test": "npm-run-all lint test:*", "test:mocha": "node fix-node-modules.mjs && mocha && node fix-node-modules.mjs -r", "test:ember": "ember test", - "test:precook": "node node_modules/ember-cli-addon-tests/scripts/precook-node-modules.js" + "test:precook": "node node_modules/ember-cli-addon-tests/scripts/precook-node-modules.js", + "test:ember-compatibility": "ember try:each" }, "dependencies": { "broccoli-concat": "^3.7.1", @@ -78,7 +79,9 @@ "ember-resolver": "^8.0.2", "ember-sinon": "^2.2.0", "ember-source": "~3.26.1", + "ember-source-channel-url": "^3.0.0", "ember-template-lint": "^3.2.0", + "ember-try": "^1.4.0", "eslint": "^7.23.0", "eslint-config-prettier": "^8.1.0", "eslint-plugin-ember": "^10.3.0", diff --git a/packages/ember-cli-fastboot/tests/dummy/app/templates/application.hbs b/packages/ember-cli-fastboot/tests/dummy/app/templates/application.hbs index 0dadef0e8..9a81fa312 100644 --- a/packages/ember-cli-fastboot/tests/dummy/app/templates/application.hbs +++ b/packages/ember-cli-fastboot/tests/dummy/app/templates/application.hbs @@ -5,6 +5,6 @@ {{outlet}}
- {{model.key1.foo}} - {{model.key2.zip}} + {{this.model.key1.foo}} + {{this.model.key2.zip}}
\ No newline at end of file diff --git a/packages/ember-cli-fastboot/tests/integration/instance-initializers/clear-double-boot-test.js b/packages/ember-cli-fastboot/tests/integration/instance-initializers/clear-double-boot-test.js index f8e946587..17ed0a072 100644 --- a/packages/ember-cli-fastboot/tests/integration/instance-initializers/clear-double-boot-test.js +++ b/packages/ember-cli-fastboot/tests/integration/instance-initializers/clear-double-boot-test.js @@ -29,7 +29,7 @@ module('Instance-initializer: clear-double-boot', function(hooks) { `); // render the whole tree dynamically to more closely mimc bad markup cases - await render(hbs`{{{BAD_HTML}}}`); + await render(hbs`{{{this.BAD_HTML}}}`); clearHtml(); assert.notOk(this.element.querySelector('#fastboot-body-start'), 'There is no start marker'); @@ -41,7 +41,7 @@ module('Instance-initializer: clear-double-boot', function(hooks) { this.set('BAD_HTML', ``); // render the whole tree dynamically to more closely mimc bad markup cases - await render(hbs`{{{BAD_HTML}}}`); + await render(hbs`{{{this.BAD_HTML}}}`); clearHtml();