Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
29e6f54
Install blueprint test helpers
kimroen Dec 10, 2016
7092846
Set up the first test
kimroen Dec 10, 2016
4b63982
Add inital test for adapter blueprint
kimroen Dec 11, 2016
844df1b
Add inital test for adapter-test blueprint
kimroen Dec 11, 2016
dba6358
Add inital test for addon-import blueprint
kimroen Dec 11, 2016
66dccac
Add inital test for component and component-test blueprints
kimroen Dec 11, 2016
266119d
Add inital test for component-addon blueprint
kimroen Dec 11, 2016
0fce919
Add inital test for controller and controller-test blueprint
kimroen Dec 11, 2016
679521a
Add inital test for helper blueprint
kimroen Dec 11, 2016
8e11700
Add inital test for helper-addon blueprint
kimroen Dec 11, 2016
3e5eab6
Add inital test for initializer blueprint
kimroen Dec 11, 2016
a55e401
Add inital test for initializer-addon blueprint
kimroen Dec 11, 2016
7f61cb6
Add inital test for mixin blueprint
kimroen Dec 11, 2016
d5080f9
Add inital test for model blueprint
kimroen Dec 11, 2016
b8a36fa
Add inital test for resource blueprint
kimroen Dec 11, 2016
3f53682
Add inital test for route blueprint
kimroen Dec 11, 2016
ea0f86a
Add inital test for route-addon blueprint
kimroen Dec 11, 2016
745db6c
Add inital test for serializer blueprint
kimroen Dec 11, 2016
b3aded0
Add inital test for service blueprint
kimroen Dec 11, 2016
572db33
Add inital test for template blueprint
kimroen Dec 11, 2016
4bc05a7
Add inital test for test-helper blueprint
kimroen Dec 11, 2016
adea23e
Add inital test for transform blueprint
kimroen Dec 11, 2016
010eaac
Add inital test for util blueprint
kimroen Dec 11, 2016
105bc4a
Add inital test for view blueprint
kimroen Dec 11, 2016
d397293
Fix view-test blueprint
kimroen Jan 31, 2017
a80fa12
Update travis config
kimroen Jan 31, 2017
faa0fff
Move ember-try running to a script and add node tests
kimroen Jan 31, 2017
fefdaba
Trigger running node tests differently
kimroen Jan 31, 2017
24f8b6b
Move before install and install steps to scripts
kimroen Jan 31, 2017
e3f6603
Add bare minimum instructions for developing and running tests
kimroen Feb 1, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
/bower_components
/config/ember-try.js
/dist
/node-tests
/scripts
/tests
/tmp
**/.gitkeep
Expand Down
21 changes: 7 additions & 14 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,28 @@
---
language: node_js
node_js:
- "0.12"
- "4"

sudo: false

cache:
directories:
- node_modules
- $HOME/.npm
- $HOME/.cache # includes bowers cache

env:
- EMBER_TRY_SCENARIO=default
- EMBER_TRY_SCENARIO=ember-1-13
- EMBER_TRY_SCENARIO=ember-release
- EMBER_TRY_SCENARIO=ember-beta
- EMBER_TRY_SCENARIO=ember-canary
- NODE_TESTS=true

matrix:
fast_finish: true
allow_failures:
- env: EMBER_TRY_SCENARIO=ember-canary

before_install:
- export PATH=/usr/local/phantomjs-2.0.0/bin:$PATH
- "npm config set spin false"
- "npm install -g npm@^2"

install:
- npm install -g bower
- npm install
- bower install

script:
- ember try $EMBER_TRY_SCENARIO test
before_install: ./scripts/before-install.sh
install: ./scripts/install.sh
script: ./scripts/run-tests.sh
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,3 +135,18 @@ files are linted.
To avoid linting specific files or folders, you can put a file named `.coffeelintignore`
in the root of your project containing ignore-rules, one per line. This is just like a
`.gitignore`-file, and it will follow the same rules.

### Developing
- `git clone` this repository
- `npm install`
- `bower install`
- `npm link`

Because of the nature of this project, it needs to be consumed by an ember-cli project to be properly developed.

