From abefcb7265c0fd47128aa37c3a86562af36659c3 Mon Sep 17 00:00:00 2001 From: simon Date: Wed, 26 Apr 2017 20:54:44 +0200 Subject: [PATCH 1/7] Add FastBoot tests --- .travis.yml | 2 + config/ember-try.js | 18 + .../fixtures/fastboot/app/router.js | 13 + .../fastboot/app/routes/application.js | 10 + .../fastboot/app/routes/other-page.js | 10 + .../fixtures/fastboot/app/templates/head.hbs | 5 + .../fixtures/fastboot/app/templates/index.hbs | 1 + .../fastboot/app/templates/other-page.hbs | 1 + fastboot-tests/index-test.js | 21 ++ fastboot-tests/other-page-test.js | 21 ++ package.json | 2 + yarn.lock | 316 +++++++++++++++++- 12 files changed, 406 insertions(+), 14 deletions(-) create mode 100644 fastboot-tests/fixtures/fastboot/app/router.js create mode 100644 fastboot-tests/fixtures/fastboot/app/routes/application.js create mode 100644 fastboot-tests/fixtures/fastboot/app/routes/other-page.js create mode 100644 fastboot-tests/fixtures/fastboot/app/templates/head.hbs create mode 100644 fastboot-tests/fixtures/fastboot/app/templates/index.hbs create mode 100644 fastboot-tests/fixtures/fastboot/app/templates/other-page.hbs create mode 100644 fastboot-tests/index-test.js create mode 100644 fastboot-tests/other-page-test.js diff --git a/.travis.yml b/.travis.yml index b1d2075..69e879f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,6 +16,8 @@ env: - EMBER_TRY_SCENARIO=ember-beta - EMBER_TRY_SCENARIO=ember-canary - EMBER_TRY_SCENARIO=ember-default + - EMBER_TRY_SCENARIO=fastboot + - EMBER_TRY_SCENARIO=fastboot-ember-2.9 matrix: fast_finish: true diff --git a/config/ember-try.js b/config/ember-try.js index a070124..dfb9291 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -86,6 +86,24 @@ module.exports = { npm: { devDependencies: {} } + }, + { + name: 'fastboot', + command: 'ember fastboot:test', + npm: { + devDependencies: { + 'ember-source': null + } + } + }, + { + name: 'fastboot-ember-2.9', + command: 'ember fastboot:test --ember-version 2.9.0', + npm: { + devDependencies: { + 'ember-source': null + } + } } ] }; diff --git a/fastboot-tests/fixtures/fastboot/app/router.js b/fastboot-tests/fixtures/fastboot/app/router.js new file mode 100644 index 0000000..c10e94b --- /dev/null +++ b/fastboot-tests/fixtures/fastboot/app/router.js @@ -0,0 +1,13 @@ +import Ember from 'ember'; +import config from './config/environment'; + +const Router = Ember.Router.extend({ + location: config.locationType, + rootURL: config.rootURL +}); + +Router.map(function() { + this.route('other-page'); +}); + +export default Router; diff --git a/fastboot-tests/fixtures/fastboot/app/routes/application.js b/fastboot-tests/fixtures/fastboot/app/routes/application.js new file mode 100644 index 0000000..378a3ce --- /dev/null +++ b/fastboot-tests/fixtures/fastboot/app/routes/application.js @@ -0,0 +1,10 @@ +import Ember from 'ember'; + +const { set } = Ember; + +export default Ember.Route.extend({ + headData: Ember.inject.service(), + afterModel() { + set(this, 'headData.title', "Hello page"); + } +}); diff --git a/fastboot-tests/fixtures/fastboot/app/routes/other-page.js b/fastboot-tests/fixtures/fastboot/app/routes/other-page.js new file mode 100644 index 0000000..6d1bdcd --- /dev/null +++ b/fastboot-tests/fixtures/fastboot/app/routes/other-page.js @@ -0,0 +1,10 @@ +import Ember from 'ember'; + +const { set } = Ember; + +export default Ember.Route.extend({ + headData: Ember.inject.service(), + afterModel() { + set(this, 'headData.title', "Other page"); + } +}); diff --git a/fastboot-tests/fixtures/fastboot/app/templates/head.hbs b/fastboot-tests/fixtures/fastboot/app/templates/head.hbs new file mode 100644 index 0000000..a84cd0e --- /dev/null +++ b/fastboot-tests/fixtures/fastboot/app/templates/head.hbs @@ -0,0 +1,5 @@ + + + + + diff --git a/fastboot-tests/fixtures/fastboot/app/templates/index.hbs b/fastboot-tests/fixtures/fastboot/app/templates/index.hbs new file mode 100644 index 0000000..42d6e79 --- /dev/null +++ b/fastboot-tests/fixtures/fastboot/app/templates/index.hbs @@ -0,0 +1 @@ +

Hello page

\ No newline at end of file diff --git a/fastboot-tests/fixtures/fastboot/app/templates/other-page.hbs b/fastboot-tests/fixtures/fastboot/app/templates/other-page.hbs new file mode 100644 index 0000000..9842954 --- /dev/null +++ b/fastboot-tests/fixtures/fastboot/app/templates/other-page.hbs @@ -0,0 +1 @@ +

Other page

