From 59895e8a35aeb5a3005ffca471986d051db86930 Mon Sep 17 00:00:00 2001 From: Devonte Date: Wed, 5 Jul 2017 16:36:46 +0100 Subject: [PATCH 1/4] fastboot ready --- addon/components/new-version-notifier/component.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addon/components/new-version-notifier/component.js b/addon/components/new-version-notifier/component.js index 0d436cb..4b93b30 100644 --- a/addon/components/new-version-notifier/component.js +++ b/addon/components/new-version-notifier/component.js @@ -37,6 +37,8 @@ export default Ember.Component.extend({ clearTimeout(currentTimeout); } + if(!Ember.$) { return; } + Ember.$.ajax(self.get('url'), { cache:false }).then(function(res){ var currentVersion = self.get('version'); var newVersion = res && res.trim(); From e6bee641cc3c186c3c314210d9e883a6b8d739e9 Mon Sep 17 00:00:00 2001 From: Devonte Date: Wed, 5 Jul 2017 16:40:23 +0100 Subject: [PATCH 2/4] fastboot ready --- addon/components/new-version-notifier/component.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addon/components/new-version-notifier/component.js b/addon/components/new-version-notifier/component.js index 4b93b30..42a719c 100644 --- a/addon/components/new-version-notifier/component.js +++ b/addon/components/new-version-notifier/component.js @@ -69,7 +69,9 @@ export default Ember.Component.extend({ }, actions: { reload() { - location.reload(); + if(typeof window !== 'undefined' && window.location) { + window.location.reload(); + } }, close() { From c85c31818b01f171caa5be0882c1c17fe6c9ca25 Mon Sep 17 00:00:00 2001 From: Devonte Date: Thu, 6 Jul 2017 13:10:51 +0100 Subject: [PATCH 3/4] update packages --- .gitignore | 18 +++++-- .travis.yml | 11 ++--- .../new-version-notifier/component.js | 3 +- bower.json | 16 ------- config/ember-try.js | 33 ++++++++++++- config/environment.js | 2 +- ember-cli-build.js | 11 +++-- index.js | 8 ++-- package.json | 47 +++++++++---------- testem.json | 12 ----- tests/dummy/app/app.js | 6 +-- tests/dummy/app/index.html | 16 +++---- tests/dummy/app/router.js | 3 +- tests/dummy/app/templates/application.hbs | 2 +- tests/dummy/config/environment.js | 14 ++++-- tests/helpers/module-for-acceptance.js | 12 ++--- tests/helpers/resolver.js | 2 +- tests/helpers/start-app.js | 9 ++-- tests/index.html | 33 +++++++------ tests/test-helper.js | 2 + vendor/tests/dummy/app/app.js | 2 - 21 files changed, 136 insertions(+), 126 deletions(-) delete mode 100644 bower.json delete mode 100644 testem.json diff --git a/.gitignore b/.gitignore index 7e1b83f..8fa39a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. +# See https://help.github.com/ignore-files/ for more about ignoring files. # compiled output /dist @@ -7,5 +7,17 @@ # dependencies /node_modules /bower_components -npm-debug.log -testem.log \ No newline at end of file + +# misc +/.sass-cache +/connect.lock +/coverage/* +/libpeerconnection.log +npm-debug.log* +yarn-error.log +testem.log + +# ember-try +.node_modules.ember-try/ +bower.json.ember-try +package.json.ember-try diff --git a/.travis.yml b/.travis.yml index b3be07e..d35e703 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,6 @@ sudo: false cache: directories: - $HOME/.npm - - $HOME/.cache # includes bowers cache env: # we recommend testing LTS's and latest stable release (bonus points to beta/canary) @@ -17,6 +16,7 @@ env: - EMBER_TRY_SCENARIO=ember-release - EMBER_TRY_SCENARIO=ember-beta - EMBER_TRY_SCENARIO=ember-canary + - EMBER_TRY_SCENARIO=ember-default matrix: fast_finish: true @@ -25,16 +25,13 @@ matrix: before_install: - npm config set spin false - - npm install -g bower - - bower --version - - npm install phantomjs-prebuilt - - node_modules/phantomjs-prebuilt/bin/phantomjs --version + - npm install -g phantomjs-prebuilt + - phantomjs --version install: - npm install - - bower install script: # Usually, it's ok to finish the test scenario without reverting # to the addon's original dependency state, skipping "cleanup". - - ember try:one $EMBER_TRY_SCENARIO test --skip-cleanup + - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO test --skip-cleanup diff --git a/addon/components/new-version-notifier/component.js b/addon/components/new-version-notifier/component.js index 42a719c..d348c33 100644 --- a/addon/components/new-version-notifier/component.js +++ b/addon/components/new-version-notifier/component.js @@ -1,7 +1,6 @@ /*jshint esnext:true */ import Ember from 'ember'; -import getOwner from 'ember-getowner-polyfill'; import layout from './template'; export default Ember.Component.extend({ @@ -15,7 +14,7 @@ export default Ember.Component.extend({ showReloadButton: Ember.computed.alias("showReload"), reloadButtonText: "Reload", url: Ember.computed('versionFileName', function() { - var config = getOwner(this).resolveRegistration('config:environment'); + var config = Ember.getOwner(this).resolveRegistration('config:environment'); var versionFileName = this.get('versionFileName'); var baseUrl = config.rootURL || config.baseURL; diff --git a/bower.json b/bower.json deleted file mode 100644 index f4c6f76..0000000 --- a/bower.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "ember-cli-new-version", - "dependencies": { - "ember": "1.13.11", - "ember-cli-shims": "0.0.6", - "ember-cli-test-loader": "0.2.1", - "ember-data": "1.13.15", - "ember-load-initializers": "0.1.7", - "ember-qunit": "0.4.16", - "ember-qunit-notifications": "0.1.0", - "ember-resolver": "~0.1.20", - "jquery": "1.11.3", - "loader.js": "ember-cli/loader.js#3.4.0", - "qunit": "~1.20.0" - } -} diff --git a/config/ember-try.js b/config/ember-try.js index c58516b..a070124 100644 --- a/config/ember-try.js +++ b/config/ember-try.js @@ -1,4 +1,4 @@ -/*jshint node:true*/ +/* eslint-env node */ module.exports = { scenarios: [ { @@ -10,6 +10,11 @@ module.exports = { resolutions: { 'ember': 'lts-2-4' } + }, + npm: { + devDependencies: { + 'ember-source': null + } } }, { @@ -21,6 +26,11 @@ module.exports = { resolutions: { 'ember': 'lts-2-8' } + }, + npm: { + devDependencies: { + 'ember-source': null + } } }, { @@ -32,6 +42,11 @@ module.exports = { resolutions: { 'ember': 'release' } + }, + npm: { + devDependencies: { + 'ember-source': null + } } }, { @@ -43,6 +58,11 @@ module.exports = { resolutions: { 'ember': 'beta' } + }, + npm: { + devDependencies: { + 'ember-source': null + } } }, { @@ -54,6 +74,17 @@ module.exports = { resolutions: { 'ember': 'canary' } + }, + npm: { + devDependencies: { + 'ember-source': null + } + } + }, + { + name: 'ember-default', + npm: { + devDependencies: {} } } ] diff --git a/config/environment.js b/config/environment.js index 28a787b..012a412 100644 --- a/config/environment.js +++ b/config/environment.js @@ -1,4 +1,4 @@ -/*jshint node:true*/ +/* eslint-env node */ 'use strict'; module.exports = function(/* environment, appConfig */) { diff --git a/ember-cli-build.js b/ember-cli-build.js index bd477ce..5facff1 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -1,9 +1,10 @@ -/*jshint node:true*/ -/* global require, module */ -var EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); +/* eslint-env node */ +'use strict'; + +const EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); module.exports = function(defaults) { - var app = new EmberAddon(defaults, { + let app = new EmberAddon(defaults, { // Add options here newVersion: { fileName: 'MY-VERSION.txt' @@ -11,7 +12,7 @@ module.exports = function(defaults) { }); /* - This build file specifes the options for the dummy test app of this + This build file specifies 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 diff --git a/index.js b/index.js index 97aed9c..415b5cb 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ -/* jshint node: true */ +/* eslint-env node */ 'use strict'; -var writeFile = require('broccoli-file-creator'); +const writeFile = require('broccoli-file-creator'); module.exports = { name: 'ember-cli-new-version', @@ -32,8 +32,8 @@ module.exports = { based on package.json of consuming application. */ treeForPublic: function() { - var content = this.parent.pkg.version || ''; - var fileName = this._options.fileName; + let content = this.parent.pkg.version || ''; + let fileName = this._options.fileName; if (this._options.fileName) { this.ui.writeLine('Created ' + fileName); diff --git a/package.json b/package.json index 11e91f3..acbb0f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ember-cli-new-version", - "version": "1.1.0", + "version": "1.2.0", "description": "A convention based update notification for Ember. With this addon, you can detect a new version and notify the user to refresh the page", "directories": { "doc": "doc", @@ -8,8 +8,8 @@ }, "scripts": { "build": "ember build", - "start": "ember server --live-reload=false", - "test": "ember try:testall" + "start": "ember server", + "test": "ember try:each" }, "repository": { "type": "git", @@ -21,25 +21,24 @@ "author": "", "license": "MIT", "devDependencies": { - "broccoli-asset-rev": "^2.2.0", - "broccoli-file-creator": "^1.1.0", - "ember-cli": "1.13.13", - "ember-cli-app-version": "^1.0.0", - "ember-cli-content-security-policy": "0.4.0", - "ember-cli-dependency-checker": "^1.1.0", - "ember-cli-htmlbars-inline-precompile": "^0.3.1", - "ember-cli-ic-ajax": "0.2.4", - "ember-cli-inject-live-reload": "^1.3.1", - "ember-cli-qunit": "^1.0.4", - "ember-cli-release": "0.2.8", - "ember-cli-sri": "^1.2.0", + "broccoli-asset-rev": "^2.5.0", + "ember-ajax": "^3.0.0", + "ember-cli": "~2.14.0", + "ember-cli-dependency-checker": "^2.0.1", + "ember-cli-eslint": "^4.1.0", + "ember-cli-htmlbars-inline-precompile": "^0.4.3", + "ember-cli-inject-live-reload": "^1.6.1", + "ember-cli-qunit": "^4.0.0", + "ember-cli-shims": "^1.1.0", + "ember-cli-sri": "^2.1.1", "ember-cli-uglify": "^1.2.0", - "ember-data": "1.13.15", - "ember-disable-prototype-extensions": "^1.0.0", - "ember-disable-proxy-controllers": "^1.0.1", - "ember-export-application-global": "^1.0.4", - "ember-getowner-polyfill": "1.0.1", - "ember-try": "^0.2.6" + "ember-disable-prototype-extensions": "^1.1.2", + "ember-export-application-global": "^2.0.0", + "ember-load-initializers": "^1.0.0", + "ember-resolver": "^4.2.1", + "ember-source": "~2.14.0", + "ember-welcome-page": "^3.1.1", + "loader.js": "^4.5.1" }, "keywords": [ "ember-addon", @@ -49,9 +48,9 @@ "new version" ], "dependencies": { - "ember-cli-babel": "^5.1.5", - "ember-cli-htmlbars": "^1.0.1", - "broccoli-file-creator": "^1.1.0" + "broccoli-file-creator": "^1.1.1", + "ember-cli-babel": "^6.5.1", + "ember-cli-htmlbars": "^1.0.1" }, "ember-addon": { "configPath": "tests/dummy/config" diff --git a/testem.json b/testem.json deleted file mode 100644 index 0f35392..0000000 --- a/testem.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "framework": "qunit", - "test_page": "tests/index.html?hidepassed", - "disable_watching": true, - "launch_in_ci": [ - "PhantomJS" - ], - "launch_in_dev": [ - "PhantomJS", - "Chrome" - ] -} diff --git a/tests/dummy/app/app.js b/tests/dummy/app/app.js index 8b234d6..f796e79 100644 --- a/tests/dummy/app/app.js +++ b/tests/dummy/app/app.js @@ -1,12 +1,10 @@ import Ember from 'ember'; -import Resolver from 'ember/resolver'; -import loadInitializers from 'ember/load-initializers'; +import Resolver from './resolver'; +import loadInitializers from 'ember-load-initializers'; import config from './config/environment'; let App; -Ember.MODEL_FACTORY_INJECTIONS = true; - App = Ember.Application.extend({ modulePrefix: config.modulePrefix, podModulePrefix: config.podModulePrefix, diff --git a/tests/dummy/app/index.html b/tests/dummy/app/index.html index 1c49d36..5120bd7 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 3bba78e..cdc2578 100644 --- a/tests/dummy/app/router.js +++ b/tests/dummy/app/router.js @@ -2,7 +2,8 @@ import Ember from 'ember'; import config from './config/environment'; const Router = Ember.Router.extend({ - location: config.locationType + location: config.locationType, + rootURL: config.rootURL }); Router.map(function() { diff --git a/tests/dummy/app/templates/application.hbs b/tests/dummy/app/templates/application.hbs index a5948d9..97ccf1f 100644 --- a/tests/dummy/app/templates/application.hbs +++ b/tests/dummy/app/templates/application.hbs @@ -1,4 +1,4 @@ -

Welcome to Ember

+

Ember New Version

{{outlet}} diff --git a/tests/dummy/config/environment.js b/tests/dummy/config/environment.js index c59bcd5..251bdcb 100644 --- a/tests/dummy/config/environment.js +++ b/tests/dummy/config/environment.js @@ -1,15 +1,20 @@ -/* jshint node: true */ +/* eslint-env node */ +'use strict'; module.exports = function(environment) { - var ENV = { + let ENV = { modulePrefix: 'dummy', - environment: environment, - baseURL: '/', + environment, + rootURL: '/', locationType: 'auto', EmberENV: { FEATURES: { // Here you can enable experimental features on an ember canary build // e.g. 'with-controller': true + }, + EXTEND_PROTOTYPES: { + // Prevent Ember Data from overriding Date.parse. + Date: false } }, @@ -29,7 +34,6 @@ module.exports = function(environment) { if (environment === 'test') { // Testem prefers this... - ENV.baseURL = '/'; ENV.locationType = 'none'; // keep test console output quieter diff --git a/tests/helpers/module-for-acceptance.js b/tests/helpers/module-for-acceptance.js index ed23003..5a1a583 100644 --- a/tests/helpers/module-for-acceptance.js +++ b/tests/helpers/module-for-acceptance.js @@ -1,23 +1,23 @@ import { module } from 'qunit'; +import Ember from 'ember'; import startApp from '../helpers/start-app'; import destroyApp from '../helpers/destroy-app'; +const { RSVP: { resolve } } = Ember; + export default function(name, options = {}) { module(name, { beforeEach() { this.application = startApp(); if (options.beforeEach) { - options.beforeEach.apply(this, arguments); + return options.beforeEach.apply(this, arguments); } }, afterEach() { - destroyApp(this.application); - - if (options.afterEach) { - options.afterEach.apply(this, arguments); - } + let afterEach = options.afterEach && options.afterEach.apply(this, arguments); + return resolve(afterEach).then(() => destroyApp(this.application)); } }); } diff --git a/tests/helpers/resolver.js b/tests/helpers/resolver.js index ebfb4e4..b208d38 100644 --- a/tests/helpers/resolver.js +++ b/tests/helpers/resolver.js @@ -1,4 +1,4 @@ -import Resolver from 'ember/resolver'; +import Resolver from '../../resolver'; import config from '../../config/environment'; const resolver = Resolver.create(); diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js index e098f1d..9a605eb 100644 --- a/tests/helpers/start-app.js +++ b/tests/helpers/start-app.js @@ -3,16 +3,13 @@ import Application from '../../app'; import config from '../../config/environment'; export default function startApp(attrs) { - let application; - let attributes = Ember.merge({}, config.APP); attributes = Ember.merge(attributes, attrs); // use defaults, but you can override; - Ember.run(() => { - application = Application.create(attributes); + return Ember.run(() => { + let application = Application.create(attributes); application.setupForTesting(); application.injectTestHelpers(); + return application; }); - - return application; } diff --git a/tests/index.html b/tests/index.html index 5e88e5e..5209b85 100644 --- a/tests/index.html +++ b/tests/index.html @@ -7,28 +7,27 @@ - {{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"}} diff --git a/tests/test-helper.js b/tests/test-helper.js index e6cfb70..f219659 100644 --- a/tests/test-helper.js +++ b/tests/test-helper.js @@ -2,5 +2,7 @@ import resolver from './helpers/resolver'; import { setResolver } from 'ember-qunit'; +import { start } from 'ember-cli-qunit'; setResolver(resolver); +start(); diff --git a/vendor/tests/dummy/app/app.js b/vendor/tests/dummy/app/app.js index 8b234d6..2037ce5 100644 --- a/vendor/tests/dummy/app/app.js +++ b/vendor/tests/dummy/app/app.js @@ -5,8 +5,6 @@ import config from './config/environment'; let App; -Ember.MODEL_FACTORY_INJECTIONS = true; - App = Ember.Application.extend({ modulePrefix: config.modulePrefix, podModulePrefix: config.podModulePrefix, From c4350945781b0ce8cbc4dcce5468e19f10501a12 Mon Sep 17 00:00:00 2001 From: Devonte Date: Fri, 7 Jul 2017 18:35:46 +0100 Subject: [PATCH 4/4] updates from review --- addon/components/new-version-notifier/component.js | 4 +++- package.json | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/addon/components/new-version-notifier/component.js b/addon/components/new-version-notifier/component.js index d348c33..05e2ac5 100644 --- a/addon/components/new-version-notifier/component.js +++ b/addon/components/new-version-notifier/component.js @@ -36,7 +36,9 @@ export default Ember.Component.extend({ clearTimeout(currentTimeout); } - if(!Ember.$) { return; } + if(!Ember.$) { + return; + } Ember.$.ajax(self.get('url'), { cache:false }).then(function(res){ var currentVersion = self.get('version'); diff --git a/package.json b/package.json index acbb0f3..e77b43a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ember-cli-new-version", - "version": "1.2.0", + "version": "1.1.0", "description": "A convention based update notification for Ember. With this addon, you can detect a new version and notify the user to refresh the page", "directories": { "doc": "doc", @@ -37,7 +37,6 @@ "ember-load-initializers": "^1.0.0", "ember-resolver": "^4.2.1", "ember-source": "~2.14.0", - "ember-welcome-page": "^3.1.1", "loader.js": "^4.5.1" }, "keywords": [