From 0a2e0690f9054044af5c2c58dfd8e6d59e43479f Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Wed, 11 Jan 2017 13:46:52 -0500 Subject: [PATCH] Upgrade to new Ember, Ember CLI --- lib/docker_manager/upgrader.rb | 1 + manager-client/.editorconfig | 14 ----- manager-client/.gitignore | 4 +- manager-client/.jshintrc | 2 +- manager-client/.travis.yml | 14 +++-- manager-client/.watchmanconfig | 3 + manager-client/Brocfile.js | 32 ---------- manager-client/README.md | 52 +++++++++++++++++ manager-client/app/app.js | 10 ++-- manager-client/app/components/x-console.js | 6 -- manager-client/app/components/x-tab.js | 9 --- manager-client/app/helpers/fmt-ago.js | 10 ---- manager-client/app/helpers/fmt-commit.js | 8 ++- manager-client/app/index.html | 4 +- manager-client/app/initializers/crsf-token.js | 6 +- manager-client/app/models/process-list.js | 16 +++-- manager-client/app/models/repo.js | 9 +-- manager-client/app/resolver.js | 3 + manager-client/app/router.js | 7 ++- manager-client/app/routes/index.js | 2 +- manager-client/app/routes/processes.js | 2 +- manager-client/app/routes/upgrade.js | 2 +- manager-client/app/templates/application.hbs | 19 +++--- .../app/templates/components/repo-status.hbs | 10 +++- .../app/templates/components/x-console.hbs | 1 + .../app/templates/components/x-tab.hbs | 1 - manager-client/app/templates/upgrade.hbs | 2 +- manager-client/app/views/.gitkeep | 0 manager-client/bower.json | 17 ++---- manager-client/config/environment.js | 11 ++-- manager-client/ember-cli-build.js | 28 +++++++++ manager-client/package.json | 58 +++++++++++-------- manager-client/public/.gitkeep | 0 manager-client/{testem.json => testem.js} | 5 +- manager-client/tests/.jshintrc | 5 +- manager-client/tests/helpers/destroy-app.js | 5 ++ .../tests/helpers/module-for-acceptance.js | 23 ++++++++ manager-client/tests/helpers/resolver.js | 4 +- manager-client/tests/helpers/start-app.js | 9 ++- manager-client/tests/index.html | 34 +++++------ .../styles => tests/integration}/.gitkeep | 0 41 files changed, 256 insertions(+), 192 deletions(-) create mode 100644 manager-client/.watchmanconfig delete mode 100644 manager-client/Brocfile.js create mode 100644 manager-client/README.md delete mode 100644 manager-client/app/components/x-tab.js delete mode 100644 manager-client/app/helpers/fmt-ago.js create mode 100644 manager-client/app/resolver.js create mode 100644 manager-client/app/templates/components/x-console.hbs delete mode 100644 manager-client/app/templates/components/x-tab.hbs delete mode 100644 manager-client/app/views/.gitkeep create mode 100644 manager-client/ember-cli-build.js delete mode 100644 manager-client/public/.gitkeep rename manager-client/{testem.json => testem.js} (81%) create mode 100644 manager-client/tests/helpers/destroy-app.js create mode 100644 manager-client/tests/helpers/module-for-acceptance.js rename manager-client/{app/styles => tests/integration}/.gitkeep (100%) diff --git a/lib/docker_manager/upgrader.rb b/lib/docker_manager/upgrader.rb index 912fbcd..44e1a6c 100644 --- a/lib/docker_manager/upgrader.rb +++ b/lib/docker_manager/upgrader.rb @@ -68,6 +68,7 @@ class DockerManager::Upgrader def run(cmd) log "$ #{cmd}" msg = "" + clear_env = Hash[*ENV.map{|k,v| [k,nil]} .reject{ |k,v| ["PWD","HOME","SHELL","PATH"].include?(k) || diff --git a/manager-client/.editorconfig b/manager-client/.editorconfig index 47c5438..219985c 100644 --- a/manager-client/.editorconfig +++ b/manager-client/.editorconfig @@ -13,22 +13,8 @@ insert_final_newline = true indent_style = space indent_size = 2 -[*.js] -indent_style = space -indent_size = 2 - [*.hbs] insert_final_newline = false -indent_style = space -indent_size = 2 - -[*.css] -indent_style = space -indent_size = 2 - -[*.html] -indent_style = space -indent_size = 2 [*.{diff,md}] trim_trailing_whitespace = false diff --git a/manager-client/.gitignore b/manager-client/.gitignore index 86fceae..5ad14dd 100644 --- a/manager-client/.gitignore +++ b/manager-client/.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,5 @@ /connect.lock /coverage/* /libpeerconnection.log -npm-debug.log +npm-debug.log* testem.log diff --git a/manager-client/.jshintrc b/manager-client/.jshintrc index 08096ef..d421faa 100644 --- a/manager-client/.jshintrc +++ b/manager-client/.jshintrc @@ -27,6 +27,6 @@ "strict": false, "white": false, "eqnull": true, - "esnext": true, + "esversion": 6, "unused": true } diff --git a/manager-client/.travis.yml b/manager-client/.travis.yml index 66dd107..d988016 100644 --- a/manager-client/.travis.yml +++ b/manager-client/.travis.yml @@ -1,21 +1,23 @@ --- language: node_js node_js: - - "0.12" + - "4" sudo: false cache: directories: - - node_modules + - $HOME/.npm + - $HOME/.cache # includes bowers cache before_install: - - export PATH=/usr/local/phantomjs-2.0.0/bin:$PATH - - "npm config set spin false" - - "npm install -g npm@^2" + - npm config set spin false + - npm install -g bower + - bower --version + - npm install phantomjs-prebuilt + - node_modules/phantomjs-prebuilt/bin/phantomjs --version install: - - npm install -g bower - npm install - bower install diff --git a/manager-client/.watchmanconfig b/manager-client/.watchmanconfig new file mode 100644 index 0000000..e7834e3 --- /dev/null +++ b/manager-client/.watchmanconfig @@ -0,0 +1,3 @@ +{ + "ignore_dirs": ["tmp", "dist"] +} diff --git a/manager-client/Brocfile.js b/manager-client/Brocfile.js deleted file mode 100644 index 52e2314..0000000 --- a/manager-client/Brocfile.js +++ /dev/null @@ -1,32 +0,0 @@ -/* global require, module */ - -var EmberApp = require('ember-cli/lib/broccoli/ember-app'); - -var app = new EmberApp({ - fingerprint: { - enabled: false - }, - vendorFiles: { - 'handlebars.js': null - } -}); - -app.import("bower_components/bootbox/bootbox.js"); -app.import("bower_components/message-bus/assets/message-bus.js"); -app.import("bower_components/momentjs/moment.js"); -app.import("bower_components/bootstrap/js/modal.js"); - -// Use `app.import` to add additional libraries to the generated -// output files. -// -// If you need to use different assets in different -// environments, specify an object as the first parameter. That -// object's keys should be the environment name and the values -// should be the asset to use in that environment. -// -// If the library that you are including contains AMD or ES6 -// modules that you would like to import into your application -// please specify an object with the list of modules as keys -// along with the exports of each module as its value. - -module.exports = app.toTree(); diff --git a/manager-client/README.md b/manager-client/README.md new file mode 100644 index 0000000..47fe36a --- /dev/null +++ b/manager-client/README.md @@ -0,0 +1,52 @@ +# manager-client + +This README outlines the details of collaborating on this Ember application. +A short introduction of this app could easily go here. + +## Prerequisites + +You will need the following things properly installed on your computer. + +* [Git](https://git-scm.com/) +* [Node.js](https://nodejs.org/) (with NPM) +* [Bower](https://bower.io/) +* [Ember CLI](https://ember-cli.com/) +* [PhantomJS](http://phantomjs.org/) + +## Installation + +* `git clone ` this repository +* `cd manager-client` +* `npm install` +* `bower install` + +## Running / Development + +* `ember serve` +* Visit your app at [http://localhost:4200](http://localhost:4200). + +### Code Generators + +Make use of the many generators for code, try `ember help generate` for more details + +### Running Tests + +* `ember test` +* `ember test --server` + +### Building + +* `ember build` (development) +* `ember build --environment production` (production) + +### Deploying + +Specify what it takes to deploy your app. + +## Further Reading / Useful Links + +* [ember.js](http://emberjs.com/) +* [ember-cli](https://ember-cli.com/) +* Development Browser Extensions + * [ember inspector for chrome](https://chrome.google.com/webstore/detail/ember-inspector/bmdblncegkenkacieihfhpjfppoconhi) + * [ember inspector for firefox](https://addons.mozilla.org/en-US/firefox/addon/ember-inspector/) diff --git a/manager-client/app/app.js b/manager-client/app/app.js index 757df38..831ad61 100644 --- a/manager-client/app/app.js +++ b/manager-client/app/app.js @@ -1,14 +1,16 @@ 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; -var App = Ember.Application.extend({ +App = Ember.Application.extend({ modulePrefix: config.modulePrefix, podModulePrefix: config.podModulePrefix, - Resolver: Resolver + Resolver }); loadInitializers(App, config.modulePrefix); diff --git a/manager-client/app/components/x-console.js b/manager-client/app/components/x-console.js index aa5c7f4..01021c2 100644 --- a/manager-client/app/components/x-console.js +++ b/manager-client/app/components/x-console.js @@ -3,12 +3,6 @@ import Ember from 'ember'; export default Ember.Component.extend({ classNameBindings: [':logs'], - render: function(buffer) { - if (!Ember.isEmpty(this.get('output'))) { - buffer.push(Ember.Handlebars.Utils.escapeExpression(this.get('output'))); - } - }, - _outputChanged: function() { Ember.run.scheduleOnce('afterRender', this, '_scrollBottom'); this.rerender(); diff --git a/manager-client/app/components/x-tab.js b/manager-client/app/components/x-tab.js deleted file mode 100644 index b4245b2..0000000 --- a/manager-client/app/components/x-tab.js +++ /dev/null @@ -1,9 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Component.extend({ - tagName: 'li', - classNameBindings: ['active'], - active: function() { - return this.get('childViews').anyBy('active'); - }.property('childViews.@each.active') -}); diff --git a/manager-client/app/helpers/fmt-ago.js b/manager-client/app/helpers/fmt-ago.js deleted file mode 100644 index 51ff459..0000000 --- a/manager-client/app/helpers/fmt-ago.js +++ /dev/null @@ -1,10 +0,0 @@ -/* global moment:true */ -import Ember from 'ember'; - -export default Ember.Handlebars.makeBoundHelper(function(dt) { - if (Ember.isEmpty(dt)) { - return new Ember.Handlebars.SafeString("—"); - } - - return moment(dt).fromNow(); -}); diff --git a/manager-client/app/helpers/fmt-commit.js b/manager-client/app/helpers/fmt-commit.js index c02ad01..aa17f91 100644 --- a/manager-client/app/helpers/fmt-commit.js +++ b/manager-client/app/helpers/fmt-commit.js @@ -1,12 +1,14 @@ import Ember from 'ember'; -export default Ember.Handlebars.makeBoundHelper(function(sha1, url, branch) { +export default Ember.Helper.helper(function(params) { + const [sha1, url, branch] = params; + if (Ember.isNone(url)) { return; } if (Ember.isNone(branch)) { - return new Ember.Handlebars.SafeString("(" + sha1 + ")"); + return new Ember.String.htmlSafe("(" + sha1 + ")"); } var _url = url.substr(0, url.search(/(\.git)?$/)); var _branch = (branch.indexOf('/') !== -1) ? branch.split('/')[1] : branch; - return new Ember.Handlebars.SafeString("(" + sha1 + ")"); + return new Ember.String.htmlSafe("(" + sha1 + ")"); }); diff --git a/manager-client/app/index.html b/manager-client/app/index.html index c85265c..5c88669 100644 --- a/manager-client/app/index.html +++ b/manager-client/app/index.html @@ -10,7 +10,7 @@ {{content-for 'head'}} - + {{content-for 'head-footer'}} @@ -28,7 +28,7 @@ {{content-for 'body'}} - + {{content-for 'body-footer'}} diff --git a/manager-client/app/initializers/crsf-token.js b/manager-client/app/initializers/crsf-token.js index 1d6afb9..426166e 100644 --- a/manager-client/app/initializers/crsf-token.js +++ b/manager-client/app/initializers/crsf-token.js @@ -1,11 +1,11 @@ /* global $:true */ -import ajax from "ic-ajax"; +import request from 'ember-ajax/request'; export default { name: "findCsrfToken", - initialize: function() { - return ajax(Discourse.getURL('/session/csrf')).then(function(result) { + initialize() { + return request(Discourse.getURL('/session/csrf')).then(function(result) { var token = result.csrf; $.ajaxPrefilter(function(options, originalOptions, xhr) { if (!options.crossDomain) { diff --git a/manager-client/app/models/process-list.js b/manager-client/app/models/process-list.js index 03c6fa0..18662fa 100644 --- a/manager-client/app/models/process-list.js +++ b/manager-client/app/models/process-list.js @@ -1,24 +1,22 @@ -import ajax from "ic-ajax"; +import request from 'ember-ajax/request'; import Ember from 'ember'; var ProcessList = Ember.Object.extend({ - init: function() { + init() { this._super(); }, - refresh: function() { - var self = this; - return ajax(Discourse.getURL("/admin/docker/ps")).then(function(result) { - self.set('output', result); - return self; + refresh() { + return request(Discourse.getURL("/admin/docker/ps"), {dataType: 'text'}).then(result => { + this.set('output', result); }); } }); ProcessList.reopenClass({ - find: function() { - var list = ProcessList.create(); + find() { + const list = ProcessList.create(); return list.refresh(); } }); diff --git a/manager-client/app/models/repo.js b/manager-client/app/models/repo.js index c9d9437..9816cda 100644 --- a/manager-client/app/models/repo.js +++ b/manager-client/app/models/repo.js @@ -1,4 +1,4 @@ -import ajax from "ic-ajax"; +import request from 'ember-ajax/request'; import Ember from 'ember'; var loaded = []; @@ -25,7 +25,8 @@ var Repo = Ember.Object.extend({ repoAjax: function(url, args) { args = args || {}; args.data = this.getProperties('path', 'version', 'branch'); - return ajax(Discourse.getURL(url), args); + + return request(Discourse.getURL(url), args); }, findLatest: function() { @@ -70,11 +71,11 @@ var Repo = Ember.Object.extend({ }); Repo.reopenClass({ - findAll: function() { + findAll() { return new Ember.RSVP.Promise(function (resolve) { if (loaded.length) { return resolve(loaded); } - ajax(Discourse.getURL("/admin/docker/repos")).then(function(result) { + request(Discourse.getURL("/admin/docker/repos")).then(function(result) { loaded = result.repos.map(function(r) { return Repo.create(r); }); diff --git a/manager-client/app/resolver.js b/manager-client/app/resolver.js new file mode 100644 index 0000000..2fb563d --- /dev/null +++ b/manager-client/app/resolver.js @@ -0,0 +1,3 @@ +import Resolver from 'ember-resolver'; + +export default Resolver; diff --git a/manager-client/app/router.js b/manager-client/app/router.js index 18ae256..93c1aad 100644 --- a/manager-client/app/router.js +++ b/manager-client/app/router.js @@ -1,13 +1,14 @@ import Ember from 'ember'; import config from './config/environment'; -var Router = Ember.Router.extend({ - location: config.locationType +const Router = Ember.Router.extend({ + location: config.locationType, + rootURL: config.rootURL }); Router.map(function() { this.route("processes"); - this.resource('upgrade', { path: '/upgrade/:id' }); + this.route('upgrade', { path: '/upgrade/:id' }); }); export default Router; diff --git a/manager-client/app/routes/index.js b/manager-client/app/routes/index.js index f0d8ea2..43bdb57 100644 --- a/manager-client/app/routes/index.js +++ b/manager-client/app/routes/index.js @@ -1,4 +1,4 @@ -import Repo from 'docker-manager/models/repo'; +import Repo from 'manager-client/models/repo'; import Ember from 'ember'; export default Ember.Route.extend({ diff --git a/manager-client/app/routes/processes.js b/manager-client/app/routes/processes.js index 1634fe3..93f2cf8 100644 --- a/manager-client/app/routes/processes.js +++ b/manager-client/app/routes/processes.js @@ -1,4 +1,4 @@ -import ProcessList from 'docker-manager/models/process-list'; +import ProcessList from 'manager-client/models/process-list'; import Ember from 'ember'; export default Ember.Route.extend({ diff --git a/manager-client/app/routes/upgrade.js b/manager-client/app/routes/upgrade.js index 1d0bae6..ab20c98 100644 --- a/manager-client/app/routes/upgrade.js +++ b/manager-client/app/routes/upgrade.js @@ -1,4 +1,4 @@ -import Repo from 'docker-manager/models/repo'; +import Repo from 'manager-client/models/repo'; import Ember from 'ember'; export default Ember.Route.extend({ diff --git a/manager-client/app/templates/application.hbs b/manager-client/app/templates/application.hbs index 2c03651..0534f2f 100644 --- a/manager-client/app/templates/application.hbs +++ b/manager-client/app/templates/application.hbs @@ -1,5 +1,5 @@
- {{#link-to 'index'}}{{/link-to}} + {{#link-to 'index'}}{{/link-to}}

{{#link-to 'index'}}Upgrade{{/link-to}}

@@ -9,18 +9,23 @@ {{/if}} {{outlet}} diff --git a/manager-client/app/templates/components/repo-status.hbs b/manager-client/app/templates/components/repo-status.hbs index 4fdcc45..fd35f53 100644 --- a/manager-client/app/templates/components/repo-status.hbs +++ b/manager-client/app/templates/components/repo-status.hbs @@ -12,13 +12,19 @@

New Version Available!

{{#if repo.upgrading}} {{else}} - + {{/if}} {{/if}} diff --git a/manager-client/app/templates/components/x-console.hbs b/manager-client/app/templates/components/x-console.hbs new file mode 100644 index 0000000..40e9482 --- /dev/null +++ b/manager-client/app/templates/components/x-console.hbs @@ -0,0 +1 @@ +{{output}} diff --git a/manager-client/app/templates/components/x-tab.hbs b/manager-client/app/templates/components/x-tab.hbs deleted file mode 100644 index 771e44d..0000000 --- a/manager-client/app/templates/components/x-tab.hbs +++ /dev/null @@ -1 +0,0 @@ -{{#link-to route}}{{yield}}{{/link-to}} diff --git a/manager-client/app/templates/upgrade.hbs b/manager-client/app/templates/upgrade.hbs index 1ff8027..f35353b 100644 --- a/manager-client/app/templates/upgrade.hbs +++ b/manager-client/app/templates/upgrade.hbs @@ -16,7 +16,7 @@

{{model.name}} is at the newest version {{fmt-commit model.version model.url model.branch}}.

{{else}}
- + {{#if model.upgrading}} {{/if}} diff --git a/manager-client/app/views/.gitkeep b/manager-client/app/views/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/manager-client/bower.json b/manager-client/bower.json index 23fee2a..266a172 100644 --- a/manager-client/bower.json +++ b/manager-client/bower.json @@ -1,18 +1,9 @@ { - "name": "docker-manager", + "name": "manager-client", "dependencies": { - "ember": "1.11.0", - "ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3", - "ember-cli-test-loader": "ember-cli-test-loader#0.1.3", - "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", - "jquery": "1.11.1", - "loader.js": "ember-cli/loader.js#3.2.0", - "qunit": "~1.17.1", + "ember": "~2.10.0", "bootbox": "~4.3.0", - "message-bus": "https://github.com/SamSaffron/message_bus.git#84f733c14e5b4e7f2464b5b45944ceccec727899", - "momentjs": "~2.8.4" + "ember-cli-shims": "0.1.3", + "message-bus": "https://github.com/SamSaffron/message_bus.git#84f733c14e5b4e7f2464b5b45944ceccec727899" } } diff --git a/manager-client/config/environment.js b/manager-client/config/environment.js index 663e1dc..1e5b931 100644 --- a/manager-client/config/environment.js +++ b/manager-client/config/environment.js @@ -2,14 +2,18 @@ module.exports = function(environment) { var ENV = { - modulePrefix: 'docker-manager', + modulePrefix: 'manager-client', environment: environment, - baseURL: '/', - locationType: 'auto', + rootURL: '/', + locationType: 'hash', 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 +33,6 @@ module.exports = function(environment) { if (environment === 'test') { // Testem prefers this... - ENV.baseURL = '/'; ENV.locationType = 'none'; // keep test console output quieter diff --git a/manager-client/ember-cli-build.js b/manager-client/ember-cli-build.js new file mode 100644 index 0000000..b2e62d2 --- /dev/null +++ b/manager-client/ember-cli-build.js @@ -0,0 +1,28 @@ +/*jshint node:true*/ +/* global require, module */ +var EmberApp = require('ember-cli/lib/broccoli/ember-app'); + + +module.exports = function(defaults) { + var app = new EmberApp(defaults, { + // Add options here + }); + + // Use `app.import` to add additional libraries to the generated + // output files. + // + // If you need to use different assets in different + // environments, specify an object as the first parameter. That + // object's keys should be the environment name and the values + // should be the asset to use in that environment. + // + // If the library that you are including contains AMD or ES6 + // modules that you would like to import into your application + // please specify an object with the list of modules as keys + // along with the exports of each module as its value. + app.import("bower_components/bootbox/bootbox.js"); + app.import("bower_components/message-bus/assets/message-bus.js"); + app.import("bower_components/bootstrap/js/modal.js"); + + return app.toTree(); +}; diff --git a/manager-client/package.json b/manager-client/package.json index d2188db..1870032 100644 --- a/manager-client/package.json +++ b/manager-client/package.json @@ -1,37 +1,45 @@ { - "name": "docker-manager", + "name": "manager-client", "version": "0.0.0", - "description": "Small description for docker-manager goes here", - "private": true, + "description": "Small description for manager-client goes here", + "license": "MIT", + "author": "", "directories": { "doc": "doc", "test": "tests" }, + "repository": "", "scripts": { - "start": "ember server", "build": "ember build", + "start": "ember server", "test": "ember test" }, - "repository": "", - "engines": { - "node": ">= 0.10.0" - }, - "author": "", - "license": "MIT", "devDependencies": { - "broccoli-asset-rev": "^2.0.2", - "ember-cli": "0.2.5", - "ember-cli-app-version": "0.3.3", - "ember-cli-babel": "^5.0.0", - "ember-cli-dependency-checker": "^1.0.0", - "ember-cli-htmlbars": "0.7.6", - "ember-cli-ic-ajax": "0.1.1", - "ember-cli-inject-live-reload": "^1.3.0", - "ember-cli-qunit": "0.3.13", - "ember-cli-sass": "^4.0.0", - "ember-cli-uglify": "^1.0.1", - "ember-export-application-global": "^1.0.2", - "ember-cli-font-awesome": "0.0.4", - "ember-cli-ic-ajax": "0.1.1" - } + "broccoli-asset-rev": "^2.4.5", + "ember-ajax": "2.5.3", + "ember-cli": "2.10.0", + "ember-cli-app-version": "^2.0.0", + "ember-cli-babel": "^5.1.7", + "ember-cli-dependency-checker": "^1.3.0", + "ember-cli-htmlbars": "^1.0.10", + "ember-cli-htmlbars-inline-precompile": "^0.3.3", + "ember-cli-inject-live-reload": "^1.4.1", + "ember-cli-jshint": "^2.0.1", + "ember-cli-moment-shim": "3.0.1", + "ember-cli-qunit": "^3.0.1", + "ember-cli-release": "^0.2.9", + "ember-cli-sass": "6.1.0", + "ember-cli-sri": "^2.1.0", + "ember-cli-test-loader": "^1.1.0", + "ember-cli-uglify": "^1.2.0", + "ember-export-application-global": "^1.0.5", + "ember-load-initializers": "^0.5.1", + "ember-moment": "7.3.0", + "ember-resolver": "^2.0.3", + "loader.js": "^4.0.10" + }, + "engines": { + "node": ">= 0.12.0" + }, + "private": true } diff --git a/manager-client/public/.gitkeep b/manager-client/public/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/manager-client/testem.json b/manager-client/testem.js similarity index 81% rename from manager-client/testem.json rename to manager-client/testem.js index 0f35392..26044b2 100644 --- a/manager-client/testem.json +++ b/manager-client/testem.js @@ -1,4 +1,5 @@ -{ +/*jshint node:true*/ +module.exports = { "framework": "qunit", "test_page": "tests/index.html?hidepassed", "disable_watching": true, @@ -9,4 +10,4 @@ "PhantomJS", "Chrome" ] -} +}; diff --git a/manager-client/tests/.jshintrc b/manager-client/tests/.jshintrc index ea8b88f..d2bd113 100644 --- a/manager-client/tests/.jshintrc +++ b/manager-client/tests/.jshintrc @@ -26,7 +26,7 @@ "node": false, "browser": false, "boss": true, - "curly": false, + "curly": true, "debug": false, "devel": false, "eqeqeq": true, @@ -47,5 +47,6 @@ "strict": false, "white": false, "eqnull": true, - "esnext": true + "esversion": 6, + "unused": true } diff --git a/manager-client/tests/helpers/destroy-app.js b/manager-client/tests/helpers/destroy-app.js new file mode 100644 index 0000000..c3d4d1a --- /dev/null +++ b/manager-client/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/manager-client/tests/helpers/module-for-acceptance.js b/manager-client/tests/helpers/module-for-acceptance.js new file mode 100644 index 0000000..76996fd --- /dev/null +++ b/manager-client/tests/helpers/module-for-acceptance.js @@ -0,0 +1,23 @@ +import { module } from 'qunit'; +import Ember from 'ember'; +import startApp from '../helpers/start-app'; +import destroyApp from '../helpers/destroy-app'; + +const { RSVP: { Promise } } = Ember; + +export default function(name, options = {}) { + module(name, { + beforeEach() { + this.application = startApp(); + + if (options.beforeEach) { + return options.beforeEach.apply(this, arguments); + } + }, + + afterEach() { + let afterEach = options.afterEach && options.afterEach.apply(this, arguments); + return Promise.resolve(afterEach).then(() => destroyApp(this.application)); + } + }); +} diff --git a/manager-client/tests/helpers/resolver.js b/manager-client/tests/helpers/resolver.js index 28f4ece..b208d38 100644 --- a/manager-client/tests/helpers/resolver.js +++ b/manager-client/tests/helpers/resolver.js @@ -1,7 +1,7 @@ -import Resolver from 'ember/resolver'; +import Resolver from '../../resolver'; import config from '../../config/environment'; -var resolver = Resolver.create(); +const resolver = Resolver.create(); resolver.namespace = { modulePrefix: config.modulePrefix, diff --git a/manager-client/tests/helpers/start-app.js b/manager-client/tests/helpers/start-app.js index 16cc7c3..54c33c1 100644 --- a/manager-client/tests/helpers/start-app.js +++ b/manager-client/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); - attributes = Ember.merge(attributes, attrs); // use defaults, but you can override; + // use defaults, but you can override + let attributes = Ember.assign({}, config.APP, attrs); - Ember.run(function() { + Ember.run(() => { application = Application.create(attributes); application.setupForTesting(); application.injectTestHelpers(); diff --git a/manager-client/tests/index.html b/manager-client/tests/index.html index b038b80..e35d727 100644 --- a/manager-client/tests/index.html +++ b/manager-client/tests/index.html @@ -3,31 +3,31 @@ - DockerManager Tests + ManagerClient Tests - {{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/manager-client/app/styles/.gitkeep b/manager-client/tests/integration/.gitkeep similarity index 100% rename from manager-client/app/styles/.gitkeep rename to manager-client/tests/integration/.gitkeep