- Add `"ember-cli-coffeescript": "*"` to your consuming project's `package.json`
- From your project root run `npm link ember-cli-coffeescript`

### Running Tests
- `ember test`
- `npm run nodetest`
29 changes: 29 additions & 0 deletions node-tests/blueprints/acceptance-test-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
'use strict';

var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;

var expect = require('ember-cli-blueprint-test-helpers/chai').expect;

describe('Acceptance: ember generate and destroy acceptance-test', function() {
setupTestHooks(this);

it('acceptance-test foo', function() {
var args = ['acceptance-test', 'foo'];

return emberNew()
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('tests/acceptance/foo-test.coffee'))
.to.contain("`import Ember from 'ember'`")
.to.contain("`import { module, test } from 'qunit'`")
.to.contain("`import startApp from 'my-app/tests/helpers/start-app'`")
.to.contain("module 'Acceptance: Foo',")
.to.contain("test 'visiting /foo', (assert) ->")
.to.contain("visit '/foo'")
.to.contain("andThen ->")
.to.contain("assert.equal currentURL(), '/foo'");
}));
});
});
38 changes: 38 additions & 0 deletions node-tests/blueprints/adapter-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
'use strict';

var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;

var expect = require('ember-cli-blueprint-test-helpers/chai').expect;

describe('Acceptance: ember generate and destroy adapter', function() {
setupTestHooks(this);

it('adapter foo', function() {
var args = ['adapter', 'foo'];

return emberNew()
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('app/adapters/foo.coffee'))
.to.contain("`import ApplicationAdapter from './application'`")
.to.contain("FooAdapter = ApplicationAdapter.extend()")
.to.contain("`export default FooAdapter`");

expect(file('tests/unit/adapters/foo-test.coffee'))
.to.contain("moduleFor 'adapter:foo'")
}));
});

it('adapter-test foo', function() {
var args = ['adapter-test', 'foo'];

return emberNew()
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('tests/unit/adapters/foo-test.coffee'))
.to.contain("`import { moduleFor, test } from 'ember-qunit'`")
.to.contain("moduleFor 'adapter:foo'")
}));
});
});
22 changes: 22 additions & 0 deletions node-tests/blueprints/addon-import-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';

var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;

var expect = require('ember-cli-blueprint-test-helpers/chai').expect;

describe('Acceptance: ember generate and destroy addon-import', function() {
setupTestHooks(this);

it('addon-import foo', function() {
var args = ['addon-import', 'foo'];

return emberNew()
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('app/addon-imports/foo.coffee'))
.to.contain(`export { default } from 'my-app/addon-imports/foo'`);
}));
});
});
22 changes: 22 additions & 0 deletions node-tests/blueprints/component-addon-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';

var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;

var expect = require('ember-cli-blueprint-test-helpers/chai').expect;

describe('Acceptance: ember generate and destroy component-addon', function() {
setupTestHooks(this);

it('component-addon foo-bar', function() {
var args = ['component-addon', 'foo-bar'];

return emberNew({target: 'addon'})
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('app/components/foo-bar.coffee'))
.to.contain("`export { default } from 'my-addon/components/foo-bar'`");
}));
});
});
36 changes: 36 additions & 0 deletions node-tests/blueprints/component-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
'use strict';

var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;

var expect = require('ember-cli-blueprint-test-helpers/chai').expect;

describe('Acceptance: ember generate and destroy component', function() {
setupTestHooks(this);

it('component x-foo', function() {
var args = ['component', 'x-foo'];

return emberNew()
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('app/components/x-foo.coffee'))
.to.contain("`import Ember from 'ember'`")
.to.contain('XFooComponent = Ember.Component.extend()')
.to.contain('`export default XFooComponent`')
.to.not.contain('layout');

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

expect(file('tests/integration/components/x-foo-test.coffee'))
.to.contain("`import { test, moduleForComponent } from 'ember-qunit'`")
.to.contain("`import hbs from 'htmlbars-inline-precompile'`")
.to.contain("moduleForComponent 'x-foo', 'Integration | Component | x foo'")
.to.contain('integration: true')
.to.contain('{{x-foo}}')
.to.contain('{{#x-foo}}');
}));
});
});
28 changes: 28 additions & 0 deletions node-tests/blueprints/controller-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
'use strict';

