Skip to content

Commit

Permalink
Remove ember-cli-legacy-blueprints.
Browse files Browse the repository at this point in the history
ember-cli has supported consuming `ember-source` for quite a number of
versions now (since 2.12), the `ember-cli-legacy-blueprints` addon is
only supporting usage of blueprints with versions of Ember prior to
2.12.

This commit removes `ember-cli-legacy-blueprints` from a default new
project. If a given project still needs this addon, it should add it as
its own dependency. Once added to the projects own dependencies the
legacy blueprints will be available exactly the same as today.
  • Loading branch information
rwjblue committed Jan 14, 2018
1 parent 24a0029 commit b507fab
Show file tree
Hide file tree
Showing 14 changed files with 313 additions and 659 deletions.
3 changes: 1 addition & 2 deletions lib/models/project.js
Expand Up @@ -377,7 +377,7 @@ class Project {

let internalMiddlewarePath = path.join(__dirname, '../tasks/server/middleware');
let internalTransformPath = path.join(__dirname, '../tasks/transforms');
let legacyBlueprintsPath = require.resolve('ember-cli-legacy-blueprints');

return [
path.join(internalMiddlewarePath, 'testem-url-rewriter'),
path.join(internalMiddlewarePath, 'tests-server'),
Expand All @@ -386,7 +386,6 @@ class Project {
path.join(internalMiddlewarePath, 'broccoli-serve-files'),
path.join(internalMiddlewarePath, 'proxy-server'),
path.join(internalTransformPath, 'amd'),
path.dirname(legacyBlueprintsPath),
];
}

Expand Down
3 changes: 1 addition & 2 deletions package.json
Expand Up @@ -59,13 +59,12 @@
"clean-base-url": "^1.0.0",
"compression": "^1.4.4",
"configstore": "^3.0.0",
"console-ui": "^2.0.0",
"console-ui": "^2.1.0",
"core-object": "^3.1.3",
"dag-map": "^2.0.2",
"diff": "^3.2.0",
"ember-cli-broccoli-sane-watcher": "^2.0.4",
"ember-cli-is-package-missing": "^1.0.0",
"ember-cli-legacy-blueprints": "^0.2.0",
"ember-cli-lodash-subset": "^2.0.1",
"ember-cli-normalize-entity-name": "^1.0.0",
"ember-cli-preprocess-registry": "^3.1.0",
Expand Down
15 changes: 0 additions & 15 deletions tests/acceptance/addon-dummy-generate-test.js
Expand Up @@ -60,21 +60,6 @@ describe('Acceptance: ember generate in-addon-dummy', function() {
});
}

it('dummy component x-foo', co.wrap(function *() {
yield generateInAddon(['component', 'x-foo', '--dummy']);

expect(file('tests/dummy/app/components/x-foo.js'))
.to.contain("import Ember from 'ember';")
.to.contain("export default Ember.Component.extend({")
.to.contain("});");

expect(file('tests/dummy/app/templates/components/x-foo.hbs'))
.to.contain("{{yield}}");

expect(file('app/components/x-foo.js')).to.not.exist;
expect(file('tests/unit/components/x-foo-test.js')).to.not.exist;
}));

