From 01eccafe069983e2bd5c3c952a67c6d8aa31e134 Mon Sep 17 00:00:00 2001 From: Chris Krycho Date: Tue, 21 Feb 2023 07:55:39 -0700 Subject: [PATCH 1/3] [CLEANUP] Remove deprecated `@ember/error` package --- ember-cli-build.js | 1 - packages/@ember/error/index.ts | 57 ------------------- packages/@ember/error/tests/index_test.js | 50 ---------------- .../@ember/error/type-tests/index.test.ts | 5 -- packages/ember/index.ts | 4 -- packages/ember/tests/reexports_test.js | 3 - type-tests/@ember/error-tests.ts | 7 --- type-tests/ember/ember-module-tests.ts | 2 - type-tests/ember/error.ts | 5 -- types/preview/ember/index.d.ts | 7 --- 10 files changed, 141 deletions(-) delete mode 100644 packages/@ember/error/index.ts delete mode 100644 packages/@ember/error/tests/index_test.js delete mode 100644 packages/@ember/error/type-tests/index.test.ts delete mode 100644 type-tests/@ember/error-tests.ts delete mode 100644 type-tests/ember/error.ts diff --git a/ember-cli-build.js b/ember-cli-build.js index dee32e4e406..70654586dfb 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -220,7 +220,6 @@ function templateCompilerBundle(emberPackages, transpileTree) { '@ember/canary-features/**', '@ember/debug/**', '@ember/deprecated-features/**', - '@ember/error/**', 'ember/version.js', 'ember-babel.js', 'ember-template-compiler/**', diff --git a/packages/@ember/error/index.ts b/packages/@ember/error/index.ts deleted file mode 100644 index 4138449b191..00000000000 --- a/packages/@ember/error/index.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { deprecate } from '@ember/debug'; -import { DEBUG } from '@glimmer/env'; - -/** -This module is deprecated and should not be used. -See [the deprecations guide](https://deprecations.emberjs.com/v4.x#toc_deprecate-ember-error) -for more details. - -@module @ember/error -*/ - -/** ErrorConstructor without node extensions */ -interface BrowserErrorConstructor { - new (message?: string): Error; - (message?: string): Error; - readonly prototype: Error; -} - -/** - The JavaScript Error object used by Ember.assert. - - @class Error - @namespace Ember - @extends Error - @constructor - @public - @deprecated -*/ -let EmberError: BrowserErrorConstructor; -if (DEBUG) { - // eslint-disable-next-line no-inner-declarations - function EmberDebugConstructor(message?: string) { - deprecate( - 'The @ember/error package merely re-exported the native Error and is deprecated. Please use a native Error directly instead.', - false, - { - id: 'deprecate-ember-error', - until: '5.0.0', - url: 'https://deprecations.emberjs.com/v4.x/#toc_deprecate-ember-error', - for: 'ember-source', - since: { - available: '4.10.0', - enabled: '4.10.0', - }, - } - ); - return new Error(message); - } - EmberDebugConstructor.prototype = Error.prototype; - - // SAFETY: We need this cast since our EmberDebugConstructor doesn't define a type for `new` even though it will work with `new`. - EmberError = EmberDebugConstructor as BrowserErrorConstructor; -} else { - EmberError = Error; -} - -export default EmberError; diff --git a/packages/@ember/error/tests/index_test.js b/packages/@ember/error/tests/index_test.js deleted file mode 100644 index f2b37f069fe..00000000000 --- a/packages/@ember/error/tests/index_test.js +++ /dev/null @@ -1,50 +0,0 @@ -import { moduleFor, AbstractTestCase as TestCase } from 'internal-test-helpers'; -import EmberError from '@ember/error'; - -moduleFor( - 'Ember Error Throwing', - class extends TestCase { - ['@test new EmberError displays provided message'](assert) { - assert.throws( - () => { - expectDeprecation(() => { - throw new EmberError('A Message'); - }, 'The @ember/error package merely re-exported the native Error and is deprecated. Please use a native Error directly instead.'); - }, - function (e) { - return e.message === 'A Message'; - }, - 'the assigned message was displayed' - ); - } - ['@test new EmberError is instanceof EmberError'](assert) { - expectDeprecation(() => { - assert.ok( - new EmberError('A Message') instanceof EmberError, - 'new EmberError is instanceof EmberError' - ); - }, 'The @ember/error package merely re-exported the native Error and is deprecated. Please use a native Error directly instead.'); - } - ['@test EmberError(...) displays provided message'](assert) { - assert.throws( - () => { - expectDeprecation(() => { - throw EmberError('A Message'); - }, 'The @ember/error package merely re-exported the native Error and is deprecated. Please use a native Error directly instead.'); - }, - function (e) { - return e.message === 'A Message'; - }, - 'the assigned message was displayed' - ); - } - ['@test EmberError(...) is instanceof EmberError'](assert) { - expectDeprecation(() => { - assert.ok( - EmberError('A Message') instanceof EmberError, - 'new EmberError is instanceof EmberError' - ); - }, 'The @ember/error package merely re-exported the native Error and is deprecated. Please use a native Error directly instead.'); - } - } -); diff --git a/packages/@ember/error/type-tests/index.test.ts b/packages/@ember/error/type-tests/index.test.ts deleted file mode 100644 index b13ea57ca98..00000000000 --- a/packages/@ember/error/type-tests/index.test.ts +++ /dev/null @@ -1,5 +0,0 @@ -import EmberError from '@ember/error'; -import { expectTypeOf } from 'expect-type'; - -expectTypeOf(EmberError("Blah")).toEqualTypeOf(); -expectTypeOf(new EmberError("Blah")).toEqualTypeOf(); diff --git a/packages/ember/index.ts b/packages/ember/index.ts index 7bb0fd5040c..cb8811ac290 100644 --- a/packages/ember/index.ts +++ b/packages/ember/index.ts @@ -59,7 +59,6 @@ import VERSION from './version'; import * as views from '@ember/-internals/views'; import ContainerDebugAdapter from '@ember/debug/container-debug-adapter'; import DataAdapter from '@ember/debug/data-adapter'; -import EmberError from '@ember/error'; import { run } from '@ember/runloop'; import { getOnerror, setOnerror } from '@ember/-internals/error-handling'; import EmberArray, { A, NativeArray, isArray, makeArray } from '@ember/array'; @@ -279,9 +278,6 @@ const PartialEmber = { // ****@ember/enumerable/mutable**** MutableEnumerable, - // ****@ember/error**** - Error: EmberError, - // ****@ember/instrumentation**** instrument: instrumentation.instrument, subscribe: instrumentation.subscribe, diff --git a/packages/ember/tests/reexports_test.js b/packages/ember/tests/reexports_test.js index 04848fddc5c..ee67179c925 100644 --- a/packages/ember/tests/reexports_test.js +++ b/packages/ember/tests/reexports_test.js @@ -124,9 +124,6 @@ let allExports = [ // @ember/enumerable ['Enumerable', '@ember/enumerable', 'default'], - // @ember/error - ['Error', '@ember/error', 'default'], - // @ember/instrumentation ['instrument', '@ember/instrumentation', 'instrument'], ['subscribe', '@ember/instrumentation', 'subscribe'], diff --git a/type-tests/@ember/error-tests.ts b/type-tests/@ember/error-tests.ts deleted file mode 100644 index ce279389dd0..00000000000 --- a/type-tests/@ember/error-tests.ts +++ /dev/null @@ -1,7 +0,0 @@ -import EmberError from '@ember/error'; -import { expectTypeOf } from 'expect-type'; - -expectTypeOf(new EmberError('Fuuuuuuuu')).toEqualTypeOf(); - -// allows to extend from EmberError -class AjaxError extends Error {} diff --git a/type-tests/ember/ember-module-tests.ts b/type-tests/ember/ember-module-tests.ts index 88813a90ce3..0af942db625 100644 --- a/type-tests/ember/ember-module-tests.ts +++ b/type-tests/ember/ember-module-tests.ts @@ -197,8 +197,6 @@ e1.register('data:foo', {}, { instantiate: false }); // Ember.EngineInstance const ei1 = new Ember.EngineInstance(); ei1.lookup('data:foo'); -// Ember.Error -new Ember.Error('Halp!'); // Ember.Evented interface OE1 extends Ember.Evented {} class OE1 extends Ember.Object.extend(Ember.Evented) {} diff --git a/type-tests/ember/error.ts b/type-tests/ember/error.ts deleted file mode 100644 index b87de9ddddd..00000000000 --- a/type-tests/ember/error.ts +++ /dev/null @@ -1,5 +0,0 @@ -import Ember from 'ember'; -import { expectTypeOf } from 'expect-type'; - -// uhhh, yeah. -expectTypeOf(Ember.Error).toEqualTypeOf(); diff --git a/types/preview/ember/index.d.ts b/types/preview/ember/index.d.ts index 8b61232e4ca..cd19bb07f82 100755 --- a/types/preview/ember/index.d.ts +++ b/types/preview/ember/index.d.ts @@ -38,8 +38,6 @@ declare module 'ember' { import EmberArrayProxy from '@ember/array/proxy'; import type EmberEnumerable from '@ember/array/-private/enumerable'; import type EmberMutableEnumerable from '@ember/array/-private/mutable-enumerable'; - // @ember/error - import type EmberError from '@ember/error'; type EmberArray = EmberArrayNs.default; import type EmberActionHandler from '@ember/object/-private/action-handler'; @@ -124,11 +122,6 @@ declare module 'ember' { class EngineInstance extends EmberEngineInstanceNs.default {} class Engine extends EmberEngineNs.default {} - /** - * A subclass of the JavaScript Error object for use in Ember. - */ - const Error: ErrorConstructor; - const Evented: typeof EmberObjectEventedNs.default; interface Evented extends EmberObjectEventedNs.default {} From 66e9edd39b43e99de167bf64fefd1cf028af12ef Mon Sep 17 00:00:00 2001 From: Peter Wagenet Date: Mon, 20 Mar 2023 20:15:15 -0700 Subject: [PATCH 2/3] Update smoke-tests to Ember CLI 4.8 --- smoke-tests/ember-test-app/.eslintignore | 3 + smoke-tests/ember-test-app/.eslintrc.js | 2 +- smoke-tests/ember-test-app/.gitignore | 6 ++ smoke-tests/ember-test-app/.prettierignore | 4 ++ smoke-tests/ember-test-app/.watchmanconfig | 3 + smoke-tests/ember-test-app/app/index.html | 1 - .../config/ember-cli-update.json | 2 +- .../ember-test-app/config/environment.js | 8 +-- smoke-tests/ember-test-app/config/targets.js | 15 ----- smoke-tests/ember-test-app/ember-cli-build.js | 2 +- smoke-tests/ember-test-app/package.json | 55 +++++++++---------- .../ember-test-app/tests/helpers/.gitkeep | 0 .../ember-test-app/tests/helpers/index.js | 42 ++++++++++++++ smoke-tests/ember-test-app/tests/index.html | 1 - 14 files changed, 90 insertions(+), 54 deletions(-) create mode 100644 smoke-tests/ember-test-app/.watchmanconfig delete mode 100644 smoke-tests/ember-test-app/tests/helpers/.gitkeep create mode 100644 smoke-tests/ember-test-app/tests/helpers/index.js diff --git a/smoke-tests/ember-test-app/.eslintignore b/smoke-tests/ember-test-app/.eslintignore index 701947ed3a6..d474a40bd59 100644 --- a/smoke-tests/ember-test-app/.eslintignore +++ b/smoke-tests/ember-test-app/.eslintignore @@ -19,4 +19,7 @@ # ember-try /.node_modules.ember-try/ /bower.json.ember-try +/npm-shrinkwrap.json.ember-try /package.json.ember-try +/package-lock.json.ember-try +/yarn.lock.ember-try diff --git a/smoke-tests/ember-test-app/.eslintrc.js b/smoke-tests/ember-test-app/.eslintrc.js index 41a1a43d828..8a8a4ee83fa 100644 --- a/smoke-tests/ember-test-app/.eslintrc.js +++ b/smoke-tests/ember-test-app/.eslintrc.js @@ -50,7 +50,7 @@ module.exports = { }, }, { - // Test files: + // test files files: ['tests/**/*-test.{js,ts}'], extends: ['plugin:qunit/recommended'], }, diff --git a/smoke-tests/ember-test-app/.gitignore b/smoke-tests/ember-test-app/.gitignore index 09a917f9c2c..adc4f40e868 100644 --- a/smoke-tests/ember-test-app/.gitignore +++ b/smoke-tests/ember-test-app/.gitignore @@ -26,4 +26,10 @@ yarn.lock # ember-try /.node_modules.ember-try/ /bower.json.ember-try +/npm-shrinkwrap.json.ember-try /package.json.ember-try +/package-lock.json.ember-try +/yarn.lock.ember-try + +# broccoli-debug +/DEBUG/ diff --git a/smoke-tests/ember-test-app/.prettierignore b/smoke-tests/ember-test-app/.prettierignore index 9221655522b..4178fd571e6 100644 --- a/smoke-tests/ember-test-app/.prettierignore +++ b/smoke-tests/ember-test-app/.prettierignore @@ -14,8 +14,12 @@ /coverage/ !.* .eslintcache +.lint-todo/ # ember-try /.node_modules.ember-try/ /bower.json.ember-try +/npm-shrinkwrap.json.ember-try /package.json.ember-try +/package-lock.json.ember-try +/yarn.lock.ember-try diff --git a/smoke-tests/ember-test-app/.watchmanconfig b/smoke-tests/ember-test-app/.watchmanconfig new file mode 100644 index 00000000000..e7834e3e4f3 --- /dev/null +++ b/smoke-tests/ember-test-app/.watchmanconfig @@ -0,0 +1,3 @@ +{ + "ignore_dirs": ["tmp", "dist"] +} diff --git a/smoke-tests/ember-test-app/app/index.html b/smoke-tests/ember-test-app/app/index.html index 846e9ed87e3..191b3a129c1 100644 --- a/smoke-tests/ember-test-app/app/index.html +++ b/smoke-tests/ember-test-app/app/index.html @@ -2,7 +2,6 @@ - EmberTestApp diff --git a/smoke-tests/ember-test-app/config/ember-cli-update.json b/smoke-tests/ember-test-app/config/ember-cli-update.json index b46cba5d89a..43bb76a4e38 100644 --- a/smoke-tests/ember-test-app/config/ember-cli-update.json +++ b/smoke-tests/ember-test-app/config/ember-cli-update.json @@ -3,7 +3,7 @@ "packages": [ { "name": "ember-cli", - "version": "3.28.4", + "version": "4.8.0", "blueprints": [ { "name": "app", diff --git a/smoke-tests/ember-test-app/config/environment.js b/smoke-tests/ember-test-app/config/environment.js index 8f5d95a596f..93c6c975869 100644 --- a/smoke-tests/ember-test-app/config/environment.js +++ b/smoke-tests/ember-test-app/config/environment.js @@ -1,20 +1,16 @@ 'use strict'; module.exports = function (environment) { - let ENV = { + const ENV = { modulePrefix: 'ember-test-app', environment, rootURL: '/', - locationType: 'auto', + locationType: 'history', EmberENV: { FEATURES: { // Here you can enable experimental features on an ember canary build // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true }, - EXTEND_PROTOTYPES: { - // Prevent Ember Data from overriding Date.parse. - Date: false, - }, }, APP: { diff --git a/smoke-tests/ember-test-app/config/targets.js b/smoke-tests/ember-test-app/config/targets.js index 3cd797ab4fc..1e48e0599f9 100644 --- a/smoke-tests/ember-test-app/config/targets.js +++ b/smoke-tests/ember-test-app/config/targets.js @@ -6,21 +6,6 @@ const browsers = [ 'last 1 Safari versions', ]; -// Ember's browser support policy is changing, and IE11 support will end in -// v4.0 onwards. -// -// See https://deprecations.emberjs.com/v3.x#toc_3-0-browser-support-policy -// -// If you need IE11 support on a version of Ember that still offers support -// for it, uncomment the code block below. -// -// const isCI = Boolean(process.env.CI); -// const isProduction = process.env.EMBER_ENV === 'production'; -// -// if (isCI || isProduction) { -// browsers.push('ie 11'); -// } - module.exports = { browsers, }; diff --git a/smoke-tests/ember-test-app/ember-cli-build.js b/smoke-tests/ember-test-app/ember-cli-build.js index 48e94e9e440..45d36bf2f3c 100644 --- a/smoke-tests/ember-test-app/ember-cli-build.js +++ b/smoke-tests/ember-test-app/ember-cli-build.js @@ -3,7 +3,7 @@ const EmberApp = require('ember-cli/lib/broccoli/ember-app'); module.exports = function (defaults) { - let app = new EmberApp(defaults, { + const app = new EmberApp(defaults, { // Add options here }); diff --git a/smoke-tests/ember-test-app/package.json b/smoke-tests/ember-test-app/package.json index 3ec9877133e..b456bdce6e3 100644 --- a/smoke-tests/ember-test-app/package.json +++ b/smoke-tests/ember-test-app/package.json @@ -12,54 +12,53 @@ }, "scripts": { "build": "ember build --environment=production", - "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", - "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix", + "lint": "npm-run-all --print-name --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", + "lint:fix": "npm-run-all --print-name --aggregate-output --continue-on-error --parallel \"lint:*:fix\"", "lint:hbs": "ember-template-lint .", "lint:hbs:fix": "ember-template-lint . --fix", "lint:js": "eslint . --cache", "lint:js:fix": "eslint . --fix", "start": "ember serve", - "test": "npm-run-all lint test:*", + "test": "npm-run-all --print-name \"lint\" \"test:*\"", "test:ember": "ember test" }, "devDependencies": { "@ember/optional-features": "^2.0.0", - "@ember/test-helpers": "^2.4.2", - "@glimmer/component": "^1.0.4", - "@glimmer/tracking": "^1.0.4", + "@ember/test-helpers": "^2.8.1", + "@glimmer/component": "^1.1.2", + "@glimmer/tracking": "^1.1.2", "babel-eslint": "^10.1.0", "broccoli-asset-rev": "^3.0.0", - "ember-auto-import": "^2.2.4", - "ember-cli": "~3.28.4", + "ember-auto-import": "^2.4.3", + "ember-cli": "~4.8.0", "ember-cli-app-version": "^5.0.0", - "ember-cli-babel": "^7.26.6", - "ember-cli-dependency-checker": "^3.2.0", - "ember-cli-htmlbars": "^5.7.1", + "ember-cli-babel": "^7.26.11", + "ember-cli-dependency-checker": "^3.3.1", + "ember-cli-htmlbars": "^6.1.1", "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-sri": "^2.1.1", "ember-cli-terser": "^4.0.2", - "ember-data": "~3.28.0", - "ember-export-application-global": "^2.0.1", - "ember-fetch": "^8.1.1", + "ember-data": "~4.8.8", + "ember-fetch": "^8.1.2", "ember-load-initializers": "^2.1.2", - "ember-page-title": "^6.2.2", - "ember-qunit": "^5.1.4", - "ember-resolver": "^8.0.2", - "ember-source": "~3.28.0", - "ember-template-lint": "^3.6.0", - "ember-welcome-page": "^4.0.0", + "ember-page-title": "^7.0.0", + "ember-qunit": "^6.0.0", + "ember-resolver": "^8.0.3", + "ember-source": "~4.8.0", + "ember-template-lint": "^4.16.1", + "ember-welcome-page": "^6.2.0", "eslint": "^7.32.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-ember": "^10.5.4", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-ember": "^11.1.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.4.1", - "eslint-plugin-qunit": "^6.2.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-qunit": "^7.3.1", "loader.js": "^4.7.0", "npm-run-all": "^4.1.5", - "prettier": "^2.3.2", - "qunit": "^2.16.0", - "qunit-dom": "^1.6.0", - "webpack": "^5.65.0" + "prettier": "^2.7.1", + "qunit": "^2.19.2", + "qunit-dom": "^2.0.0", + "webpack": "^5.74.0" }, "engines": { "node": "14.* || 16.* || >= 18" diff --git a/smoke-tests/ember-test-app/tests/helpers/.gitkeep b/smoke-tests/ember-test-app/tests/helpers/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/smoke-tests/ember-test-app/tests/helpers/index.js b/smoke-tests/ember-test-app/tests/helpers/index.js new file mode 100644 index 00000000000..7f70de80f4d --- /dev/null +++ b/smoke-tests/ember-test-app/tests/helpers/index.js @@ -0,0 +1,42 @@ +import { + setupApplicationTest as upstreamSetupApplicationTest, + setupRenderingTest as upstreamSetupRenderingTest, + setupTest as upstreamSetupTest, +} from 'ember-qunit'; + +// This file exists to provide wrappers around ember-qunit's / ember-mocha's +// test setup functions. This way, you can easily extend the setup that is +// needed per test type. + +function setupApplicationTest(hooks, options) { + upstreamSetupApplicationTest(hooks, options); + + // Additional setup for application tests can be done here. + // + // For example, if you need an authenticated session for each + // application test, you could do: + // + // hooks.beforeEach(async function () { + // await authenticateSession(); // ember-simple-auth + // }); + // + // This is also a good place to call test setup functions coming + // from other addons: + // + // setupIntl(hooks); // ember-intl + // setupMirage(hooks); // ember-cli-mirage +} + +function setupRenderingTest(hooks, options) { + upstreamSetupRenderingTest(hooks, options); + + // Additional setup for rendering tests can be done here. +} + +function setupTest(hooks, options) { + upstreamSetupTest(hooks, options); + + // Additional setup for unit tests can be done here. +} + +export { setupApplicationTest, setupRenderingTest, setupTest }; diff --git a/smoke-tests/ember-test-app/tests/index.html b/smoke-tests/ember-test-app/tests/index.html index 87263eb9d1b..1b0a100e0d7 100644 --- a/smoke-tests/ember-test-app/tests/index.html +++ b/smoke-tests/ember-test-app/tests/index.html @@ -2,7 +2,6 @@ - EmberTestApp Tests From 29a137b8dca2046cd26dc3c512e1a1ce32086c74 Mon Sep 17 00:00:00 2001 From: Peter Wagenet Date: Mon, 20 Mar 2023 21:00:50 -0700 Subject: [PATCH 3/3] Update smoke tests to more recent ember-data version --- smoke-tests/ember-test-app/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoke-tests/ember-test-app/package.json b/smoke-tests/ember-test-app/package.json index b456bdce6e3..326594916de 100644 --- a/smoke-tests/ember-test-app/package.json +++ b/smoke-tests/ember-test-app/package.json @@ -38,7 +38,7 @@ "ember-cli-inject-live-reload": "^2.1.0", "ember-cli-sri": "^2.1.1", "ember-cli-terser": "^4.0.2", - "ember-data": "~4.8.8", + "ember-data": "~4.11.0", "ember-fetch": "^8.1.2", "ember-load-initializers": "^2.1.2", "ember-page-title": "^7.0.0",