diff --git a/fastboot-tests/index-test.js b/fastboot-tests/index-test.js new file mode 100644 index 0000000..704c5d7 --- /dev/null +++ b/fastboot-tests/index-test.js @@ -0,0 +1,21 @@ +'use strict'; + +const expect = require('chai').expect; +const setupTest = require('ember-fastboot-addon-tests').setupTest; + +describe('index', function() { + setupTest('fastboot'/*, options */); + + it('renders', function() { + return this.visit('/') + .then(function(res) { + let $ = res.jQuery; + let response = res.response; + + expect(response.statusCode).to.equal(200); + expect($('h1').text().trim()).to.equal('Hello page'); + expect($('meta[property="og:title"]', 'head').attr('content')).to.equal('Hello page'); + }); + }); + +}); \ No newline at end of file diff --git a/fastboot-tests/other-page-test.js b/fastboot-tests/other-page-test.js new file mode 100644 index 0000000..607bbf8 --- /dev/null +++ b/fastboot-tests/other-page-test.js @@ -0,0 +1,21 @@ +'use strict'; + +const expect = require('chai').expect; +const setupTest = require('ember-fastboot-addon-tests').setupTest; + +describe('otherPage', function() { + setupTest('fastboot'/*, options */); + + it('renders', function() { + return this.visit('/other-page') + .then(function(res) { + let $ = res.jQuery; + let response = res.response; + + expect(response.statusCode).to.equal(200); + expect($('h1').text().trim()).to.equal('Other page'); + expect($('meta[property="og:title"]', 'head').attr('content')).to.equal('Other page'); + }); + }); + +}); \ No newline at end of file diff --git a/package.json b/package.json index 3c62dae..544194d 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "license": "MIT", "devDependencies": { "broccoli-asset-rev": "^2.4.5", + "chai": "^3.5.0", "ember-ajax": "^2.4.1", "ember-cli": "2.12.2", "ember-cli-app-version": "^1.0.0", @@ -36,6 +37,7 @@ "ember-disable-prototype-extensions": "^1.1.0", "ember-disable-proxy-controllers": "^1.0.1", "ember-export-application-global": "^1.0.5", + "ember-fastboot-addon-tests": "^0.3.1", "ember-load-initializers": "^0.6.0", "ember-resolver": "^2.0.3", "ember-source": "~2.12.0", diff --git a/yarn.lock b/yarn.lock index 19f8c05..a8cd058 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,10 @@ # yarn lockfile v1 +abab@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" + abbrev@1: version "1.1.0" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" @@ -13,6 +17,12 @@ accepts@1.3.3, accepts@~1.3.3: mime-types "~2.1.11" negotiator "0.6.1" +acorn-globals@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" + dependencies: + acorn "^4.0.4" + acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" @@ -23,7 +33,7 @@ acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.3: +acorn@^4.0.3, acorn@^4.0.4: version "4.0.11" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" @@ -94,6 +104,10 @@ ansicolors@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" +any-promise@^1.0.0, any-promise@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + anymatch@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" @@ -180,6 +194,10 @@ assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" +assertion-error@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" + ast-traverse@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ast-traverse/-/ast-traverse-0.1.1.tgz#69cf2b8386f19dcda1bb1e05d68fe359d8897de6" @@ -1211,6 +1229,10 @@ broccoli-uglify-sourcemap@^1.0.0: uglify-js "^2.7.0" walk-sync "^0.1.3" +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + browserslist@^1.4.0: version "1.7.7" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" @@ -1294,6 +1316,14 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" +chai@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + dependencies: + assertion-error "^1.0.1" + deep-eql "^0.1.3" + type-detect "^1.0.0" + chalk@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" @@ -1533,6 +1563,10 @@ content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" +content-type-parser@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" + content-type@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" @@ -1569,6 +1603,12 @@ core-object@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/core-object/-/core-object-1.1.0.tgz#86d63918733cf9da1a5aae729e62c0a88e66ad0a" +core-object@^2.0.6: + version "2.1.1" + resolved "https://registry.yarnpkg.com/core-object/-/core-object-2.1.1.tgz#4b7a5f1edefcb1e6d0dcb58eab1b9f90bfc666a8" + dependencies: + chalk "^1.1.3" + core-object@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/core-object/-/core-object-3.1.0.tgz#f5219fec2a19c40956f1c723d121890c88c5f677" @@ -1579,6 +1619,15 @@ core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +cpr@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/cpr/-/cpr-2.0.2.tgz#9e44be91101f644a3e1f8c908712b70cdd547056" + dependencies: + graceful-fs "^4.1.5" + minimist "^1.2.0" + mkdirp "~0.5.1" + rimraf "^2.5.4" + cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -1593,6 +1642,16 @@ cryptiles@2.x.x: dependencies: boom "2.x.x" +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" + +"cssstyle@>= 0.2.37 < 0.3.0": + version "0.2.37" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" + dependencies: + cssom "0.3.x" + d@1: version "1.0.0" resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" @@ -1617,6 +1676,12 @@ debug@2.3.3: dependencies: ms "0.7.2" +debug@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" + dependencies: + ms "0.7.2" + debug@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" @@ -1633,6 +1698,12 @@ decamelize@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +deep-eql@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + dependencies: + type-detect "0.1.1" + deep-extend@~0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" @@ -1715,6 +1786,10 @@ detective@^4.3.1: acorn "^4.0.3" defined "^1.0.0" +diff@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + diff@^1.3.1: version "1.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" @@ -1756,6 +1831,23 @@ ember-ajax@^2.4.1: dependencies: ember-cli-babel "^5.1.5" +ember-cli-addon-tests@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/ember-cli-addon-tests/-/ember-cli-addon-tests-0.6.3.tgz#be4daba4d34b77c2bc830dedc88c9baa6903243a" + dependencies: + chalk "^1.1.3" + cpr "^2.0.0" + debug "^2.2.0" + exists-sync "0.0.4" + findup-sync "^0.4.3" + fs-extra "^2.0.0" + fs-promise "^2.0.0" + lodash "^4.0.0" + mkdirp "^0.5.1" + rsvp "^3.1.0" + symlink-or-copy "^1.1.3" + temp "^0.8.3" + ember-cli-app-version@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ember-cli-app-version/-/ember-cli-app-version-1.0.1.tgz#d135eba75f30e791d8a5e5844f1251dcbcc40438" @@ -2081,6 +2173,23 @@ ember-export-application-global@^1.0.5: dependencies: ember-cli-babel "^5.1.10" +ember-fastboot-addon-tests@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/ember-fastboot-addon-tests/-/ember-fastboot-addon-tests-0.3.1.tgz#2aba4eb043d6b61aa3bc629894d4898998749f44" + dependencies: + chalk "^1.1.3" + core-object "^2.0.6" + debug "^2.2.0" + ember-cli-addon-tests "^0.6.3" + ember-cli-babel "^5.1.6" + ember-router-generator "^1.2.2" + fs-extra "^0.30.0" + jquery "^3.1.0" + jsdom "^9.5.0" + mocha "^3.0.2" + request "^2.74.0" + rsvp "^3.3.1" + ember-load-initializers@^0.6.0: version "0.6.3" resolved "https://registry.yarnpkg.com/ember-load-initializers/-/ember-load-initializers-0.6.3.tgz#f47396ad271ba77294068c98f992a5f19705441a" @@ -2100,7 +2209,7 @@ ember-resolver@^2.0.3: ember-cli-babel "^5.1.6" ember-cli-version-checker "^1.1.6" -ember-router-generator@^1.0.0: +ember-router-generator@^1.0.0, ember-router-generator@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/ember-router-generator/-/ember-router-generator-1.2.3.tgz#8ed2ca86ff323363120fc14278191e9e8f1315ee" dependencies: @@ -2276,10 +2385,21 @@ escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" -escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" +escodegen@^1.6.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + escope@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" @@ -2344,7 +2464,7 @@ esprima-fb@~15001.1001.0-dev-harmony-fb: version "15001.1001.0-dev-harmony-fb" resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz#43beb57ec26e8cf237d3dd8b33e42533577f2659" -esprima@^2.6.0: +esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" @@ -2365,6 +2485,10 @@ esrecurse@^4.1.0: estraverse "~4.1.0" object-assign "^4.0.1" +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -2708,6 +2832,15 @@ fs-extra@^1.0.0: jsonfile "^2.1.0" klaw "^1.0.0" +fs-promise@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fs-promise/-/fs-promise-2.0.2.tgz#cfea45c80f46480a3fd176213fa22abc8c159521" + dependencies: + any-promise "^1.3.0" + fs-extra "^2.0.0" + mz "^2.6.0" + thenify-all "^1.6.0" + fs-readdir-recursive@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz#315b4fb8c1ca5b8c47defef319d073dad3568059" @@ -2885,7 +3018,7 @@ globby@^5.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -2893,6 +3026,10 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -2946,6 +3083,10 @@ has-cors@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3020,6 +3161,12 @@ hosted-git-info@^2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" +html-encoding-sniffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da" + dependencies: + whatwg-encoding "^1.0.1" + http-errors@~1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257" @@ -3044,6 +3191,10 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" +iconv-lite@0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + iconv-lite@^0.4.5, iconv-lite@~0.4.13: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" @@ -3323,7 +3474,7 @@ jodid25519@^1.0.0: dependencies: jsbn "~0.1.0" -jquery@^3.1.1: +jquery@^3.1.0, jquery@^3.1.1: version "3.2.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" @@ -3354,6 +3505,30 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" +jsdom@^9.5.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" + dependencies: + abab "^1.0.3" + acorn "^4.0.4" + acorn-globals "^3.1.0" + array-equal "^1.0.0" + content-type-parser "^1.0.1" + cssom ">= 0.3.2 < 0.4.0" + cssstyle ">= 0.2.37 < 0.3.0" + escodegen "^1.6.1" + html-encoding-sniffer "^1.0.1" + nwmatcher ">= 1.3.9 < 2.0.0" + parse5 "^1.5.1" + request "^2.79.0" + sax "^1.2.1" + symbol-tree "^3.2.1" + tough-cookie "^2.3.2" + webidl-conversions "^4.0.0" + whatwg-encoding "^1.0.1" + whatwg-url "^4.3.0" + xml-name-validator "^2.0.1" + jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" @@ -3498,6 +3673,10 @@ lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + lodash._baseflatten@^3.0.0: version "3.1.4" resolved "https://registry.yarnpkg.com/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz#0770ff80131af6e34f3b511796a7ba5214e65ff7" @@ -3549,6 +3728,14 @@ lodash.clonedeep@^4.4.1: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.debounce@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-3.1.1.tgz#812211c378a94cc29d5aa4e3346cf0bfce3a7df5" @@ -3822,7 +4009,7 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -3832,6 +4019,22 @@ mktemp@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/mktemp/-/mktemp-0.4.0.tgz#6d0515611c8a8c84e484aa2000129b98e981ff0b" +mocha@^3.0.2: + version "3.3.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.3.0.tgz#d29b7428d3f52c82e2e65df1ecb7064e1aabbfb5" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.0" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + moment-timezone@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.3.1.tgz#3ef47856b02d53b718a10a5ec2023aa299e07bf5" @@ -3880,6 +4083,14 @@ mute-stream@0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db" +mz@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.6.0.tgz#c8b8521d958df0a4f2768025db69c719ee4ef1ce" + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + nan@^2.3.0: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" @@ -3975,6 +4186,10 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" +"nwmatcher@>= 1.3.9 < 2.0.0": + version "1.3.9" + resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a" + oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" @@ -4025,7 +4240,7 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.2: +optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: @@ -4109,6 +4324,10 @@ parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" +parse5@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" + parsejson@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" @@ -4456,7 +4675,7 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@^2.81.0: +request@^2.74.0, request@^2.79.0, request@^2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -4524,7 +4743,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.3.2, rimraf@^2.3.4, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.3, rimraf@^2.6.1: +rimraf@2, rimraf@^2.2.8, rimraf@^2.3.2, rimraf@^2.3.4, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: @@ -4534,7 +4753,7 @@ rimraf@~2.2.6: version "2.2.8" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" -rsvp@^3.0.14, rsvp@^3.0.16, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.0.6, rsvp@^3.1.0, rsvp@^3.2.1, rsvp@^3.3.3, rsvp@^3.4.0: +rsvp@^3.0.14, rsvp@^3.0.16, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.0.6, rsvp@^3.1.0, rsvp@^3.2.1, rsvp@^3.3.1, rsvp@^3.3.3, rsvp@^3.4.0: version "3.5.0" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.5.0.tgz#a62c573a4ae4e1dfd0697ebc6242e79c681eaa34" @@ -4588,6 +4807,10 @@ sanitize-filename@^1.5.3: dependencies: truncate-utf8-bytes "^1.0.0" +sax@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" + semver@^4.1.0, semver@^4.3.1: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" @@ -4783,6 +5006,12 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + dependencies: + amdefine ">=0.0.4" + spawn-args@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/spawn-args/-/spawn-args-0.2.0.tgz#fb7d0bd1d70fd4316bd9e3dec389e65f9d6361bb" @@ -4910,6 +5139,12 @@ sum-up@^1.0.1: dependencies: chalk "^1.0.0" +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + supports-color@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" @@ -4918,7 +5153,11 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -symlink-or-copy@^1.0.0, symlink-or-copy@^1.0.1, symlink-or-copy@^1.1.8: +symbol-tree@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" + +symlink-or-copy@^1.0.0, symlink-or-copy@^1.0.1, symlink-or-copy@^1.1.3, symlink-or-copy@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/symlink-or-copy/-/symlink-or-copy-1.1.8.tgz#cabe61e0010c1c023c173b25ee5108b37f4b4aa3" @@ -4967,7 +5206,7 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" -temp@0.8.3: +temp@0.8.3, temp@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" dependencies: @@ -5013,6 +5252,18 @@ text-table@~0.2.0: version "2.1.0" resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.1.0.tgz#1be0dc2a0dc244d44be8a09af6a85afb93c4dbc3" +thenify-all@^1.0.0, thenify-all@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.2.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.2.1.tgz#251fd1c80aff6e5cf57cb179ab1fcb724269bd11" + dependencies: + any-promise "^1.0.0" + through@^2.3.6, through@^2.3.8, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -5052,12 +5303,16 @@ to-fast-properties@^1.0.0, to-fast-properties@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.2.tgz#f3f5c0c3ba7299a7ef99427e44633257ade43320" -tough-cookie@~2.3.0: +tough-cookie@^2.3.2, tough-cookie@~2.3.0: version "2.3.2" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" dependencies: punycode "^1.4.1" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + tree-sync@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/tree-sync/-/tree-sync-1.2.2.tgz#2cf76b8589f59ffedb58db5a3ac7cb013d0158b7" @@ -5106,6 +5361,14 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-detect@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + +type-detect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + type-is@~1.6.14: version "1.6.15" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" @@ -5228,6 +5491,14 @@ watch@~0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + +webidl-conversions@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.1.tgz#8015a17ab83e7e1b311638486ace81da6ce206a0" + websocket-driver@>=0.5.1: version "0.6.5" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" @@ -5238,6 +5509,19 @@ websocket-extensions@>=0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" +whatwg-encoding@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" + dependencies: + iconv-lite "0.4.13" + +whatwg-url@^4.3.0: + version "4.7.1" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.7.1.tgz#df4dc2e3f25a63b1fa5b32ed6d6c139577d690de" + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which@^1.2.12, which@^1.2.9: version "1.2.14" resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" @@ -5301,6 +5585,10 @@ xdg-basedir@^2.0.0: dependencies: os-homedir "^1.0.0" +xml-name-validator@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" + xmldom@^0.1.19: version "0.1.27" resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" From 8777d6a7b5527099a3e24b8fa06a89326b6a265c Mon Sep 17 00:00:00 2001 From: simon Date: Wed, 26 Apr 2017 21:32:21 +0200 Subject: [PATCH 2/7] Fix for FastBoot 1.0 --- .../instance-initializers/fastboot/head.js | 6 +++++- .../{browser => }/head.js | 8 ++++++-- app/instance-initializers/fastboot/head.js | 6 +++++- .../{browser => }/head.js | 8 ++++++-- index.js | 19 ++++++++----------- package.json | 3 +-- yarn.lock | 12 +----------- 7 files changed, 32 insertions(+), 30 deletions(-) rename app-lt-2-10/instance-initializers/{browser => }/head.js (80%) rename app/instance-initializers/{browser => }/head.js (76%) diff --git a/app-lt-2-10/instance-initializers/fastboot/head.js b/app-lt-2-10/instance-initializers/fastboot/head.js index 8ef6b54..99c99cd 100644 --- a/app-lt-2-10/instance-initializers/fastboot/head.js +++ b/app-lt-2-10/instance-initializers/fastboot/head.js @@ -15,5 +15,9 @@ export function initialize(instance) { export default { name: 'head-fastboot', - initialize: initialize + initialize() { + if (typeof FastBoot !== 'undefined') { + initialize(...arguments); + } + } }; diff --git a/app-lt-2-10/instance-initializers/browser/head.js b/app-lt-2-10/instance-initializers/head.js similarity index 80% rename from app-lt-2-10/instance-initializers/browser/head.js rename to app-lt-2-10/instance-initializers/head.js index 1080249..2fccc47 100644 --- a/app-lt-2-10/instance-initializers/browser/head.js +++ b/app-lt-2-10/instance-initializers/head.js @@ -1,5 +1,5 @@ import Ember from 'ember'; -import ENV from '../../config/environment'; +import ENV from '../config/environment'; export function initialize(instance) { if (ENV['ember-cli-head'] && ENV['ember-cli-head']['suppressBrowserRender']) { return true; } @@ -17,5 +17,9 @@ export function initialize(instance) { export default { name: 'head-browser', - initialize: initialize + initialize() { + if (typeof FastBoot === 'undefined') { + initialize(...arguments); + } + } }; diff --git a/app/instance-initializers/fastboot/head.js b/app/instance-initializers/fastboot/head.js index e461eea..806f86b 100644 --- a/app/instance-initializers/fastboot/head.js +++ b/app/instance-initializers/fastboot/head.js @@ -7,5 +7,9 @@ export function initialize(owner) { export default { name: 'head-fastboot', - initialize: initialize + initialize() { + if (typeof FastBoot !== 'undefined') { + initialize(...arguments); + } + } }; diff --git a/app/instance-initializers/browser/head.js b/app/instance-initializers/head.js similarity index 76% rename from app/instance-initializers/browser/head.js rename to app/instance-initializers/head.js index c40d8cc..e2538df 100644 --- a/app/instance-initializers/browser/head.js +++ b/app/instance-initializers/head.js @@ -1,5 +1,5 @@ import Ember from 'ember'; -import ENV from '../../config/environment'; +import ENV from '../config/environment'; export function initialize(owner) { if (ENV['ember-cli-head'] && ENV['ember-cli-head']['suppressBrowserRender']) { return true; } @@ -16,5 +16,9 @@ export function initialize(owner) { export default { name: 'head-browser', - initialize: initialize + initialize() { + if (typeof FastBoot === 'undefined') { + initialize(...arguments); + } + } }; diff --git a/index.js b/index.js index e64f287..3cfed95 100644 --- a/index.js +++ b/index.js @@ -1,23 +1,22 @@ /* eslint-env node */ 'use strict'; -var path = require('path'); -var filterInitializers = require('fastboot-filter-initializers'); -var VersionChecker = require('ember-cli-version-checker'); -var mergeTrees = require('broccoli-merge-trees'); +const path = require('path'); +const VersionChecker = require('ember-cli-version-checker'); +const mergeTrees = require('broccoli-merge-trees'); module.exports = { name: 'ember-cli-head', - treeForApp: function(defaultTree) { - var checker = new VersionChecker(this); - var emberVersion = checker.for('ember-source', 'npm'); + treeForApp(defaultTree) { + let checker = new VersionChecker(this); + let emberVersion = checker.for('ember-source', 'npm'); if (!emberVersion.version) { emberVersion = checker.for('ember', 'bower'); } - var trees = [defaultTree]; + let trees = [defaultTree]; // 2.9.0-beta.1 - 2.9.0-beta.5 used glimmer2 (but 2.9.0 did not) // 2.10.0-beta.1+ includes glimmer2 @@ -25,8 +24,6 @@ module.exports = { trees.push(this.treeGenerator(path.resolve(this.root, 'app-lt-2-10'))); } - var tree = mergeTrees(trees, { overwrite: true }); - - return filterInitializers(tree); + return mergeTrees(trees, { overwrite: true }); } }; diff --git a/package.json b/package.json index 544194d..6427e9d 100644 --- a/package.json +++ b/package.json @@ -50,8 +50,7 @@ "broccoli-merge-trees": "^1.1.4", "ember-cli-babel": "^6.0.0", "ember-cli-htmlbars": "^1.3.0", - "ember-cli-version-checker": "^1.1.6", - "fastboot-filter-initializers": "0.0.1" + "ember-cli-version-checker": "^1.1.6" }, "engines": { "node": ">= 4" diff --git a/yarn.lock b/yarn.lock index a8cd058..70c225a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2654,12 +2654,6 @@ fast-sourcemap-concat@^1.0.1: source-map "^0.4.2" source-map-url "^0.3.0" -fastboot-filter-initializers@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/fastboot-filter-initializers/-/fastboot-filter-initializers-0.0.1.tgz#171b2165c872763cc9541c12d305e3cf84a360f3" - dependencies: - broccoli-funnel "^1.0.1" - faye-websocket@~0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" @@ -3191,14 +3185,10 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" -iconv-lite@0.4.13: +iconv-lite@0.4.13, iconv-lite@^0.4.5, iconv-lite@~0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" -iconv-lite@^0.4.5, iconv-lite@~0.4.13: - version "0.4.15" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" - ignore@^3.2.0: version "3.2.7" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.7.tgz#4810ca5f1d8eca5595213a34b94f2eb4ed926bbd" From f4e7b7b3e06852cc77be7c5ca007a1e094516463 Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 27 Apr 2017 21:31:32 +0200 Subject: [PATCH 3/7] Added FastBoot 1.0 tests, fixed Travis --- .travis.yml | 3 +- fastboot-tests/fastboot-1.0-beta-test.js | 36 ++++++++++++++++++ fastboot-tests/fastboot-1.0-test.js | 37 +++++++++++++++++++ .../fixtures/fastboot-beta/app/router.js | 13 +++++++ .../fastboot-beta/app/routes/application.js | 10 +++++ .../fastboot-beta/app/routes/other-page.js | 10 +++++ .../fastboot-beta/app/templates/head.hbs | 5 +++ .../fastboot-beta/app/templates/index.hbs | 1 + .../app/templates/other-page.hbs | 1 + fastboot-tests/index-test.js | 21 ----------- fastboot-tests/other-page-test.js | 21 ----------- package.json | 2 +- yarn.lock | 6 +-- 13 files changed, 119 insertions(+), 47 deletions(-) create mode 100644 fastboot-tests/fastboot-1.0-beta-test.js create mode 100644 fastboot-tests/fastboot-1.0-test.js create mode 100644 fastboot-tests/fixtures/fastboot-beta/app/router.js create mode 100644 fastboot-tests/fixtures/fastboot-beta/app/routes/application.js create mode 100644 fastboot-tests/fixtures/fastboot-beta/app/routes/other-page.js create mode 100644 fastboot-tests/fixtures/fastboot-beta/app/templates/head.hbs create mode 100644 fastboot-tests/fixtures/fastboot-beta/app/templates/index.hbs create mode 100644 fastboot-tests/fixtures/fastboot-beta/app/templates/other-page.hbs delete mode 100644 fastboot-tests/index-test.js delete mode 100644 fastboot-tests/other-page-test.js diff --git a/.travis.yml b/.travis.yml index 69e879f..106c919 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,9 +27,10 @@ matrix: before_install: - npm config set spin false - export PATH=$HOME/.yarn/bin:$PATH - - yarn global add phantomjs-prebuilt + - yarn global add phantomjs-prebuilt bower - npm --version - yarn --version + - bower --version - phantomjs --version install: diff --git a/fastboot-tests/fastboot-1.0-beta-test.js b/fastboot-tests/fastboot-1.0-beta-test.js new file mode 100644 index 0000000..8766856 --- /dev/null +++ b/fastboot-tests/fastboot-1.0-beta-test.js @@ -0,0 +1,36 @@ +'use strict'; + +const expect = require('chai').expect; +const setupTest = require('ember-fastboot-addon-tests').setupTest; + +describe('FastBoot pre 1.0', function() { + setupTest('fastboot-beta', { + emberCliFastbootVersion: '1.0.0-beta.18' + } + ); + + it('index page', function() { + return this.visit('/') + .then(function(res) { + let $ = res.jQuery; + let response = res.response; + + expect(response.statusCode).to.equal(200); + expect($('h1').text().trim()).to.equal('Hello page'); + expect($('meta[property="og:title"]', 'head').attr('content')).to.equal('Hello page'); + }); + }); + + it('other page', function() { + return this.visit('/other-page') + .then(function(res) { + let $ = res.jQuery; + let response = res.response; + + expect(response.statusCode).to.equal(200); + expect($('h1').text().trim()).to.equal('Other page'); + expect($('meta[property="og:title"]', 'head').attr('content')).to.equal('Other page'); + }); + }); + +}); \ No newline at end of file diff --git a/fastboot-tests/fastboot-1.0-test.js b/fastboot-tests/fastboot-1.0-test.js new file mode 100644 index 0000000..c41261f --- /dev/null +++ b/fastboot-tests/fastboot-1.0-test.js @@ -0,0 +1,37 @@ +'use strict'; + +const expect = require('chai').expect; +const setupTest = require('ember-fastboot-addon-tests').setupTest; + +describe('FastBoot 1.0', function() { + setupTest('fastboot', { + // @todo remove this line once ember-cli-fastboot 1.0 is released. + // For now we reference the fork of https://github.com/ember-fastboot/ember-cli-fastboot/pull/369 + emberCliFastbootVersion: 'kratiahuja/ember-cli-fastboot#build-test' + }); + + it('index page', function() { + return this.visit('/') + .then(function(res) { + let $ = res.jQuery; + let response = res.response; + + expect(response.statusCode).to.equal(200); + expect($('h1').text().trim()).to.equal('Hello page'); + expect($('meta[property="og:title"]', 'head').attr('content')).to.equal('Hello page'); + }); + }); + + it('other page', function() { + return this.visit('/other-page') + .then(function(res) { + let $ = res.jQuery; + let response = res.response; + + expect(response.statusCode).to.equal(200); + expect($('h1').text().trim()).to.equal('Other page'); + expect($('meta[property="og:title"]', 'head').attr('content')).to.equal('Other page'); + }); + }); + +}); \ No newline at end of file diff --git a/fastboot-tests/fixtures/fastboot-beta/app/router.js b/fastboot-tests/fixtures/fastboot-beta/app/router.js new file mode 100644 index 0000000..c10e94b --- /dev/null +++ b/fastboot-tests/fixtures/fastboot-beta/app/router.js @@ -0,0 +1,13 @@ +import Ember from 'ember'; +import config from './config/environment'; + +const Router = Ember.Router.extend({ + location: config.locationType, + rootURL: config.rootURL +}); + +Router.map(function() { + this.route('other-page'); +}); + +export default Router; diff --git a/fastboot-tests/fixtures/fastboot-beta/app/routes/application.js b/fastboot-tests/fixtures/fastboot-beta/app/routes/application.js new file mode 100644 index 0000000..378a3ce --- /dev/null +++ b/fastboot-tests/fixtures/fastboot-beta/app/routes/application.js @@ -0,0 +1,10 @@ +import Ember from 'ember'; + +const { set } = Ember; + +export default Ember.Route.extend({ + headData: Ember.inject.service(), + afterModel() { + set(this, 'headData.title', "Hello page"); + } +}); diff --git a/fastboot-tests/fixtures/fastboot-beta/app/routes/other-page.js b/fastboot-tests/fixtures/fastboot-beta/app/routes/other-page.js new file mode 100644 index 0000000..6d1bdcd --- /dev/null +++ b/fastboot-tests/fixtures/fastboot-beta/app/routes/other-page.js @@ -0,0 +1,10 @@ +import Ember from 'ember'; + +const { set } = Ember; + +export default Ember.Route.extend({ + headData: Ember.inject.service(), + afterModel() { + set(this, 'headData.title', "Other page"); + } +}); diff --git a/fastboot-tests/fixtures/fastboot-beta/app/templates/head.hbs b/fastboot-tests/fixtures/fastboot-beta/app/templates/head.hbs new file mode 100644 index 0000000..a84cd0e --- /dev/null +++ b/fastboot-tests/fixtures/fastboot-beta/app/templates/head.hbs @@ -0,0 +1,5 @@ + + + + + diff --git a/fastboot-tests/fixtures/fastboot-beta/app/templates/index.hbs b/fastboot-tests/fixtures/fastboot-beta/app/templates/index.hbs new file mode 100644 index 0000000..42d6e79 --- /dev/null +++ b/fastboot-tests/fixtures/fastboot-beta/app/templates/index.hbs @@ -0,0 +1 @@ +

Hello page

\ No newline at end of file diff --git a/fastboot-tests/fixtures/fastboot-beta/app/templates/other-page.hbs b/fastboot-tests/fixtures/fastboot-beta/app/templates/other-page.hbs new file mode 100644 index 0000000..9842954 --- /dev/null +++ b/fastboot-tests/fixtures/fastboot-beta/app/templates/other-page.hbs @@ -0,0 +1 @@ +

Other page

diff --git a/fastboot-tests/index-test.js b/fastboot-tests/index-test.js deleted file mode 100644 index 704c5d7..0000000 --- a/fastboot-tests/index-test.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -const expect = require('chai').expect; -const setupTest = require('ember-fastboot-addon-tests').setupTest; - -describe('index', function() { - setupTest('fastboot'/*, options */); - - it('renders', function() { - return this.visit('/') - .then(function(res) { - let $ = res.jQuery; - let response = res.response; - - expect(response.statusCode).to.equal(200); - expect($('h1').text().trim()).to.equal('Hello page'); - expect($('meta[property="og:title"]', 'head').attr('content')).to.equal('Hello page'); - }); - }); - -}); \ No newline at end of file diff --git a/fastboot-tests/other-page-test.js b/fastboot-tests/other-page-test.js deleted file mode 100644 index 607bbf8..0000000 --- a/fastboot-tests/other-page-test.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -const expect = require('chai').expect; -const setupTest = require('ember-fastboot-addon-tests').setupTest; - -describe('otherPage', function() { - setupTest('fastboot'/*, options */); - - it('renders', function() { - return this.visit('/other-page') - .then(function(res) { - let $ = res.jQuery; - let response = res.response; - - expect(response.statusCode).to.equal(200); - expect($('h1').text().trim()).to.equal('Other page'); - expect($('meta[property="og:title"]', 'head').attr('content')).to.equal('Other page'); - }); - }); - -}); \ No newline at end of file diff --git a/package.json b/package.json index 6427e9d..8755151 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "ember-disable-prototype-extensions": "^1.1.0", "ember-disable-proxy-controllers": "^1.0.1", "ember-export-application-global": "^1.0.5", - "ember-fastboot-addon-tests": "^0.3.1", + "ember-fastboot-addon-tests": "^0.3.2", "ember-load-initializers": "^0.6.0", "ember-resolver": "^2.0.3", "ember-source": "~2.12.0", diff --git a/yarn.lock b/yarn.lock index 70c225a..7916992 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2173,9 +2173,9 @@ ember-export-application-global@^1.0.5: dependencies: ember-cli-babel "^5.1.10" -ember-fastboot-addon-tests@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/ember-fastboot-addon-tests/-/ember-fastboot-addon-tests-0.3.1.tgz#2aba4eb043d6b61aa3bc629894d4898998749f44" +ember-fastboot-addon-tests@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ember-fastboot-addon-tests/-/ember-fastboot-addon-tests-0.3.2.tgz#832c13eaa9c1d73bc1db1a4a6dd6d73c099c97f1" dependencies: chalk "^1.1.3" core-object "^2.0.6" From e7fb768594b773f1be6b811aef2eb4547d749267 Mon Sep 17 00:00:00 2001 From: simon Date: Thu, 27 Apr 2017 23:02:16 +0200 Subject: [PATCH 4/7] Use addToFastBootTree hook --- app/instance-initializers/fastboot/head.js | 6 +--- .../instance-initializers/fastboot/head.js | 6 +--- index.js | 35 +++++++++++++++---- package.json | 3 +- yarn.lock | 6 ++++ 5 files changed, 38 insertions(+), 18 deletions(-) rename {app-lt-2-10 => fastboot-lt-2-10}/instance-initializers/fastboot/head.js (82%) diff --git a/app/instance-initializers/fastboot/head.js b/app/instance-initializers/fastboot/head.js index 806f86b..ab443d7 100644 --- a/app/instance-initializers/fastboot/head.js +++ b/app/instance-initializers/fastboot/head.js @@ -7,9 +7,5 @@ export function initialize(owner) { export default { name: 'head-fastboot', - initialize() { - if (typeof FastBoot !== 'undefined') { - initialize(...arguments); - } - } + initialize }; diff --git a/app-lt-2-10/instance-initializers/fastboot/head.js b/fastboot-lt-2-10/instance-initializers/fastboot/head.js similarity index 82% rename from app-lt-2-10/instance-initializers/fastboot/head.js rename to fastboot-lt-2-10/instance-initializers/fastboot/head.js index 99c99cd..3d3d78b 100644 --- a/app-lt-2-10/instance-initializers/fastboot/head.js +++ b/fastboot-lt-2-10/instance-initializers/fastboot/head.js @@ -15,9 +15,5 @@ export function initialize(instance) { export default { name: 'head-fastboot', - initialize() { - if (typeof FastBoot !== 'undefined') { - initialize(...arguments); - } - } + initialize }; diff --git a/index.js b/index.js index 3cfed95..14fc338 100644 --- a/index.js +++ b/index.js @@ -2,6 +2,7 @@ 'use strict'; const path = require('path'); +const filterInitializers = require('fastboot-filter-initializers'); const VersionChecker = require('ember-cli-version-checker'); const mergeTrees = require('broccoli-merge-trees'); @@ -9,6 +10,32 @@ module.exports = { name: 'ember-cli-head', treeForApp(defaultTree) { + if (!process.env.FASTBOOT_NEW_BUILD) { + let trees = [defaultTree]; + + if (!this.hasGlimmer2()) { + trees.push(this.treeGenerator(path.resolve(this.root, 'app-lt-2-10'))); + trees.push(this.treeGenerator(path.resolve(this.root, 'fastboot-lt-2-10'))); + } + + let tree = mergeTrees(trees, { overwrite: true }); + + return filterInitializers(tree); + } else { + return defaultTree; + } + }, + + addToFastBootTree() { + // this hook will be invoked in post FastBoot 1.0 + let fastbootBuilder = require('ember-cli-fastboot/lib/build-utilities/fastboot-builder'); + + if (!this.hasGlimmer2) { + return fastbootBuilder.addFastBootPath(path.resolve(this.root, 'fastboot-lt-2-10')); + } + }, + + hasGlimmer2() { let checker = new VersionChecker(this); let emberVersion = checker.for('ember-source', 'npm'); @@ -16,14 +43,8 @@ module.exports = { emberVersion = checker.for('ember', 'bower'); } - let trees = [defaultTree]; - // 2.9.0-beta.1 - 2.9.0-beta.5 used glimmer2 (but 2.9.0 did not) // 2.10.0-beta.1+ includes glimmer2 - if (!(emberVersion.gt('2.9.0-beta') && emberVersion.lt('2.9.0')) && !emberVersion.gt('2.10.0-beta')) { - trees.push(this.treeGenerator(path.resolve(this.root, 'app-lt-2-10'))); - } - - return mergeTrees(trees, { overwrite: true }); + return (emberVersion.gt('2.9.0-beta') && emberVersion.lt('2.9.0')) || emberVersion.gt('2.10.0-beta'); } }; diff --git a/package.json b/package.json index 8755151..ee34e8d 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,8 @@ "broccoli-merge-trees": "^1.1.4", "ember-cli-babel": "^6.0.0", "ember-cli-htmlbars": "^1.3.0", - "ember-cli-version-checker": "^1.1.6" + "ember-cli-version-checker": "^1.1.6", + "fastboot-filter-initializers": "^0.0.2" }, "engines": { "node": ">= 4" diff --git a/yarn.lock b/yarn.lock index 7916992..583dc49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2654,6 +2654,12 @@ fast-sourcemap-concat@^1.0.1: source-map "^0.4.2" source-map-url "^0.3.0" +fastboot-filter-initializers@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/fastboot-filter-initializers/-/fastboot-filter-initializers-0.0.2.tgz#67aa9e8b22ca4b0e6a244f2450fd1cc6befa45e7" + dependencies: + broccoli-funnel "^1.0.1" + faye-websocket@~0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" From 3b2ae516f7dc8a39cff58bbb00f771ef7a73f41b Mon Sep 17 00:00:00 2001 From: simon Date: Fri, 19 May 2017 18:32:24 +0200 Subject: [PATCH 5/7] Use new treeForFastBoot hook, run FastBoot tests against ember-cli-fastboot#master --- fastboot-tests/fastboot-1.0-test.js | 4 +--- index.js | 8 ++++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/fastboot-tests/fastboot-1.0-test.js b/fastboot-tests/fastboot-1.0-test.js index c41261f..b9cec72 100644 --- a/fastboot-tests/fastboot-1.0-test.js +++ b/fastboot-tests/fastboot-1.0-test.js @@ -5,9 +5,7 @@ const setupTest = require('ember-fastboot-addon-tests').setupTest; describe('FastBoot 1.0', function() { setupTest('fastboot', { - // @todo remove this line once ember-cli-fastboot 1.0 is released. - // For now we reference the fork of https://github.com/ember-fastboot/ember-cli-fastboot/pull/369 - emberCliFastbootVersion: 'kratiahuja/ember-cli-fastboot#build-test' + emberCliFastbootVersion: 'ember-fastboot/ember-cli-fastboot#master' }); it('index page', function() { diff --git a/index.js b/index.js index 14fc338..b5aac98 100644 --- a/index.js +++ b/index.js @@ -26,13 +26,13 @@ module.exports = { } }, - addToFastBootTree() { + treeForFastBoot(tree) { // this hook will be invoked in post FastBoot 1.0 - let fastbootBuilder = require('ember-cli-fastboot/lib/build-utilities/fastboot-builder'); - if (!this.hasGlimmer2) { - return fastbootBuilder.addFastBootPath(path.resolve(this.root, 'fastboot-lt-2-10')); + let fastBootHtmlBarsTree = this.treeGenerator(path.resolve(this.root, 'fastboot-lt-2-10')); + return tree ? mergeTrees([tree, fastBootHtmlBarsTree], { overwrite: true }) : fastBootHtmlBarsTree; } + return tree; }, hasGlimmer2() { From a31877f6a99bab5aa3a48d7aca521e242470eb56 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 23 May 2017 10:32:00 +0200 Subject: [PATCH 6/7] Fix missing merge of app-lt-2-10 for new FastBoot build --- index.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index b5aac98..4f1cf06 100644 --- a/index.js +++ b/index.js @@ -22,7 +22,12 @@ module.exports = { return filterInitializers(tree); } else { - return defaultTree; + let trees = [defaultTree]; + if (!this.hasGlimmer2()) { + trees.push(this.treeGenerator(path.resolve(this.root, 'app-lt-2-10'))); + } + + return mergeTrees(trees, { overwrite: true }); } }, From 022a6e7470594da336b3e9a54e85b30a7ac93054 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 23 May 2017 12:41:50 +0200 Subject: [PATCH 7/7] Fix FastBoot tests --- fastboot-tests/fastboot-1.0-test.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fastboot-tests/fastboot-1.0-test.js b/fastboot-tests/fastboot-1.0-test.js index b9cec72..73bae19 100644 --- a/fastboot-tests/fastboot-1.0-test.js +++ b/fastboot-tests/fastboot-1.0-test.js @@ -5,7 +5,7 @@ const setupTest = require('ember-fastboot-addon-tests').setupTest; describe('FastBoot 1.0', function() { setupTest('fastboot', { - emberCliFastbootVersion: 'ember-fastboot/ember-cli-fastboot#master' + emberCliFastbootVersion: '1.0.0-rc.1' }); it('index page', function() { diff --git a/package.json b/package.json index ee34e8d..747730a 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "ember-disable-prototype-extensions": "^1.1.0", "ember-disable-proxy-controllers": "^1.0.1", "ember-export-application-global": "^1.0.5", - "ember-fastboot-addon-tests": "^0.3.2", + "ember-fastboot-addon-tests": "^0.4.0", "ember-load-initializers": "^0.6.0", "ember-resolver": "^2.0.3", "ember-source": "~2.12.0",