diff --git a/.bowerrc b/.bowerrc
deleted file mode 100644
index 959e169..0000000
--- a/.bowerrc
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "directory": "bower_components",
- "analytics": false
-}
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..64ad54d
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,58 @@
+module.exports = {
+ root: true,
+ parserOptions: {
+ ecmaVersion: 2017,
+ sourceType: 'module'
+ },
+ plugins: [
+ 'ember'
+ ],
+ extends: [
+ 'eslint:recommended',
+ 'plugin:ember/recommended'
+ ],
+ env: {
+ browser: true
+ },
+ rules: {
+ 'no-console': 'off'
+ },
+ overrides: [
+ // node files
+ {
+ files: [
+ 'index.js',
+ 'testem.js',
+ 'ember-cli-build.js',
+ 'config/**/*.js',
+ 'tests/dummy/config/**/*.js'
+ ],
+ excludedFiles: [
+ 'app/**',
+ 'addon/**',
+ 'tests/dummy/app/**'
+ ],
+ parserOptions: {
+ sourceType: 'script',
+ ecmaVersion: 2015
+ },
+ env: {
+ browser: false,
+ node: true
+ },
+ plugins: ['node'],
+ rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, {
+ // add your custom rules and overrides for node files here
+ })
+ },
+
+ // test files
+ {
+ files: ['tests/**/*.js'],
+ excludedFiles: ['tests/dummy/**/*.js'],
+ env: {
+ embertest: true
+ }
+ }
+ ]
+};
diff --git a/.gitignore b/.gitignore
index 86fceae..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
@@ -13,5 +13,11 @@
/connect.lock
/coverage/*
/libpeerconnection.log
-npm-debug.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/.jshintrc b/.jshintrc
deleted file mode 100644
index d421faa..0000000
--- a/.jshintrc
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "predef": [
- "document",
- "window",
- "-Promise"
- ],
- "browser": true,
- "boss": true,
- "curly": true,
- "debug": false,
- "devel": true,
- "eqeqeq": true,
- "evil": true,
- "forin": false,
- "immed": false,
- "laxbreak": false,
- "newcap": true,
- "noarg": true,
- "noempty": false,
- "nonew": false,
- "nomen": false,
- "onevar": false,
- "plusplus": false,
- "regexp": false,
- "undef": true,
- "sub": true,
- "strict": false,
- "white": false,
- "eqnull": true,
- "esversion": 6,
- "unused": true
-}
diff --git a/.npmignore b/.npmignore
index fa8b147..135c7b1 100644
--- a/.npmignore
+++ b/.npmignore
@@ -7,10 +7,15 @@
.bowerrc
.editorconfig
.ember-cli
+.eslintrc.js
.gitignore
-.jshintrc
.watchmanconfig
.travis.yml
bower.json
ember-cli-build.js
testem.js
+
+# ember-try
+.node_modules.ember-try/
+bower.json.ember-try
+package.json.ember-try
diff --git a/.travis.yml b/.travis.yml
index a661550..5b24d5f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,30 +1,46 @@
---
language: node_js
node_js:
+ # we recommend testing addons with the same minimum supported node version as Ember CLI
+ # so that your addon works for all apps
- "4"
- - "6"
- - "7"
sudo: false
+dist: trusty
+
+addons:
+ chrome: stable
cache:
directories:
- - node_modules
+ - $HOME/.npm
+
+env:
+ global:
+ # See https://git.io/vdao3 for details.
+ - JOBS=1
+ matrix:
+ # we recommend new addons test the current and previous LTS
+ # as well as latest stable release (bonus points to beta/canary)
+ - EMBER_TRY_SCENARIO=ember-lts-2.12
+ - EMBER_TRY_SCENARIO=ember-lts-2.16
+ - EMBER_TRY_SCENARIO=ember-release
+ - EMBER_TRY_SCENARIO=ember-beta
+ - EMBER_TRY_SCENARIO=ember-canary
+ - EMBER_TRY_SCENARIO=ember-default
matrix:
fast_finish: true
+ allow_failures:
+ - env: EMBER_TRY_SCENARIO=ember-canary
before_install:
- npm config set spin false
- - npm install -g bower phantomjs-prebuilt
- - bower --version
- - phantomjs --version
-
-install:
- - npm install
- - bower install
+ - npm install -g npm@4
+ - npm --version
script:
+ - npm run lint:js
# Usually, it's ok to finish the test scenario without reverting
# to the addon's original dependency state, skipping "cleanup".
- - node_modules/.bin/ember try:each --skip-cleanup
+ - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO --skip-cleanup
diff --git a/addon/services/ember-cordova/splash.js b/addon/services/ember-cordova/splash.js
index 4dad261..04a2620 100644
--- a/addon/services/ember-cordova/splash.js
+++ b/addon/services/ember-cordova/splash.js
@@ -1,9 +1,5 @@
-import Ember from 'ember';
-
-const {
- Service,
- isPresent
-} = Ember;
+import Service from '@ember/service';
+import { isPresent } from '@ember/utils';
export default Service.extend({
hide() {
diff --git a/bower.json b/bower.json
deleted file mode 100644
index 73dad3a..0000000
--- a/bower.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "ember-cordova-splash",
- "dependencies": {
- "ember": "~2.7.0",
- "ember-cli-shims": "0.1.1",
- "ember-qunit-notifications": "0.1.0",
- "testdouble": "testdouble/testdouble.js#^1.4.2"
- }
-}
diff --git a/config/ember-try.js b/config/ember-try.js
index 014f603..1c31c54 100644
--- a/config/ember-try.js
+++ b/config/ember-try.js
@@ -1,20 +1,18 @@
-/*jshint node:true*/
module.exports = {
scenarios: [
{
- name: 'default',
- bower: {
- dependencies: { }
+ name: 'ember-lts-2.12',
+ npm: {
+ devDependencies: {
+ 'ember-source': '~2.12.0'
+ }
}
},
{
- name: 'ember-1.13',
- bower: {
- dependencies: {
- 'ember': '~1.13.0'
- },
- resolutions: {
- 'ember': '~1.13.0'
+ name: 'ember-lts-2.16',
+ npm: {
+ devDependencies: {
+ 'ember-source': '~2.16.0'
}
}
},
@@ -27,6 +25,11 @@ module.exports = {
resolutions: {
'ember': 'release'
}
+ },
+ npm: {
+ devDependencies: {
+ 'ember-source': null
+ }
}
},
{
@@ -38,6 +41,11 @@ module.exports = {
resolutions: {
'ember': 'beta'
}
+ },
+ npm: {
+ devDependencies: {
+ 'ember-source': null
+ }
}
},
{
@@ -49,6 +57,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..0dfaed4 100644
--- a/config/environment.js
+++ b/config/environment.js
@@ -1,4 +1,3 @@
-/*jshint node:true*/
'use strict';
module.exports = function(/* environment, appConfig */) {
diff --git a/ember-cli-build.js b/ember-cli-build.js
index 4ac3913..dc5a39e 100644
--- a/ember-cli-build.js
+++ b/ember-cli-build.js
@@ -1,9 +1,9 @@
-/*jshint node:true*/
-/* global require, module */
-var EmberAddon = require('ember-cli/lib/broccoli/ember-addon');
+'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
});
diff --git a/index.js b/index.js
index 0ec62e2..684c150 100644
--- a/index.js
+++ b/index.js
@@ -1,4 +1,3 @@
-/* jshint node: true */
'use strict';
module.exports = {
diff --git a/package.json b/package.json
index f503233..c549137 100644
--- a/package.json
+++ b/package.json
@@ -2,14 +2,18 @@
"name": "ember-cordova-splash",
"version": "0.1.6",
"description": "ember-cordova splash addon",
- "homepage": "https://github.com/isleofcode/ember-cordova-splash",
- "directories": {
- "test": "tests"
- },
+ "keywords": [
+ "ember-addon",
+ "cordova",
+ "crosswalk",
+ "phonegap",
+ "splash",
+ "splashscreen",
+ "ember cordova",
+ "ember-cordova",
+ "ember-cordova-splash"
+ ],
"license": "MIT",
- "engines": {
- "node": ">= 0.10.0"
- },
"author": {
"name": "Alex Blom",
"email": "alex@isleofcode.com",
@@ -27,46 +31,52 @@
"url": "https://isleofcode.com"
}
],
+ "homepage": "https://github.com/isleofcode/ember-cordova-splash",
+ "directories": {
+ "doc": "doc",
+ "test": "tests"
+ },
"repository": {
"type": "git",
"url": "git+https://github.com/isleofcode/ember-cordova-splash.git"
},
- "keywords": [
- "ember-addon",
- "cordova",
- "crosswalk",
- "phonegap",
- "splash",
- "splashscreen",
- "ember cordova",
- "ember-cordova",
- "ember-cordova-splash"
- ],
"scripts": {
+ "build": "ember build",
+ "lint:js": "eslint ./*.js addon addon-test-support app config lib server test-support tests",
+ "start": "ember serve",
"test": "ember try:each"
},
+ "dependencies": {
+ "ember-cli-babel": "^6.6.0",
+ "ember-cordova-installer": "^0.0.4"
+ },
"devDependencies": {
- "broccoli-asset-rev": "^2.4.2",
- "ember-cli": "2.11.1",
- "ember-cli-app-version": "^2.0.0",
- "ember-cli-dependency-checker": "^1.3.0",
- "ember-cli-htmlbars": "^1.1.1",
- "ember-cli-jshint": "^1.0.0",
- "ember-cli-qunit": "^2.0.0",
- "ember-cli-release": "^0.2.9",
+ "broccoli-asset-rev": "^2.4.5",
+ "ember-ajax": "^3.0.0",
+ "ember-cli": "~2.18.2",
+ "ember-cli-dependency-checker": "^2.0.0",
+ "ember-cli-eslint": "^4.2.1",
+ "ember-cli-htmlbars": "^2.0.1",
+ "ember-cli-htmlbars-inline-precompile": "^1.0.0",
+ "ember-cli-inject-live-reload": "^1.4.1",
+ "ember-cli-qunit": "^4.1.1",
+ "ember-cli-shims": "^1.2.0",
"ember-cli-sri": "^2.1.0",
- "ember-cli-test-loader": "^1.1.0",
- "ember-cli-testdouble": "0.1.0",
- "ember-cli-uglify": "^1.2.0",
- "ember-disable-prototype-extensions": "^1.1.0",
- "ember-export-application-global": "^1.0.5",
- "ember-load-initializers": "^0.5.1",
- "ember-resolver": "^2.0.3",
- "loader.js": "^4.0.1"
+ "ember-cli-testdouble": "^0.1.3",
+ "ember-cli-uglify": "^2.0.0",
+ "ember-disable-prototype-extensions": "^1.1.2",
+ "ember-export-application-global": "^2.0.0",
+ "ember-load-initializers": "^1.0.0",
+ "ember-resolver": "^4.0.0",
+ "ember-source": "~2.18.0",
+ "ember-welcome-page": "^3.0.0",
+ "eslint-plugin-ember": "^5.0.0",
+ "eslint-plugin-node": "^5.2.1",
+ "loader.js": "^4.2.3",
+ "testdouble": "^2.0.0"
},
- "dependencies": {
- "ember-cli-babel": "^5.1.6",
- "ember-cordova-installer": "^0.0.4"
+ "engines": {
+ "node": "^4.5 || 6.* || >= 7.*"
},
"ember-addon": {
"configPath": "tests/dummy/config"
diff --git a/testem.js b/testem.js
index 26044b2..d1755a4 100644
--- a/testem.js
+++ b/testem.js
@@ -1,13 +1,24 @@
-/*jshint node:true*/
module.exports = {
- "framework": "qunit",
- "test_page": "tests/index.html?hidepassed",
- "disable_watching": true,
- "launch_in_ci": [
- "PhantomJS"
+ test_page: 'tests/index.html?hidepassed',
+ disable_watching: true,
+ launch_in_ci: [
+ 'Chrome'
],
- "launch_in_dev": [
- "PhantomJS",
- "Chrome"
- ]
+ launch_in_dev: [
+ 'Chrome'
+ ],
+ browser_args: {
+ Chrome: {
+ mode: 'ci',
+ args: [
+ // --no-sandbox is needed when running Chrome inside a container
+ process.env.TRAVIS ? '--no-sandbox' : null,
+
+ '--disable-gpu',
+ '--headless',
+ '--remote-debugging-port=0',
+ '--window-size=1440,900'
+ ].filter(Boolean)
+ }
+ }
};
diff --git a/tests/.jshintrc b/tests/.jshintrc
deleted file mode 100644
index d2bd113..0000000
--- a/tests/.jshintrc
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "predef": [
- "document",
- "window",
- "location",
- "setTimeout",
- "$",
- "-Promise",
- "define",
- "console",
- "visit",
- "exists",
- "fillIn",
- "click",
- "keyEvent",
- "triggerEvent",
- "find",
- "findWithAssert",
- "wait",
- "DS",
- "andThen",
- "currentURL",
- "currentPath",
- "currentRouteName"
- ],
- "node": false,
- "browser": false,
- "boss": true,
- "curly": true,
- "debug": false,
- "devel": false,
- "eqeqeq": true,
- "evil": true,
- "forin": false,
- "immed": false,
- "laxbreak": false,
- "newcap": true,
- "noarg": true,
- "noempty": false,
- "nonew": false,
- "nomen": false,
- "onevar": false,
- "plusplus": false,
- "regexp": false,
- "undef": true,
- "sub": true,
- "strict": false,
- "white": false,
- "eqnull": true,
- "esversion": 6,
- "unused": true
-}
diff --git a/tests/dummy/app/app.js b/tests/dummy/app/app.js
index 831ad61..b3b2bd6 100644
--- a/tests/dummy/app/app.js
+++ b/tests/dummy/app/app.js
@@ -1,13 +1,9 @@
-import Ember from 'ember';
+import Application from '@ember/application';
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({
+const App = Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver
diff --git a/tests/dummy/app/index.html b/tests/dummy/app/index.html
index 5120bd7..61400b2 100644
--- a/tests/dummy/app/index.html
+++ b/tests/dummy/app/index.html
@@ -9,8 +9,8 @@
{{content-for "head"}}
-
-
+
+
{{content-for "head-footer"}}
diff --git a/tests/dummy/app/router.js b/tests/dummy/app/router.js
index cdc2578..d0bb009 100644
--- a/tests/dummy/app/router.js
+++ b/tests/dummy/app/router.js
@@ -1,7 +1,7 @@
-import Ember from 'ember';
+import EmberRouter from '@ember/routing/router';
import config from './config/environment';
-const Router = Ember.Router.extend({
+const Router = EmberRouter.extend({
location: config.locationType,
rootURL: config.rootURL
});
diff --git a/tests/dummy/app/templates/application.hbs b/tests/dummy/app/templates/application.hbs
new file mode 100644
index 0000000..1eac0a2
--- /dev/null
+++ b/tests/dummy/app/templates/application.hbs
@@ -0,0 +1,5 @@
+{{!-- The following component displays Ember's default welcome message. --}}
+{{welcome-page}}
+{{!-- Feel free to remove this! --}}
+
+{{outlet}}
\ No newline at end of file
diff --git a/tests/dummy/config/environment.js b/tests/dummy/config/environment.js
index 2529939..182d3fc 100644
--- a/tests/dummy/config/environment.js
+++ b/tests/dummy/config/environment.js
@@ -1,15 +1,19 @@
-/* jshint node: true */
+'use strict';
module.exports = function(environment) {
- var ENV = {
+ let ENV = {
modulePrefix: 'dummy',
- environment: environment,
+ 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
}
},
@@ -36,10 +40,11 @@ module.exports = function(environment) {
ENV.APP.LOG_VIEW_LOOKUPS = false;
ENV.APP.rootElement = '#ember-testing';
+ ENV.APP.autoboot = false;
}
if (environment === 'production') {
-
+ // here you can enable a production-specific feature
}
return ENV;
diff --git a/tests/dummy/config/targets.js b/tests/dummy/config/targets.js
new file mode 100644
index 0000000..082e68b
--- /dev/null
+++ b/tests/dummy/config/targets.js
@@ -0,0 +1,8 @@
+module.exports = {
+ browsers: [
+ 'ie 9',
+ 'last 1 Chrome versions',
+ 'last 1 Firefox versions',
+ 'last 1 Safari versions'
+ ]
+};
diff --git a/tests/helpers/destroy-app.js b/tests/helpers/destroy-app.js
index c3d4d1a..e7f983b 100644
--- a/tests/helpers/destroy-app.js
+++ b/tests/helpers/destroy-app.js
@@ -1,5 +1,5 @@
-import Ember from 'ember';
+import { run } from '@ember/runloop';
export default function destroyApp(application) {
- Ember.run(application, 'destroy');
+ run(application, 'destroy');
}
diff --git a/tests/helpers/module-for-acceptance.js b/tests/helpers/module-for-acceptance.js
index 76996fd..90a93ba 100644
--- a/tests/helpers/module-for-acceptance.js
+++ b/tests/helpers/module-for-acceptance.js
@@ -1,10 +1,8 @@
import { module } from 'qunit';
-import Ember from 'ember';
+import { resolve } from 'rsvp';
import startApp from '../helpers/start-app';
import destroyApp from '../helpers/destroy-app';
-const { RSVP: { Promise } } = Ember;
-
export default function(name, options = {}) {
module(name, {
beforeEach() {
@@ -17,7 +15,7 @@ export default function(name, options = {}) {
afterEach() {
let afterEach = options.afterEach && options.afterEach.apply(this, arguments);
- return Promise.resolve(afterEach).then(() => destroyApp(this.application));
+ return resolve(afterEach).then(() => destroyApp(this.application));
}
});
}
diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js
index e098f1d..99d35dc 100644
--- a/tests/helpers/start-app.js
+++ b/tests/helpers/start-app.js
@@ -1,18 +1,17 @@
-import Ember from 'ember';
import Application from '../../app';
import config from '../../config/environment';
+import { merge } from '@ember/polyfills';
+import { run } from '@ember/runloop';
export default function startApp(attrs) {
- let application;
+ let attributes = merge({}, config.APP);
+ attributes.autoboot = true;
+ attributes = merge(attributes, attrs); // use defaults, but you can override;
- let attributes = Ember.merge({}, config.APP);
- attributes = Ember.merge(attributes, attrs); // use defaults, but you can override;
-
- Ember.run(() => {
- application = Application.create(attributes);
+ return 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 f7ff652..5209b85 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -21,7 +21,7 @@
{{content-for "body"}}
{{content-for "test-body"}}
-
+
diff --git a/tests/test-helper.js b/tests/test-helper.js
index e6cfb70..0382a84 100644
--- a/tests/test-helper.js
+++ b/tests/test-helper.js
@@ -1,6 +1,8 @@
-import resolver from './helpers/resolver';
-import {
- setResolver
-} from 'ember-qunit';
+import Application from '../app';
+import config from '../config/environment';
+import { setApplication } from '@ember/test-helpers';
+import { start } from 'ember-qunit';
-setResolver(resolver);
+setApplication(Application.create(config.APP));
+
+start();