var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;

var expect = require('ember-cli-blueprint-test-helpers/chai').expect;

describe('Acceptance: ember generate and destroy controller', function() {
setupTestHooks(this);

it('controller foo', function() {
var args = ['controller', 'foo'];

return emberNew()
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('app/controllers/foo.coffee'))
.to.contain("`import Ember from 'ember'`")
.to.contain('FooController = Ember.Controller.extend()')
.to.contain("`export default FooController`");

expect(file('tests/unit/controllers/foo-test.coffee'))
.to.contain("`import { moduleFor, test } from 'ember-qunit'`")
.to.contain("moduleFor 'controller:foo'");
}));
});
});
22 changes: 22 additions & 0 deletions node-tests/blueprints/helper-addon-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';

var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;

var expect = require('ember-cli-blueprint-test-helpers/chai').expect;

describe('Acceptance: ember generate and destroy helper-addon', function() {
setupTestHooks(this);

it('helper-addon foo-bar', function() {
var args = ['helper-addon', 'foo-bar'];

return emberNew({target: 'addon'})
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('app/helpers/foo-bar.coffee'))
.to.contain("`export { default, fooBar } from 'my-addon/helpers/foo-bar'`");
}));
});
});
31 changes: 31 additions & 0 deletions node-tests/blueprints/helper-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
'use strict';

var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;

var expect = require('ember-cli-blueprint-test-helpers/chai').expect;

describe('Acceptance: ember generate and destroy helper', function() {
setupTestHooks(this);

it('helper foo-bar', function() {
var args = ['helper', 'foo-bar'];

return emberNew()
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('app/helpers/foo-bar.coffee'))
.to.contain("`import Ember from 'ember'`")
.to.contain('fooBar = (params) ->')
.to.contain('FooBarHelper = Ember.Helper.helper fooBar')
.to.contain("`export { fooBar }`")
.to.contain("`export default FooBarHelper`");

expect(file('tests/unit/helpers/foo-bar-test.coffee'))
.to.contain("`import { fooBar } from 'my-app/helpers/foo-bar'`")
.to.contain("module 'Unit | Helper | foo bar'")
.to.contain("result = fooBar 42");
}));
});
});
22 changes: 22 additions & 0 deletions node-tests/blueprints/initializer-addon-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';

var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;

var expect = require('ember-cli-blueprint-test-helpers/chai').expect;

describe('Acceptance: ember generate and destroy initializer-addon', function() {
setupTestHooks(this);

it('initializer-addon foo-bar', function() {
var args = ['initializer-addon', 'foo-bar'];

return emberNew({ target: 'addon' })
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('app/initializers/foo-bar.coffee'))
.to.contain("`export { default, initialize } from 'my-addon/initializers/foo-bar'`");
}));
});
});
32 changes: 32 additions & 0 deletions node-tests/blueprints/initializer-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
'use strict';

var blueprintHelpers = require('ember-cli-blueprint-test-helpers/helpers');
var setupTestHooks = blueprintHelpers.setupTestHooks;
var emberNew = blueprintHelpers.emberNew;
var emberGenerateDestroy = blueprintHelpers.emberGenerateDestroy;

var expect = require('ember-cli-blueprint-test-helpers/chai').expect;

describe('Acceptance: ember generate and destroy initializer', function() {
setupTestHooks(this);

it('initializer foo-bar', function() {
var args = ['initializer', 'foo-bar'];

return emberNew()
.then(() => emberGenerateDestroy(args, (file) => {
expect(file('app/initializers/foo-bar.coffee'))
.to.contain('initialize = () ->')
.to.contain('FooBarInitializer =')
.to.contain("name: 'foo-bar'")
.to.contain("`export {initialize}`")
.to.contain("`export default FooBarInitializer`");

expect(file('tests/unit/initializers/foo-bar-test.coffee'))
.to.contain("`import Ember from 'ember'`")
.to.contain("`import { initialize } from 'my-app/initializers/foo-bar'`")
.to.contain("`import { module, test } from 'qunit'`")
.to.contain("module 'Unit | Initializer | foo bar'");
}));
});
});
Loading