diff --git a/.watchmanconfig b/.watchmanconfig index 5e9462c..e7834e3 100644 --- a/.watchmanconfig +++ b/.watchmanconfig @@ -1,3 +1,3 @@ { - "ignore_dirs": ["tmp"] + "ignore_dirs": ["tmp", "dist"] } diff --git a/Brocfile.js b/Brocfile.js deleted file mode 100644 index 0405469..0000000 --- a/Brocfile.js +++ /dev/null @@ -1,72 +0,0 @@ -/* jshint node: true */ -/* global require, module */ - -var EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); -var merge = require('broccoli-merge-trees'); -var babel = require('broccoli-babel-transpiler'); -var stew = require('broccoli-stew'); -var replace = require('broccoli-replace'); -var concat = require('broccoli-concat'); -var rename = stew.rename; -var funnel = require('broccoli-funnel'); -var babelOptions = require('./babel-options'); -var fs = require('fs'); -var es3 = require('broccoli-es3-safe-recast'); -var license = fs.readFileSync('./lib/license.js').toString(); - -/* - This Brocfile specifes the options for the dummy test app of this - addon, located in `/tests/dummy` - - This Brocfile does *not* influence how the addon or the app using it - behave. You most likely want to be modifying `./index.js` or app's Brocfile -*/ - -var app = new EmberAddon(); - -var addon = funnel('addon'); -var addonTree = merge(['addon', 'app']); - -var lib = babel('lib', babelOptions); - -var bower = funnel('bower_components/loader.js', {include: ['loader.js']}); -var compiled = babel(addonTree, babelOptions); -var moved = stew.mv(compiled, 'amd'); - -var combined = merge([moved, bower, lib]); - -var concatted = concat(combined, { - inputFiles: [ - 'loader.js', - 'ember.js', - 'ember-data.js', - 'amd/**/*.js', - 'globals.js' - ], - header: license + '\n(function() {\n', - footer: '\n' + - 'require("globals");\n' + - '})();\n', - outputFile: '/active-model-adapter.js' -}); - -var bower = stew.mv('config', '/'); -var bower = stew.find(bower, 'bower.json'); - -concatted = merge([concatted, bower]); - -concatted = replace(concatted, { - files: ['**/*.{js,json}'], - patterns: [ - { - match: /VERSION_STRING_PLACEHOLDER/g, - replacement: require('./package').version - }, - { - match: /active\-model\-adapter\//g, - replacement: '' - } - ] -}); - -module.exports = merge([app.toTree(), es3(concatted)]); diff --git a/bower.json b/bower.json index 1f9edc6..4dc232f 100644 --- a/bower.json +++ b/bower.json @@ -3,22 +3,20 @@ "version": "VERSION_STRING_PLACEHOLDER", "private": true, "dependencies": { - "ember": "^2.0.0", - "ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3", - "ember-cli-test-loader": "ember-cli-test-loader#0.1.3", - "ember-data": "~2.1.0", - "ember-load-initializers": "ember-cli/ember-load-initializers#0.1.4", - "ember-qunit": "0.3.3", - "ember-qunit-notifications": "0.0.7", - "ember-resolver": "~0.1.15", + "ember": "^2.2.0", + "ember-cli-shims": "0.0.6", + "ember-cli-test-loader": "0.2.1", + "ember-data": "~2.2.1", + "ember-load-initializers": "0.1.7", + "ember-qunit-notifications": "0.1.0", "jquery": "^1.11.1", - "qunit": "~1.17.1", - "pretender": "^0.9.0" + "qunit": "~1.20.0", + "pretender": "^0.10.1" }, "devDependencies": { - "loader.js": "~3.2.1" + "loader.js": "~3.5.0" }, "resolutions": { - "ember": "^2.0.0" + "ember": "^2.2.0" } } diff --git a/config/ember-try.js b/config/ember-try.js index 83dab0f..3e88bc6 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -1,3 +1,4 @@ +/*jshint node:true*/ module.exports = { scenarios: [ { diff --git a/config/environment.js b/config/environment.js index 0dfaed4..28a787b 100644 --- a/config/environment.js +++ b/config/environment.js @@ -1,3 +1,4 @@ +/*jshint node:true*/ 'use strict'; module.exports = function(/* environment, appConfig */) { diff --git a/ember-cli-build.js b/ember-cli-build.js new file mode 100644 index 0000000..73fbcbc --- /dev/null +++ b/ember-cli-build.js @@ -0,0 +1,74 @@ +/*jshint node:true*/ +/* global require, module */ +var EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); +var merge = require('broccoli-merge-trees'); +var babel = require('broccoli-babel-transpiler'); +var stew = require('broccoli-stew'); +var replace = require('broccoli-replace'); +var concat = require('broccoli-concat'); +var rename = stew.rename; +var funnel = require('broccoli-funnel'); +var babelOptions = require('./babel-options'); +var fs = require('fs'); +var es3 = require('broccoli-es3-safe-recast'); +var license = fs.readFileSync('./lib/license.js').toString(); + +module.exports = function(defaults) { + var app = new EmberAddon(defaults, { + // Add options here + }); + + /* + This build file specifes the options for the dummy test app of this + addon, located in `/tests/dummy` + This build file does *not* influence how the addon or the app using it + behave. You most likely want to be modifying `./index.js` or app's build file + */ + + var addon = funnel('addon'); + var addonTree = merge(['addon', 'app']); + + var lib = babel('lib', babelOptions); + + var bower = funnel('bower_components/loader.js', {include: ['loader.js']}); + var compiled = babel(addonTree, babelOptions); + var moved = stew.mv(compiled, 'amd'); + + var combined = merge([moved, bower, lib]); + + var concatted = concat(combined, { + inputFiles: [ + 'loader.js', + 'ember.js', + 'ember-data.js', + 'amd/**/*.js', + 'globals.js' + ], + header: license + '\n(function() {\n', + footer: '\n' + + 'require("globals");\n' + + '})();\n', + outputFile: '/active-model-adapter.js' + }); + + var bower = stew.mv('config', '/'); + var bower = stew.find(bower, 'bower.json'); + + concatted = merge([concatted, bower]); + + concatted = replace(concatted, { + files: ['**/*.{js,json}'], + patterns: [ + { + match: /VERSION_STRING_PLACEHOLDER/g, + replacement: require('./package').version + }, + { + match: /active\-model\-adapter\//g, + replacement: '' + } + ] + }); + + return merge([app.toTree(), es3(concatted)]); +}; diff --git a/package.json b/package.json index 8d077ee..0b58b96 100644 --- a/package.json +++ b/package.json @@ -18,29 +18,33 @@ "author": "", "license": "MIT", "devDependencies": { - "broccoli-asset-rev": "^2.0.2", - "broccoli-babel-transpiler": "^5.1.1", + "broccoli-asset-rev": "^2.4.1", + "broccoli-babel-transpiler": "^5.5.0", "broccoli-concat": "0.0.13", "broccoli-es3-safe-recast": "^2.0.0", - "broccoli-funnel": "^0.2.3", - "broccoli-merge-trees": "^0.2.1", - "broccoli-replace": "^0.3.1", - "broccoli-stew": "^0.3.2", - "ember-cli": "^1.13.0", - "ember-cli-app-version": "0.3.3", + "broccoli-funnel": "^1.0.1", + "broccoli-merge-trees": "^1.1.0", + "broccoli-replace": "^0.11.0", + "broccoli-stew": "^1.0.4", + "ember-cli": "^2.2.0-beta.1", + "ember-cli-app-version": "^1.0.0", "ember-cli-content-security-policy": "0.4.0", - "ember-cli-dependency-checker": "^1.0.0", - "ember-cli-htmlbars": "0.7.6", - "ember-cli-inject-live-reload": "^1.3.0", - "ember-cli-pretender": "0.4.0", - "ember-cli-qunit": "0.3.13", - "ember-cli-uglify": "^1.0.1", - "ember-data": "^2.0.0", - "ember-disable-prototype-extensions": "^1.0.0", - "ember-disable-proxy-controllers": "^1.0.0", - "ember-export-application-global": "^1.0.2", - "ember-try": "0.0.7", - "ember-watson": "^0.5.7", + "ember-cli-dependency-checker": "^1.2.0", + "ember-cli-htmlbars": "^1.0.1", + "ember-cli-htmlbars-inline-precompile": "^0.3.1", + "ember-cli-inject-live-reload": "^1.4.0", + "ember-cli-pretender": "0.5.0", + "ember-cli-qunit": "^1.1.0", + "ember-cli-release": "0.2.8", + "ember-cli-sri": "^1.2.0", + "ember-cli-uglify": "^1.2.0", + "ember-data": "^2.2.1", + "ember-disable-prototype-extensions": "^1.0.1", + "ember-disable-proxy-controllers": "^1.0.1", + "ember-export-application-global": "^1.0.5", + "ember-resolver": "^2.0.3", + "ember-try": "~0.0.8", + "ember-watson": "^0.7.0", "github": "^0.2.4", "rsvp": "^3.1.0" }, @@ -48,7 +52,7 @@ "ember-addon" ], "dependencies": { - "ember-cli-babel": "^5.0.0" + "ember-cli-babel": "^5.1.6" }, "ember-addon": { "configPath": "tests/dummy/config" diff --git a/tests/.jshintrc b/tests/.jshintrc index ea8b88f..93ac797 100755 --- a/tests/.jshintrc +++ b/tests/.jshintrc @@ -26,7 +26,7 @@ "node": false, "browser": false, "boss": true, - "curly": false, + "curly": true, "debug": false, "devel": false, "eqeqeq": true, diff --git a/tests/dummy/app/app.js b/tests/dummy/app/app.js index 8d66b95..1b0516c 100644 --- a/tests/dummy/app/app.js +++ b/tests/dummy/app/app.js @@ -1,16 +1,16 @@ import Ember from 'ember'; -import Resolver from 'ember/resolver'; +import Resolver from 'ember-resolver'; import loadInitializers from 'ember/load-initializers'; import config from './config/environment'; -var App; +let App; Ember.MODEL_FACTORY_INJECTIONS = true; App = Ember.Application.extend({ modulePrefix: config.modulePrefix, podModulePrefix: config.podModulePrefix, - Resolver: Resolver + Resolver }); loadInitializers(App, config.modulePrefix); diff --git a/tests/dummy/app/index.html b/tests/dummy/app/index.html index 1c49d36..c9b4327 100644 --- a/tests/dummy/app/index.html +++ b/tests/dummy/app/index.html @@ -7,19 +7,19 @@ - {{content-for 'head'}} + {{content-for "head"}} - {{content-for 'head-footer'}} + {{content-for "head-footer"}} - {{content-for 'body'}} + {{content-for "body"}} - {{content-for 'body-footer'}} + {{content-for "body-footer"}} diff --git a/tests/dummy/app/router.js b/tests/dummy/app/router.js index cef554b..3bba78e 100644 --- a/tests/dummy/app/router.js +++ b/tests/dummy/app/router.js @@ -1,7 +1,7 @@ import Ember from 'ember'; import config from './config/environment'; -var Router = Ember.Router.extend({ +const Router = Ember.Router.extend({ location: config.locationType }); diff --git a/tests/dummy/app/templates/application.hbs b/tests/dummy/app/templates/application.hbs index 05eb936..f8bc38e 100755 --- a/tests/dummy/app/templates/application.hbs +++ b/tests/dummy/app/templates/application.hbs @@ -1,3 +1,3 @@ -

Welcome to Ember.js

+

Welcome to Ember

{{outlet}} diff --git a/tests/helpers/destroy-app.js b/tests/helpers/destroy-app.js new file mode 100644 index 0000000..c3d4d1a --- /dev/null +++ b/tests/helpers/destroy-app.js @@ -0,0 +1,5 @@ +import Ember from 'ember'; + +export default function destroyApp(application) { + Ember.run(application, 'destroy'); +} diff --git a/tests/helpers/module-for-acceptance.js b/tests/helpers/module-for-acceptance.js new file mode 100644 index 0000000..ed23003 --- /dev/null +++ b/tests/helpers/module-for-acceptance.js @@ -0,0 +1,23 @@ +import { module } from 'qunit'; +import startApp from '../helpers/start-app'; +import destroyApp from '../helpers/destroy-app'; + +export default function(name, options = {}) { + module(name, { + beforeEach() { + this.application = startApp(); + + if (options.beforeEach) { + options.beforeEach.apply(this, arguments); + } + }, + + afterEach() { + destroyApp(this.application); + + if (options.afterEach) { + options.afterEach.apply(this, arguments); + } + } + }); +} diff --git a/tests/helpers/resolver.js b/tests/helpers/resolver.js index 28f4ece..ac94b1b 100644 --- a/tests/helpers/resolver.js +++ b/tests/helpers/resolver.js @@ -1,7 +1,7 @@ -import Resolver from 'ember/resolver'; +import Resolver from 'ember-resolver'; import config from '../../config/environment'; -var resolver = Resolver.create(); +const resolver = Resolver.create(); resolver.namespace = { modulePrefix: config.modulePrefix, diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js index 16cc7c3..e098f1d 100644 --- a/tests/helpers/start-app.js +++ b/tests/helpers/start-app.js @@ -1,15 +1,14 @@ import Ember from 'ember'; import Application from '../../app'; -import Router from '../../router'; import config from '../../config/environment'; export default function startApp(attrs) { - var application; + let application; - var attributes = Ember.merge({}, config.APP); + let attributes = Ember.merge({}, config.APP); attributes = Ember.merge(attributes, attrs); // use defaults, but you can override; - Ember.run(function() { + Ember.run(() => { application = Application.create(attributes); application.setupForTesting(); application.injectTestHelpers(); diff --git a/tests/index.html b/tests/index.html index 8fea6fe..2d3ff6a 100644 --- a/tests/index.html +++ b/tests/index.html @@ -7,27 +7,28 @@ - {{content-for 'head'}} - {{content-for 'test-head'}} + {{content-for "head"}} + {{content-for "test-head"}} - {{content-for 'head-footer'}} - {{content-for 'test-head-footer'}} + {{content-for "head-footer"}} + {{content-for "test-head-footer"}} + {{content-for "body"}} + {{content-for "test-body"}} - {{content-for 'body'}} - {{content-for 'test-body'}} - + + - {{content-for 'body-footer'}} - {{content-for 'test-body-footer'}} + {{content-for "body-footer"}} + {{content-for "test-body-footer"}}