From d6ed5e109c01db9d18fd3ec48d245746da7013d7 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Sun, 28 Feb 2021 14:27:30 -0500 Subject: [PATCH 1/2] feat: install @types/ember-data__* when ember-data is found --- ts/blueprints/ember-cli-typescript/index.js | 4 ++++ ts/tests/blueprints/ember-cli-typescript-test.ts | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/ts/blueprints/ember-cli-typescript/index.js b/ts/blueprints/ember-cli-typescript/index.js index 9f17aa0d1..b6b442724 100644 --- a/ts/blueprints/ember-cli-typescript/index.js +++ b/ts/blueprints/ember-cli-typescript/index.js @@ -174,6 +174,10 @@ module.exports = { if (this._has('ember-data')) { packages.push('@types/ember-data'); + packages.push('@types/ember-data__adapter'); + packages.push('@types/ember-data__model'); + packages.push('@types/ember-data__serializer'); + packages.push('@types/ember-data__store'); } if (this._has('ember-cli-qunit') || this._has('ember-qunit')) { diff --git a/ts/tests/blueprints/ember-cli-typescript-test.ts b/ts/tests/blueprints/ember-cli-typescript-test.ts index 9cfcc93e3..7ec71cf0b 100644 --- a/ts/tests/blueprints/ember-cli-typescript-test.ts +++ b/ts/tests/blueprints/ember-cli-typescript-test.ts @@ -57,6 +57,10 @@ describe('Acceptance: ember-cli-typescript generator', function () { expect(pkgJson.devDependencies).to.include.all.keys('ember-cli-typescript-blueprints'); expect(pkgJson.devDependencies).to.include.all.keys('ember-data'); expect(pkgJson.devDependencies).to.include.all.keys('@types/ember-data'); + expect(pkgJson.devDependencies).to.include.all.keys('@types/ember-data__adapter'); + expect(pkgJson.devDependencies).to.include.all.keys('@types/ember-data__model'); + expect(pkgJson.devDependencies).to.include.all.keys('@types/ember-data__serializer'); + expect(pkgJson.devDependencies).to.include.all.keys('@types/ember-data__store'); expect(pkgJson.devDependencies).to.include.all.keys('ember-qunit'); expect(pkgJson.devDependencies).to.include.all.keys('@types/ember-qunit', '@types/qunit'); expect(pkgJson.devDependencies).to.not.have.any.keys('@types/ember-mocha', '@types/mocha'); @@ -103,6 +107,10 @@ describe('Acceptance: ember-cli-typescript generator', function () { expect(pkgJson.devDependencies).to.not.include.all.keys('ember-cli-typescript'); expect(pkgJson.devDependencies).to.not.have.any.keys('ember-data'); expect(pkgJson.devDependencies).to.not.have.any.keys('@types/ember-data'); + expect(pkgJson.devDependencies).to.not.have.any.keys('@types/ember-data__adapter'); + expect(pkgJson.devDependencies).to.not.have.any.keys('@types/ember-data__model'); + expect(pkgJson.devDependencies).to.not.have.any.keys('@types/ember-data__serializer'); + expect(pkgJson.devDependencies).to.not.have.any.keys('@types/ember-data__store'); expect(pkgJson.devDependencies).to.include.all.keys('ember-qunit'); expect(pkgJson.devDependencies).to.include.all.keys('@types/ember-qunit', '@types/qunit'); expect(pkgJson.devDependencies).to.not.have.any.keys('@types/ember-mocha', '@types/mocha'); From 3ab93703f82a4907520be511eeeb04f9938d7053 Mon Sep 17 00:00:00 2001 From: Dan Freeman Date: Tue, 15 Jun 2021 15:03:00 +0200 Subject: [PATCH 2/2] Fix blueprint tests --- .../blueprints/ember-cli-typescript-test.ts | 3 +++ ts/tests/helpers/stash-published-version.ts | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 ts/tests/helpers/stash-published-version.ts diff --git a/ts/tests/blueprints/ember-cli-typescript-test.ts b/ts/tests/blueprints/ember-cli-typescript-test.ts index 7ec71cf0b..81dbcf327 100644 --- a/ts/tests/blueprints/ember-cli-typescript-test.ts +++ b/ts/tests/blueprints/ember-cli-typescript-test.ts @@ -6,12 +6,15 @@ import helpers from 'ember-cli-blueprint-test-helpers/helpers'; import chaiHelpers from 'ember-cli-blueprint-test-helpers/chai'; import Blueprint from 'ember-cli/lib/models/blueprint'; +import { setupPublishedVersionStashing } from '../helpers/stash-published-version'; import ects from '../../blueprints/ember-cli-typescript/index'; const expect = chaiHelpers.expect; const file = chaiHelpers.file; describe('Acceptance: ember-cli-typescript generator', function () { + setupPublishedVersionStashing(this); + helpers.setupTestHooks(this, { disabledTasks: ['addon-install', 'bower-install'], }); diff --git a/ts/tests/helpers/stash-published-version.ts b/ts/tests/helpers/stash-published-version.ts new file mode 100644 index 000000000..076ad34dd --- /dev/null +++ b/ts/tests/helpers/stash-published-version.ts @@ -0,0 +1,21 @@ +import fs from 'fs-extra'; + +const PACKAGE_PATH = 'node_modules/ember-cli-typescript'; + +/** + * We have assorted devDependencies that themselves depend on `ember-cli-typescript`. + * This means we have a published copy of the addon present in `node_modules` normally, + * though `ember-cli-blueprint-test-helpers` fiddles around in there as well. + * + * This helper ensures we move the published version of the addon out of the way into + * an inert location during the enclosing `describe` block and put it back afterwards. + */ +export function setupPublishedVersionStashing(hooks: Mocha.Suite): void { + hooks.beforeAll(async () => { + await fs.move(PACKAGE_PATH, `${PACKAGE_PATH}.published`); + }); + + hooks.afterAll(async () => { + await fs.move(`${PACKAGE_PATH}.published`, PACKAGE_PATH); + }); +}