it('dummy blueprint foo', co.wrap(function *() {
yield generateInAddon(['blueprint', 'foo', '--dummy']);

Expand Down
32 changes: 0 additions & 32 deletions tests/acceptance/addon-generate-test.js
Expand Up @@ -74,38 +74,6 @@ describe('Acceptance: ember generate in-addon', function() {
}
}));

it('in-addon addon-import component-addon works', co.wrap(function *() {
yield generateInAddon(['component-addon', 'foo-bar', '--pod']);

expect(file('app/components/foo-bar/component.js'))
.to.contain("export { default } from 'my-addon/components/foo-bar/component';");
}));

it('in-addon component x-foo', co.wrap(function *() {
yield generateInAddon(['component', 'x-foo']);

expect(file('addon/components/x-foo.js'))
.to.contain("import Ember from 'ember';")
.to.contain("import layout from '../templates/components/x-foo';")
.to.contain("export default Ember.Component.extend({")
.to.contain("layout")
.to.contain("});");

expect(file('addon/templates/components/x-foo.hbs'))
.to.contain("{{yield}}");

expect(file('app/components/x-foo.js'))
.to.contain("export { default } from 'my-addon/components/x-foo';");

expect(file('tests/integration/components/x-foo-test.js'))
.to.contain("import { moduleForComponent, test } from 'ember-qunit';")
.to.contain("import hbs from 'htmlbars-inline-precompile';")
.to.contain("moduleForComponent('x-foo'")
.to.contain("integration: true")
.to.contain("{{x-foo}}")
.to.contain("{{#x-foo}}");
}));

it('in-addon blueprint foo', co.wrap(function *() {
yield generateInAddon(['blueprint', 'foo']);

Expand Down
111 changes: 0 additions & 111 deletions tests/acceptance/destroy-test.js
Expand Up @@ -49,46 +49,11 @@ describe('Acceptance: ember destroy', function() {
]);
}

function initAddon() {
return ember([
'addon',
'my-addon',
'--skip-npm',
'--skip-bower',
]);
}

function initInRepoAddon() {
return initApp().then(function() {
return ember([
'generate',
'in-repo-addon',
'my-addon',
]);
});
}

function generate(args) {
let generateArgs = ['generate'].concat(args);
return ember(generateArgs);
}

function generateInAddon(args) {
let generateArgs = ['generate'].concat(args);

return initAddon().then(function() {
return ember(generateArgs);
});
}

function generateInRepoAddon(args) {
let generateArgs = ['generate'].concat(args);

return initInRepoAddon().then(function() {
return ember(generateArgs);
});
}

function destroy(args) {
let destroyArgs = ['destroy'].concat(args);
return ember(destroyArgs);
Expand Down Expand Up @@ -117,81 +82,6 @@ describe('Acceptance: ember destroy', function() {
assertFilesNotExist(files);
});

const assertDestroyAfterGenerateInAddon = co.wrap(function *(args, files) {
yield generateInAddon(args);
assertFilesExist(files);

let result = yield destroy(args);
expect(result, 'destroy command did not exit with errorCode').to.be.an('object');
assertFilesNotExist(files);
});

const assertDestroyAfterGenerateInRepoAddon = co.wrap(function *(args, files) {
yield generateInRepoAddon(args);
assertFilesExist(files);

let result = yield destroy(args);
expect(result, 'destroy command did not exit with errorCode').to.be.an('object');
assertFilesNotExist(files);
});

const assertDestroyAfterGenerateInAddonDummy = co.wrap(function *(args, files) {
args = args.concat('--dummy');

yield generateInAddon(args);
assertFilesExist(files);

let result = yield destroy(args);
expect(result, 'destroy command did not exit with errorCode').to.be.an('object');
assertFilesNotExist(files);
});

it('in-addon component x-foo', function() {
let commandArgs = ['component', 'x-foo'];
let files = [
'addon/components/x-foo.js',
'addon/templates/components/x-foo.hbs',
'app/components/x-foo.js',
'tests/integration/components/x-foo-test.js',
];

return assertDestroyAfterGenerateInAddon(commandArgs, files);
});

it('in-repo-addon component x-foo', function() {
let commandArgs = ['component', 'x-foo', '--in-repo-addon=my-addon'];
let files = [
'lib/my-addon/addon/components/x-foo.js',
'lib/my-addon/addon/templates/components/x-foo.hbs',
'lib/my-addon/app/components/x-foo.js',
'tests/integration/components/x-foo-test.js',
];

return assertDestroyAfterGenerateInRepoAddon(commandArgs, files);
});

it('in-repo-addon component nested/x-foo', function() {
let commandArgs = ['component', 'nested/x-foo', '--in-repo-addon=my-addon'];
let files = [
'lib/my-addon/addon/components/nested/x-foo.js',
'lib/my-addon/addon/templates/components/nested/x-foo.hbs',
'lib/my-addon/app/components/nested/x-foo.js',
'tests/integration/components/nested/x-foo-test.js',
];

return assertDestroyAfterGenerateInRepoAddon(commandArgs, files);
});

it('in-addon-dummy component x-foo', function() {
let commandArgs = ['component', 'x-foo'];
let files = [
'tests/dummy/app/templates/components/x-foo.hbs',
'tests/dummy/app/components/x-foo.js',
];

return assertDestroyAfterGenerateInAddonDummy(commandArgs, files);
});

it('blueprint foo', function() {
let commandArgs = ['blueprint', 'foo'];
let files = ['blueprints/foo/index.js'];
Expand Down Expand Up @@ -267,5 +157,4 @@ describe('Acceptance: ember destroy', function() {

expect(file('server/index.js')).to.exist;
}));

});
70 changes: 0 additions & 70 deletions tests/acceptance/generate-test.js
Expand Up @@ -65,66 +65,6 @@ describe('Acceptance: ember generate', function() {
});
}

it('component x-foo', co.wrap(function *() {
yield generate(['component', 'x-foo']);

expect(file('app/components/x-foo.js'))
.to.contain("import Ember from 'ember';")
.to.contain("export default Ember.Component.extend({")
.to.contain("});");

expect(file('app/templates/components/x-foo.hbs'))
.to.contain("{{yield}}");

expect(file('tests/integration/components/x-foo-test.js'))
.to.contain("import { moduleForComponent, test } from 'ember-qunit';")
.to.contain("import hbs from 'htmlbars-inline-precompile';")
.to.contain("moduleForComponent('x-foo'")
.to.contain("integration: true")
.to.contain("{{x-foo}}")
.to.contain("{{#x-foo}}");
}));

it('component foo/x-foo', co.wrap(function *() {
yield generate(['component', 'foo/x-foo']);

expect(file('app/components/foo/x-foo.js'))
.to.contain("import Ember from 'ember';")
.to.contain("export default Ember.Component.extend({")
.to.contain("});");

expect(file('app/templates/components/foo/x-foo.hbs'))
.to.contain("{{yield}}");

expect(file('tests/integration/components/foo/x-foo-test.js'))
.to.contain("import { moduleForComponent, test } from 'ember-qunit';")
.to.contain("import hbs from 'htmlbars-inline-precompile';")
.to.contain("moduleForComponent('foo/x-foo'")
.to.contain("integration: true")
.to.contain("{{foo/x-foo}}")
.to.contain("{{#foo/x-foo}}");
}));

it('component x-foo ignores --path option', co.wrap(function *() {
yield generate(['component', 'x-foo', '--path', 'foo']);

expect(file('app/components/x-foo.js'))
.to.contain("import Ember from 'ember';")
.to.contain("export default Ember.Component.extend({")
.to.contain("});");

expect(file('app/templates/components/x-foo.hbs'))
.to.contain("{{yield}}");

expect(file('tests/integration/components/x-foo-test.js'))
.to.contain("import { moduleForComponent, test } from 'ember-qunit';")
.to.contain("import hbs from 'htmlbars-inline-precompile';")
.to.contain("moduleForComponent('x-foo'")
.to.contain("integration: true")
.to.contain("{{x-foo}}")
.to.contain("{{#x-foo}}");
}));

it('blueprint foo', co.wrap(function *() {
yield generate(['blueprint', 'foo']);

Expand Down Expand Up @@ -377,21 +317,11 @@ describe('Acceptance: ember generate', function() {
expect(file('app/controllers/foo.js')).to.contain('custom: true');
}));

it('route foo --dry-run does not change router.js', co.wrap(function *() {
yield generate(['route', 'foo', '--dry-run']);
expect(file('app/router.js')).to.not.contain("route('foo')");
}));

it('server', co.wrap(function *() {
yield generate(['server']);
expect(file('server/index.js')).to.exist;
}));

it('availableOptions work with aliases.', co.wrap(function *() {
yield generate(['route', 'foo', '-d']);
expect(file('app/router.js')).to.not.contain("route('foo')");
}));

it('lib', co.wrap(function *() {
yield generate(['lib']);
expect(dir('lib')).to.exist;
Expand Down
42 changes: 0 additions & 42 deletions tests/acceptance/in-repo-addon-generate-test.js
Expand Up @@ -56,48 +56,6 @@ describe('Acceptance: ember generate in-repo-addon', function() {
});
}

function generateInRepoAddon(args) {
let generateArgs = ['generate'].concat(args);

return initInRepoAddon().then(function() {
return ember(generateArgs);
});
}

it('in-repo-addon component x-foo', function() {
return generateInRepoAddon(['component', 'x-foo', '--in-repo-addon=my-addon']).then(function() {
expect(file('lib/my-addon/addon/components/x-foo.js'))
.to.contain("import Ember from 'ember';")
.to.contain("import layout from '../templates/components/x-foo';")
.to.contain("export default Ember.Component.extend({")
.to.contain("layout")
.to.contain("});");

expect(file('lib/my-addon/addon/templates/components/x-foo.hbs'))
.to.contain("{{yield}}");

expect(file('lib/my-addon/app/components/x-foo.js'))
.to.contain("export { default } from 'my-addon/components/x-foo';");

expect(file('tests/integration/components/x-foo-test.js'))
.to.contain("import { moduleForComponent, test } from 'ember-qunit';")
.to.contain("import hbs from 'htmlbars-inline-precompile';")
.to.contain("moduleForComponent('x-foo'")
.to.contain("integration: true")
.to.contain("{{x-foo}}")
.to.contain("{{#x-foo}}");
});
});

it('in-repo-addon acceptance-test foo', function() {
return generateInRepoAddon(['acceptance-test', 'foo', '--in-repo-addon=my-addon']).then(function() {
let expected = path.join(__dirname, '../fixtures/generate/acceptance-test-expected.js');

expect(file('tests/acceptance/foo-test.js')).to.equal(file(expected));
expect(file('app/acceptance-tests/foo.js')).to.not.exist;
});
});

it('in-repo-addon adds path to lib', function() {
return initInRepoAddon().then(function() {
expect(file('package.json')).to.contain('lib/my-addon');
Expand Down

0 comments on commit b507fab

Please sign in to comment.