-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Pull in blueprint tests and port them to QUnit
- Loading branch information
Showing
21 changed files
with
887 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
export { default } from '<%= modulePath %>'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
/*jshint node:true*/ | ||
|
||
var stringUtil = require('ember-cli-string-utils'); | ||
var path = require('path'); | ||
var inflector = require('inflection'); | ||
|
||
module.exports = { | ||
description: 'Generates an import wrapper.', | ||
|
||
fileMapTokens: function() { | ||
return { | ||
__name__: function(options) { | ||
if (options.pod && options.hasPathToken) { | ||
return options.originBlueprintName; | ||
} | ||
return options.dasherizedModuleName; | ||
}, | ||
__path__: function(options) { | ||
var blueprintName = options.originBlueprintName; | ||
|
||
if (options.pod && options.hasPathToken) { | ||
return path.join(options.podPath, options.dasherizedModuleName); | ||
} | ||
return inflector.pluralize(blueprintName); | ||
}, | ||
__root__: function(options) { | ||
if (options.inRepoAddon) { | ||
return path.join('lib', options.inRepoAddon, 'app'); | ||
} | ||
return 'app'; | ||
} | ||
}; | ||
}, | ||
locals: function(options) { | ||
var addonRawName = options.inRepoAddon ? options.inRepoAddon : options.project.name(); | ||
var addonName = stringUtil.dasherize(addonRawName); | ||
var fileName = stringUtil.dasherize(options.entity.name); | ||
var pathName = [addonName, inflector.pluralize(options.originBlueprintName), fileName].join('/'); | ||
|
||
if (options.pod) { | ||
pathName = [addonName, fileName, options.originBlueprintName].join('/'); | ||
} | ||
|
||
return { | ||
modulePath: pathName | ||
}; | ||
} | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
'use strict'; | ||
|
||
module.exports = function getPathOption(options) { | ||
var outputPath = 'components'; | ||
|
||
if (options.path) { | ||
outputPath = options.path; | ||
} else { | ||
if (options.path === '') { | ||
outputPath = ''; | ||
} | ||
} | ||
return outputPath; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
'use strict'; | ||
|
||
module.exports = function getDependencyDepth(options) { | ||
var name = options.entity.name; | ||
var nameParts = name.split('/'); | ||
var depth = '../..'; | ||
|
||
return nameParts.reduce(function(prev) { | ||
return prev + '/..'; | ||
}, depth); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
'use strict'; | ||
|
||
var SilentError = require('silent-error'); | ||
|
||
module.exports = function(entityName) { | ||
if(! /\-/.test(entityName)) { | ||
throw new SilentError( | ||
'You specified "' + entityName + '", but in order to prevent ' + | ||
'clashes with current or future HTML element names, you must include ' + | ||
'a hyphen in the component name.' | ||
); | ||
} | ||
|
||
return entityName; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
var fs = require('fs'); | ||
var QUnit = require('qunitjs'); | ||
var moduleForBlueprint = require('ember-cli-blueprint-test-helpers/lib/qunit').moduleForBlueprint; | ||
var BlueprintHelper = require('ember-cli-blueprint-test-helpers/lib/helpers/blueprint-helper'); | ||
|
||
moduleForBlueprint(QUnit, 'Acceptance | Blueprints | acceptance-test: generate and destroy', { | ||
afterEach: function(assert) { | ||
assert.ok(true, "Test completed successfully."); | ||
} | ||
}); | ||
|
||
QUnit.test('acceptance-test foo', function() { | ||
return BlueprintHelper.generateAndDestroy(['acceptance-test', 'foo'], { | ||
files: [ | ||
{ | ||
file: 'tests/acceptance/foo-test.js', | ||
contains: fs.readFileSync('../../tests/node/blueprints/fixtures/acceptance-test-expected.js', 'utf8') | ||
} | ||
] | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
var QUnit = require('qunitjs'); | ||
var moduleForBlueprint = require('ember-cli-blueprint-test-helpers/lib/qunit').moduleForBlueprint; | ||
var BlueprintHelper = require('ember-cli-blueprint-test-helpers/lib/helpers/blueprint-helper'); | ||
|
||
moduleForBlueprint(QUnit, 'Acceptance | Blueprints | component-test: generate and destroy', { | ||
afterEach: function(assert) { | ||
assert.ok(true, "Test completed successfully."); | ||
} | ||
}); | ||
|
||
QUnit.test('component-test x-foo', function() { | ||
return BlueprintHelper.generateAndDestroy(['component-test', 'x-foo'], { | ||
files: [ | ||
{ | ||
file: 'tests/integration/components/x-foo-test.js', | ||
contains: [ | ||
"import { moduleForComponent, test } from 'ember-qunit';", | ||
"import hbs from 'htmlbars-inline-precompile';", | ||
"moduleForComponent('x-foo'", | ||
"integration: true", | ||
"{{x-foo}}", | ||
"{{#x-foo}}" | ||
] | ||
} | ||
] | ||
}); | ||
}); | ||
|
||
QUnit.test('component-test x-foo --unit', function() { | ||
return BlueprintHelper.generateAndDestroy(['component-test', 'x-foo', '--unit'], { | ||
files: [ | ||
{ | ||
file: 'tests/unit/components/x-foo-test.js', | ||
contains: [ | ||
"import { moduleForComponent, test } from 'ember-qunit';", | ||
"moduleForComponent('x-foo'", | ||
"unit: true" | ||
] | ||
} | ||
] | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
var QUnit = require('qunitjs'); | ||
var moduleForBlueprint = require('ember-cli-blueprint-test-helpers/lib/qunit').moduleForBlueprint; | ||
var BlueprintHelper = require('ember-cli-blueprint-test-helpers/lib/helpers/blueprint-helper'); | ||
|
||
moduleForBlueprint(QUnit, 'Acceptance | Blueprints | component: generate and destroy', { | ||
afterEach: function(assert) { | ||
assert.ok(true, "Test completed successfully."); | ||
} | ||
}); | ||
|
||
QUnit.test('component x-foo', function() { | ||
debugger; | ||
|
||
return BlueprintHelper.generateAndDestroy(['component', 'x-foo'], { | ||
files: [ | ||
{ | ||
file: 'app/components/x-foo.js', | ||
contains: [ | ||
"import Ember from 'ember';", | ||
"export default Ember.Component.extend({", | ||
"});" | ||
] | ||
}, | ||
{ | ||
file: 'app/templates/components/x-foo.hbs', | ||
contains: "{{yield}}" | ||
}, | ||
{ | ||
file: 'tests/integration/components/x-foo-test.js', | ||
contains: [ | ||
"import { moduleForComponent, test } from 'ember-qunit';", | ||
"import hbs from 'htmlbars-inline-precompile';", | ||
"moduleForComponent('x-foo'", | ||
"integration: true", | ||
"{{x-foo}}", | ||
"{{#x-foo}}" | ||
] | ||
} | ||
] | ||
}); | ||
}); | ||
|
||
QUnit.test('component foo/x-foo', function() { | ||
return BlueprintHelper.generateAndDestroy(['component', 'foo/x-foo'], { | ||
files: [ | ||
{ | ||
file: 'app/components/foo/x-foo.js', | ||
contains: [ | ||
"import Ember from 'ember';", | ||
"export default Ember.Component.extend({", | ||
"});" | ||
] | ||
}, | ||
{ | ||
file: 'app/templates/components/foo/x-foo.hbs', | ||
contains: "{{yield}}" | ||
}, | ||
{ | ||
file: 'tests/integration/components/foo/x-foo-test.js', | ||
contains: [ | ||
"import { moduleForComponent, test } from 'ember-qunit';", | ||
"import hbs from 'htmlbars-inline-precompile';", | ||
"moduleForComponent('foo/x-foo'", | ||
"integration: true", | ||
"{{foo/x-foo}}", | ||
"{{#foo/x-foo}}" | ||
] | ||
} | ||
] | ||
}); | ||
}); | ||
|
||
QUnit.test('component x-foo ignores --path option', function() { | ||
return BlueprintHelper.generateAndDestroy(['component', 'x-foo', '--path', 'foo'], { | ||
files: [ | ||
{ | ||
file: 'app/components/x-foo.js', | ||
contains: [ | ||
"import Ember from 'ember';", | ||
"export default Ember.Component.extend({", | ||
"});" | ||
] | ||
}, | ||
{ | ||
file: 'app/templates/components/x-foo.hbs', | ||
contains: "{{yield}}" | ||
}, | ||
{ | ||
file: 'tests/integration/components/x-foo-test.js', | ||
contains: [ | ||
"import { moduleForComponent, test } from 'ember-qunit';", | ||
"import hbs from 'htmlbars-inline-precompile';", | ||
"moduleForComponent('x-foo'", | ||
"integration: true", | ||
"{{x-foo}}", | ||
"{{#x-foo}}" | ||
] | ||
} | ||
] | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
var QUnit = require('qunitjs'); | ||
var moduleForBlueprint = require('ember-cli-blueprint-test-helpers/lib/qunit').moduleForBlueprint; | ||
var BlueprintHelper = require('ember-cli-blueprint-test-helpers/lib/helpers/blueprint-helper'); | ||
var EOL = require('os').EOL; | ||
|
||
moduleForBlueprint(QUnit, 'Acceptance | Blueprints | controller: generate and destroy', { | ||
afterEach: function(assert) { | ||
assert.ok(true, "Test completed successfully."); | ||
} | ||
}); | ||
|
||
QUnit.test('controller foo', function() { | ||
return BlueprintHelper.generateAndDestroy(['controller', 'foo'], { | ||
files: [ | ||
{ | ||
file: 'app/controllers/foo.js', | ||
contains: [ | ||
"import Ember from 'ember';", | ||
"export default Ember.Controller.extend({" + EOL + "});" | ||
] | ||
}, | ||
{ | ||
file: 'tests/unit/controllers/foo-test.js', | ||
contains: [ | ||
"import { moduleFor, test } from 'ember-qunit';", | ||
"moduleFor('controller:foo'" | ||
] | ||
} | ||
] | ||
}); | ||
}); | ||
|
||
QUnit.test('controller foo/bar', function() { | ||
return BlueprintHelper.generateAndDestroy(['controller', 'foo/bar'], { | ||
files: [ | ||
{ | ||
file: 'app/controllers/foo/bar.js', | ||
contains: [ | ||
"import Ember from 'ember';", | ||
"export default Ember.Controller.extend({" + EOL + "});" | ||
] | ||
}, | ||
{ | ||
file: 'tests/unit/controllers/foo/bar-test.js', | ||
contains: [ | ||
"import { moduleFor, test } from 'ember-qunit';", | ||
"moduleFor('controller:foo/bar'" | ||
] | ||
} | ||
] | ||
}); | ||
}); |
12 changes: 12 additions & 0 deletions
12
tests/node/blueprints/fixtures/acceptance-test-expected.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import { test } from 'qunit'; | ||
import moduleForAcceptance from 'my-app/tests/helpers/module-for-acceptance'; | ||
|
||
moduleForAcceptance('Acceptance | foo'); | ||
|
||
test('visiting /foo', function(assert) { | ||
visit('/foo'); | ||
|
||
andThen(function() { | ||
assert.equal(currentURL(), '/foo'); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
var QUnit = require('qunitjs'); | ||
var moduleForBlueprint = require('ember-cli-blueprint-test-helpers/lib/qunit').moduleForBlueprint; | ||
var BlueprintHelper = require('ember-cli-blueprint-test-helpers/lib/helpers/blueprint-helper'); | ||
var EOL = require('os').EOL; | ||
|
||
moduleForBlueprint(QUnit, 'Acceptance | Blueprints | helper: generate and destroy', { | ||
afterEach: function(assert) { | ||
assert.ok(true, "Test completed successfully."); | ||
} | ||
}); | ||
|
||
QUnit.test('helper foo-bar', function() { | ||
return BlueprintHelper.generateAndDestroy(['helper', 'foo-bar'], { | ||
files: [ | ||
{ | ||
file: 'app/helpers/foo-bar.js', | ||
contains: "import Ember from 'ember';" + EOL + EOL + | ||
"export function fooBar(params/*, hash*/) {" + EOL + | ||
" return params;" + EOL + | ||
"}" + EOL + EOL + | ||
"export default Ember.Helper.helper(fooBar);" | ||
}, | ||
{ | ||
file: 'tests/unit/helpers/foo-bar-test.js', | ||
contains: "import { fooBar } from '../../../helpers/foo-bar';" | ||
} | ||
] | ||
}); | ||
}); | ||
|
||
QUnit.test('helper foo/bar-baz', function() { | ||
return BlueprintHelper.generateAndDestroy(['helper', 'foo/bar-baz'], { | ||
files: [ | ||
{ | ||
file: 'app/helpers/foo/bar-baz.js', | ||
contains: "import Ember from 'ember';" + EOL + EOL + | ||
"export function fooBarBaz(params/*, hash*/) {" + EOL + | ||
" return params;" + EOL + | ||
"}" + EOL + EOL + | ||
"export default Ember.Helper.helper(fooBarBaz);" | ||
}, | ||
{ | ||
file: 'tests/unit/helpers/foo/bar-baz-test.js', | ||
contains: "import { fooBarBaz } from '../../../../helpers/foo/bar-baz';" | ||
} | ||
] | ||
}); | ||
}); |
Oops, something went wrong.