From ed71aa133e85b11bf5136a3cab6adcddde016910 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Thu, 14 Jan 2016 11:54:26 +0100 Subject: [PATCH 1/4] Update Ember.js to 2.2.0 --- app/app.js | 2 +- app/index.html | 8 ++++---- bower.json | 11 +++++++---- package.json | 9 +++++---- tests/helpers/resolver.js | 2 +- tests/index.html | 18 +++++++++--------- 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/app/app.js b/app/app.js index f56a9fcf..d9246b12 100644 --- a/app/app.js +++ b/app/app.js @@ -1,5 +1,5 @@ import Ember from 'ember'; -import Resolver from 'ember/resolver'; +import Resolver from 'ember-resolver'; import loadInitializers from 'ember/load-initializers'; import config from './config/environment'; diff --git a/app/index.html b/app/index.html index 0f7355ba..2b3e7e67 100644 --- a/app/index.html +++ b/app/index.html @@ -8,14 +8,14 @@ - {{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"}} Do you have a question? diff --git a/bower.json b/bower.json index 5fdfcb84..b850a2aa 100644 --- a/bower.json +++ b/bower.json @@ -1,15 +1,15 @@ { "name": "travis", "dependencies": { - "ember": "1.13.10", - "ember-cli-shims": "0.0.6", - "ember-cli-test-loader": "0.2.1", "ember-data": "1.13.15", + "ember": "2.2.0", + "ember-cli-shims": "0.1.0", + "ember-cli-test-loader": "0.2.2", "ember-load-initializers": "0.1.7", "ember-qunit": "0.4.16", "ember-qunit-notifications": "0.1.0", "jquery": "~1.11.3", - "loader.js": "ember-cli/loader.js#3.2.1", + "loader.js": "^3.5.0", "qunit": "~1.20.0", "visibilityjs": "~1.2.1", "JavaScript-MD5": "~1.1.0", @@ -18,5 +18,8 @@ "pusher": "~2.2.3", "pretender": "0.1.0", "ember-resolver": "~0.1.20" + }, + "resolutions": { + "ember": "2.2.0" } } diff --git a/package.json b/package.json index aacf826c..f0168b75 100644 --- a/package.json +++ b/package.json @@ -21,20 +21,20 @@ "devDependencies": { "broccoli-asset-rev": "^2.2.0", "broccoli-sass": "0.6.6", - "ember-cli": "1.13.12", + "ember-ajax": "0.7.1", + "ember-cli": "2.2.0-beta.6", "ember-cli-app-version": "^1.0.0", "ember-cli-autoprefixer": "^0.3.0", "ember-cli-babel": "5.1.5", - "ember-cli-dependency-checker": "^1.1.0", + "ember-cli-dependency-checker": "^1.2.0", "ember-cli-deprecation-workflow": "0.1.5", "ember-cli-document-title": "0.2.0", "ember-cli-htmlbars": "1.0.1", "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-inline-images": "^0.0.4", "ember-cli-pretender": "0.3.1", - "ember-cli-qunit": "^1.0.4", + "ember-cli-qunit": "^1.1.0", "ember-cli-release": "0.2.8", "ember-cli-sauce": "^1.1.0", "ember-cli-uglify": "1.2.0", @@ -42,6 +42,7 @@ "ember-data-filter": "1.13.0", "ember-disable-proxy-controllers": "^1.0.1", "ember-export-application-global": "^1.0.4", + "ember-resolver": "^2.0.3", "ember-try": "0.0.7", "emberx-select": "2.0.2" } diff --git a/tests/helpers/resolver.js b/tests/helpers/resolver.js index ebfb4e4d..ac94b1bc 100644 --- a/tests/helpers/resolver.js +++ b/tests/helpers/resolver.js @@ -1,4 +1,4 @@ -import Resolver from 'ember/resolver'; +import Resolver from 'ember-resolver'; import config from '../../config/environment'; const resolver = Resolver.create(); diff --git a/tests/index.html b/tests/index.html index f1301f10..8c1263e9 100644 --- a/tests/index.html +++ b/tests/index.html @@ -7,8 +7,8 @@ - {{content-for 'head'}} - {{content-for 'test-head'}} + {{content-for "head"}} + {{content-for "test-head"}} @@ -23,21 +23,21 @@ } - {{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"}} From 0c15a09d548838491c36463e1892eaa41ce94fcf Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Thu, 14 Jan 2016 11:54:47 +0100 Subject: [PATCH 2/4] Update Ember Data to 2.3.0 --- app/adapters/application.js | 4 ++-- app/adapters/v3.js | 4 ++-- app/models/account.js | 14 ++++++------- app/models/branch.js | 13 ++++++------ app/models/broadcast.js | 4 ++-- app/models/build.js | 37 +++++++++++++++++----------------- app/models/commit.js | 27 +++++++++++++------------ app/models/env-var.js | 11 +++++----- app/models/hook.js | 15 +++++++------- app/models/job.js | 31 ++++++++++++++-------------- app/models/model.js | 5 +++-- app/models/repo.js | 29 +++++++++++++------------- app/models/request.js | 31 ++++++++++++++-------------- app/models/ssh-key.js | 9 +++++---- app/models/user.js | 19 ++++++++--------- app/serializers/application.js | 1 - app/serializers/build.js | 16 ++++----------- app/serializers/job.js | 4 ++-- app/serializers/v3.js | 12 ++++------- bower.json | 1 - package.json | 3 ++- 21 files changed, 144 insertions(+), 146 deletions(-) diff --git a/app/adapters/application.js b/app/adapters/application.js index 033ecc5a..f3b4799e 100644 --- a/app/adapters/application.js +++ b/app/adapters/application.js @@ -1,8 +1,8 @@ -import DS from 'ember-data'; import config from 'travis/config/environment'; import Ember from 'ember'; +import ActiveModelAdapter from 'active-model-adapter'; -export default DS.ActiveModelAdapter.extend({ +export default ActiveModelAdapter.extend({ auth: Ember.inject.service(), host: config.apiEndpoint, coalesceFindRequests: true, diff --git a/app/adapters/v3.js b/app/adapters/v3.js index 32f40c33..b693f760 100644 --- a/app/adapters/v3.js +++ b/app/adapters/v3.js @@ -1,8 +1,8 @@ import Ember from 'ember'; -import DS from 'ember-data'; import config from 'travis/config/environment'; +import RESTAdapter from 'ember-data/adapters/rest'; -export default DS.RESTAdapter.extend({ +export default RESTAdapter.extend({ auth: Ember.inject.service(), host: config.apiEndpoint, diff --git a/app/models/account.js b/app/models/account.js index dafd1883..fc5a9ea6 100644 --- a/app/models/account.js +++ b/app/models/account.js @@ -1,13 +1,13 @@ import Ember from 'ember'; -import DS from 'ember-data'; +import attr from 'ember-data/attr'; import Model from 'travis/models/model'; export default Model.extend({ - name: DS.attr(), - type: DS.attr(), - avatarUrl: DS.attr(), - reposCount: DS.attr('number'), - subscribed: DS.attr('boolean'), - education: DS.attr('boolean'), + name: attr(), + type: attr(), + avatarUrl: attr(), + reposCount: attr('number'), + subscribed: attr('boolean'), + education: attr('boolean'), loginBinding: 'id' }); diff --git a/app/models/branch.js b/app/models/branch.js index 3e9840c9..a1237a75 100644 --- a/app/models/branch.js +++ b/app/models/branch.js @@ -1,12 +1,13 @@ import Ember from 'ember'; import Model from 'travis/models/model'; -import DS from 'ember-data'; +import attr from 'ember-data/attr'; +import { hasMany, belongsTo } from 'ember-data/relationships'; export default Model.extend({ - name: DS.attr('string'), - defaultBranch: DS.attr('boolean'), - lastBuild: DS.belongsTo('build'), + name: attr('string'), + defaultBranch: attr('boolean'), + lastBuild: belongsTo('build'), - builds: DS.hasMany('builds', { inverse: 'branch' }), - repo: DS.belongsTo('repo', { inverse: 'defaultBranch' }) + builds: hasMany('builds', { inverse: 'branch' }), + repo: belongsTo('repo', { inverse: 'defaultBranch' }) }); diff --git a/app/models/broadcast.js b/app/models/broadcast.js index f9b8aaa2..19996238 100644 --- a/app/models/broadcast.js +++ b/app/models/broadcast.js @@ -1,11 +1,11 @@ import Ember from 'ember'; -import DS from 'ember-data'; import Model from 'travis/models/model'; +import attr from 'ember-data/attr'; var indexOf = [].indexOf; var Broadcast = Model.extend({ - message: DS.attr(), + message: attr(), toObject() { return { diff --git a/app/models/build.js b/app/models/build.js index 703b22fb..57a96ec9 100644 --- a/app/models/build.js +++ b/app/models/build.js @@ -3,38 +3,39 @@ import configKeysMap from 'travis/utils/keys-map'; import Ember from 'ember'; import Model from 'travis/models/model'; import DurationCalculations from 'travis/utils/duration-calculations'; -import DS from 'ember-data'; import Config from 'travis/config/environment'; +import attr from 'ember-data/attr'; +import { hasMany, belongsTo } from 'ember-data/relationships'; var Build; if (Config.useV3API) { - Build = DS.Model.extend(DurationCalculations, { - branch: DS.belongsTo('branch', { async: false, inverse: 'builds' }), + Build = Model.extend(DurationCalculations, { + branch: belongsTo('branch', { async: false, inverse: 'builds' }), branchName: Ember.computed.alias('branch.name') }); } else { - Build = DS.Model.extend(DurationCalculations, { + Build = Model.extend(DurationCalculations, { branchName: Ember.computed.alias('commit.branch') }); } Build.reopen({ ajax: Ember.inject.service(), - state: DS.attr(), - number: DS.attr('number'), - message: DS.attr('string'), - _duration: DS.attr('number'), - _config: DS.attr('object'), - _startedAt: DS.attr(), - _finishedAt: DS.attr('string'), - pullRequest: DS.attr('boolean'), - pullRequestTitle: DS.attr(), - pullRequestNumber: DS.attr('number'), - eventType: DS.attr('string'), - repo: DS.belongsTo('repo', { async: true }), - commit: DS.belongsTo('commit', { async: false }), - jobs: DS.hasMany('job', { async: true }), + state: attr(), + number: attr('number'), + message: attr('string'), + _duration: attr('number'), + _config: attr('object'), + _startedAt: attr(), + _finishedAt: attr('string'), + pullRequest: attr('boolean'), + pullRequestTitle: attr(), + pullRequestNumber: attr('number'), + eventType: attr('string'), + repo: belongsTo('repo', { async: true }), + commit: belongsTo('commit', { async: false }), + jobs: hasMany('job', { async: true }), config: function() { var config; diff --git a/app/models/commit.js b/app/models/commit.js index d0609318..4e123b76 100644 --- a/app/models/commit.js +++ b/app/models/commit.js @@ -2,22 +2,23 @@ import Ember from 'ember'; import Model from 'travis/models/model'; import Build from 'travis/models/build'; import { gravatarImage } from 'travis/utils/urls'; -import DS from 'ember-data'; +import attr from 'ember-data/attr'; +import { hasMany, belongsTo } from 'ember-data/relationships'; export default Model.extend({ - sha: DS.attr(), - branch: DS.attr(), - message: DS.attr(), - compareUrl: DS.attr(), - authorName: DS.attr(), - authorEmail: DS.attr(), - committerName: DS.attr(), - committerEmail: DS.attr(), - committedAt: DS.attr(), - committerAvatarUrl: DS.attr(), - authorAvatarUrl: DS.attr(), + sha: attr(), + branch: attr(), + message: attr(), + compareUrl: attr(), + authorName: attr(), + authorEmail: attr(), + committerName: attr(), + committerEmail: attr(), + committedAt: attr(), + committerAvatarUrl: attr(), + authorAvatarUrl: attr(), - build: DS.belongsTo('build'), + build: belongsTo('build'), subject: function() { return this.get('message').split("\n", 1)[0]; diff --git a/app/models/env-var.js b/app/models/env-var.js index 624a16de..57944071 100644 --- a/app/models/env-var.js +++ b/app/models/env-var.js @@ -1,10 +1,11 @@ import Ember from 'ember'; import Model from 'travis/models/model'; -import DS from 'ember-data'; +import attr from 'ember-data/attr'; +import { hasMany, belongsTo } from 'ember-data/relationships'; export default Model.extend({ - name: DS.attr(), - value: DS.attr(), - "public": DS.attr('boolean'), - repo: DS.belongsTo('repo', { async: true }) + name: attr(), + value: attr(), + "public": attr('boolean'), + repo: belongsTo('repo', { async: true }) }); diff --git a/app/models/hook.js b/app/models/hook.js index 2b2c3ed6..76c87b20 100644 --- a/app/models/hook.js +++ b/app/models/hook.js @@ -1,15 +1,16 @@ import Ember from 'ember'; import Model from 'travis/models/model'; import config from 'travis/config/environment'; -import DS from 'ember-data'; +import attr from 'ember-data/attr'; +import { hasMany, belongsTo } from 'ember-data/relationships'; export default Model.extend({ - name: DS.attr(), - ownerName: DS.attr(), - description: DS.attr(), - active: DS.attr('boolean'), - admin: DS.attr('boolean'), - "private": DS.attr('boolean'), + name: attr(), + ownerName: attr(), + description: attr(), + active: attr('boolean'), + admin: attr('boolean'), + "private": attr('boolean'), account: function() { return this.get('slug').split('/')[0]; diff --git a/app/models/job.js b/app/models/job.js index 5472f222..8581c120 100644 --- a/app/models/job.js +++ b/app/models/job.js @@ -4,25 +4,26 @@ import Ember from 'ember'; import Model from 'travis/models/model'; import Log from 'travis/models/log'; import DurationCalculations from 'travis/utils/duration-calculations'; -import DS from 'ember-data'; +import attr from 'ember-data/attr'; +import { hasMany, belongsTo } from 'ember-data/relationships'; export default Model.extend(DurationCalculations, { ajax: Ember.inject.service(), - logId: DS.attr(), - queue: DS.attr(), - state: DS.attr(), - number: DS.attr(), - _startedAt: DS.attr(), - _finishedAt: DS.attr(), - allowFailure: DS.attr('boolean'), - tags: DS.attr(), - repositoryPrivate: DS.attr(), - repositorySlug: DS.attr(), - _config: DS.attr('object'), + logId: attr(), + queue: attr(), + state: attr(), + number: attr(), + _startedAt: attr(), + _finishedAt: attr(), + allowFailure: attr('boolean'), + tags: attr(), + repositoryPrivate: attr(), + repositorySlug: attr(), + _config: attr('object'), - repo: DS.belongsTo('repo', { async: true }), - build: DS.belongsTo('build', { async: true }), - commit: DS.belongsTo('commit', { async: true }), + repo: belongsTo('repo', { async: true }), + build: belongsTo('build', { async: true }), + commit: belongsTo('commit', { async: true }), branch: Ember.computed.alias('build.branch'), branchName: Ember.computed.alias('build.branchName'), diff --git a/app/models/model.js b/app/models/model.js index 9b5b8231..2a0c7f54 100644 --- a/app/models/model.js +++ b/app/models/model.js @@ -1,2 +1,3 @@ -import DS from 'ember-data'; -export default DS.Model.extend(); +import Model from 'ember-data/model'; + +export default Model.extend(); diff --git a/app/models/repo.js b/app/models/repo.js index 3a9ba036..3bf30ce7 100644 --- a/app/models/repo.js +++ b/app/models/repo.js @@ -3,14 +3,15 @@ import Model from 'travis/models/model'; import { durationFrom as durationFromHelper } from 'travis/utils/helpers'; import Build from 'travis/models/build'; import Config from 'travis/config/environment'; -import DS from 'ember-data'; import Ember from 'ember'; +import attr from 'ember-data/attr'; +import { hasMany, belongsTo } from 'ember-data/relationships'; var Repo; if (Config.useV3API) { Repo = Model.extend({ - defaultBranch: DS.belongsTo('branch', { + defaultBranch: belongsTo('branch', { async: false }), lastBuild: Ember.computed.oneWay('defaultBranch.lastBuild'), @@ -23,13 +24,13 @@ if (Config.useV3API) { }); } else { Repo = Model.extend({ - lastBuildNumber: DS.attr('number'), - lastBuildState: DS.attr(), - lastBuildStartedAt: DS.attr(), - lastBuildFinishedAt: DS.attr(), - _lastBuildDuration: DS.attr('number'), - lastBuildLanguage: DS.attr(), - lastBuildId: DS.attr('number'), + lastBuildNumber: attr('number'), + lastBuildState: attr(), + lastBuildStartedAt: attr(), + lastBuildFinishedAt: attr(), + _lastBuildDuration: attr('number'), + lastBuildLanguage: attr(), + lastBuildId: attr('number'), lastBuildHash: function() { return { @@ -60,11 +61,11 @@ if (Config.useV3API) { Repo.reopen({ ajax: Ember.inject.service(), - slug: DS.attr(), - description: DS.attr(), - "private": DS.attr('boolean'), - githubLanguage: DS.attr(), - active: DS.attr(), + slug: attr(), + description: attr(), + "private": attr('boolean'), + githubLanguage: attr(), + active: attr(), withLastBuild() { return this.filter(function(repo) { diff --git a/app/models/request.js b/app/models/request.js index 29c58941..23024308 100644 --- a/app/models/request.js +++ b/app/models/request.js @@ -1,22 +1,23 @@ import Ember from 'ember'; import Model from 'travis/models/model'; -import DS from 'ember-data'; +import attr from 'ember-data/attr'; +import { hasMany, belongsTo } from 'ember-data/relationships'; export default Model.extend({ - created_at: DS.attr(), - event_type: DS.attr(), - result: DS.attr(), - message: DS.attr(), - headCommit: DS.attr(), - baseCommit: DS.attr(), - branchName: DS.attr(), - tagName: DS.attr(), - pullRequest: DS.attr('boolean'), - pullRequestTitle: DS.attr(), - pullRequestNumber: DS.attr('number'), - repo: DS.belongsTo('repo', { async: true }), - commit: DS.belongsTo('commit', { async: true }), - build: DS.belongsTo('build', { async: true }), + created_at: attr(), + event_type: attr(), + result: attr(), + message: attr(), + headCommit: attr(), + baseCommit: attr(), + branchName: attr(), + tagName: attr(), + pullRequest: attr('boolean'), + pullRequestTitle: attr(), + pullRequestNumber: attr('number'), + repo: belongsTo('repo', { async: true }), + commit: belongsTo('commit', { async: true }), + build: belongsTo('build', { async: true }), isAccepted: function() { // For some reason some of the requests have a null result beside the fact that diff --git a/app/models/ssh-key.js b/app/models/ssh-key.js index 5be840f4..1cc1e79d 100644 --- a/app/models/ssh-key.js +++ b/app/models/ssh-key.js @@ -1,10 +1,11 @@ import Ember from 'ember'; -import DS from 'ember-data'; import Model from 'travis/models/model'; +import attr from 'ember-data/attr'; +import { hasMany, belongsTo } from 'ember-data/relationships'; export default Model.extend({ - value: DS.attr(), - description: DS.attr(), - fingerprint: DS.attr(), + value: attr(), + description: attr(), + fingerprint: attr(), isCustom: true }); diff --git a/app/models/user.js b/app/models/user.js index 0b8a4fd7..294b5549 100644 --- a/app/models/user.js +++ b/app/models/user.js @@ -1,7 +1,8 @@ import Ember from 'ember'; import Model from 'travis/models/model'; import config from 'travis/config/environment'; -import DS from 'ember-data'; +import attr from 'ember-data/attr'; +import { hasMany, belongsTo } from 'ember-data/relationships'; export default Model.extend({ ajax: Ember.inject.service(), @@ -9,14 +10,14 @@ export default Model.extend({ // TODO: this totally not should be needed here sessionStorage: Ember.inject.service(), - name: DS.attr(), - email: DS.attr(), - login: DS.attr(), - token: DS.attr(), - gravatarId: DS.attr(), - isSyncing: DS.attr('boolean'), - syncedAt: DS.attr(), - repoCount: DS.attr('number'), + name: attr(), + email: attr(), + login: attr(), + token: attr(), + gravatarId: attr(), + isSyncing: attr('boolean'), + syncedAt: attr(), + repoCount: attr('number'), fullName: function() { return this.get('name') || this.get('login'); diff --git a/app/serializers/application.js b/app/serializers/application.js index 0d2110ef..b39111af 100644 --- a/app/serializers/application.js +++ b/app/serializers/application.js @@ -1,4 +1,3 @@ -import DS from 'ember-data'; import V2FallbackSerializer from 'travis/serializers/v2_fallback'; export default V2FallbackSerializer.extend({ diff --git a/app/serializers/build.js b/app/serializers/build.js index 4214d47f..7aaf0886 100644 --- a/app/serializers/build.js +++ b/app/serializers/build.js @@ -4,18 +4,10 @@ import V2FallbackSerializer from 'travis/serializers/v2_fallback'; var Serializer = V2FallbackSerializer.extend({ isNewSerializerAPI: true, attrs: { - _config: { - key: 'config' - }, - _finished_at: { - key: 'finished_at' - }, - _started_at: { - key: 'started_at' - }, - _duration: { - key: 'duration' - } + _config: { key: 'config' }, + _finishedAt: { key: 'finished_at' }, + _startedAt: { key: 'started_at' }, + _duration: { key: 'duration' } }, extractRelationships: function(modelClass, resourceHash) { diff --git a/app/serializers/job.js b/app/serializers/job.js index cfc4ef58..9f0e0e64 100644 --- a/app/serializers/job.js +++ b/app/serializers/job.js @@ -5,8 +5,8 @@ export default V2FallbackSerializer.extend({ isNewSerializerAPI: true, attrs: { _config: { key: 'config' }, - _finished_at: { key: 'finished_at' }, - _started_at: { key: 'started_at' } + _finishedAt: { key: 'finished_at' }, + _startedAt: { key: 'started_at' } }, keyForV2Relationship(key, typeClass, method) { diff --git a/app/serializers/v3.js b/app/serializers/v3.js index 856e5b5b..13804928 100644 --- a/app/serializers/v3.js +++ b/app/serializers/v3.js @@ -1,5 +1,5 @@ import Ember from 'ember'; -import DS from 'ember-data'; +import JSONSerializer from 'ember-data/serializers/json' var traverse = function(object, callback) { if(!object) { @@ -24,7 +24,7 @@ var traverse = function(object, callback) { } }; -export default DS.JSONSerializer.extend({ +export default JSONSerializer.extend({ isNewSerializerAPI: true, extractRelationship(type, hash) { @@ -137,12 +137,8 @@ export default DS.JSONSerializer.extend({ return { data, included }; }, - keyForAttribute(key, method) { - if(method === 'deserialize') { - return Ember.String.underscore(key); - } else { - return Ember.String.camelize(key); - } + keyForAttribute(key) { + return Ember.String.underscore(key); }, _fixReferences(payload) { diff --git a/bower.json b/bower.json index b850a2aa..26fecea2 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,6 @@ { "name": "travis", "dependencies": { - "ember-data": "1.13.15", "ember": "2.2.0", "ember-cli-shims": "0.1.0", "ember-cli-test-loader": "0.2.2", diff --git a/package.json b/package.json index f0168b75..46d45fd6 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "author": "", "license": "MIT", "devDependencies": { + "active-model-adapter": "2.0.3", "broccoli-asset-rev": "^2.2.0", "broccoli-sass": "0.6.6", "ember-ajax": "0.7.1", @@ -38,7 +39,7 @@ "ember-cli-release": "0.2.8", "ember-cli-sauce": "^1.1.0", "ember-cli-uglify": "1.2.0", - "ember-data": "1.13.15", + "ember-data": "^2.3.0", "ember-data-filter": "1.13.0", "ember-disable-proxy-controllers": "^1.0.1", "ember-export-application-global": "^1.0.4", From f9dde74f59237ac8ec3613fb26b5bfbc2d80d3db Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Thu, 14 Jan 2016 11:55:03 +0100 Subject: [PATCH 3/4] Add deprecations from Ember.js 2.x to deprecation workflow --- config/deprecation-workflow.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config/deprecation-workflow.js b/config/deprecation-workflow.js index 2e570961..44c7e36f 100644 --- a/config/deprecation-workflow.js +++ b/config/deprecation-workflow.js @@ -22,5 +22,12 @@ window.deprecationWorkflow.config = { { handler: "log", matchMessage: "Using DS.Snapshot.get() is deprecated. Use .attr(), .belongsTo() or .hasMany() instead." }, { handler: "log", matchMessage: "The filter API will be moved into a plugin soon. To enable store.filter using an environment flag, or to use an alternative, you can visit the ember-data-filter addon page" }, { handler: "log", matchMessage: "Ember.View is deprecated. Consult the Deprecations Guide for a migration strategy." }, + + // TODO + { handler: "silence", matchMessage: new RegExp("The `initialize` method for Application initializer .*? should take only one argument - `App`, an instance of an `Application`.") }, + { handler: "silence", matchMessage: "Using `ApplicationInstance.container.lookup` is deprecated. Please use `ApplicationInstance.lookup` instead." }, + { handler: "silence", matchMessage: "this.resource() is deprecated. Use this.route('name', { resetNamespace: true }, function () {}) instead." }, + { handler: "silence", matchMessage: new RegExp("the component:.*? test module is implicitly running in unit test mode, which will change to integration test mode by default in an upcoming version of ember-test-helpers. Add `unit: true` or a `needs:[]` list to explicitly opt in to unit test mode.") }, + { handler: "silence", matchMessage: "this.append() is deprecated. Please use this.render() or this.$() instead." } ] }; From 93deb7f4e242599fbbcaac49ce7b0fa6c870d418 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Thu, 14 Jan 2016 13:14:45 +0100 Subject: [PATCH 4/4] Fix tests --- app/controllers/plans.js | 1 + app/serializers/v3.js | 2 +- .../components/add-env-var-test.js | 24 +++++++++++-------- .../components/add-ssh-key-test.js | 16 +++++++------ tests/integration/components/env-var-test.js | 19 ++++++++------- tests/integration/components/ssh-key-test.js | 14 +++++------ 6 files changed, 43 insertions(+), 33 deletions(-) diff --git a/app/controllers/plans.js b/app/controllers/plans.js index 9edb0cd0..ced7ed46 100644 --- a/app/controllers/plans.js +++ b/app/controllers/plans.js @@ -1,4 +1,5 @@ import Ember from 'ember'; +import config from 'travis/config/environment'; export default Ember.Controller.extend({ actions: { diff --git a/app/serializers/v3.js b/app/serializers/v3.js index 13804928..6db73fdd 100644 --- a/app/serializers/v3.js +++ b/app/serializers/v3.js @@ -1,5 +1,5 @@ import Ember from 'ember'; -import JSONSerializer from 'ember-data/serializers/json' +import JSONSerializer from 'ember-data/serializers/json'; var traverse = function(object, callback) { if(!object) { diff --git a/tests/integration/components/add-env-var-test.js b/tests/integration/components/add-env-var-test.js index ece34ae6..4b0bb79e 100644 --- a/tests/integration/components/add-env-var-test.js +++ b/tests/integration/components/add-env-var-test.js @@ -2,6 +2,7 @@ import Ember from 'ember'; import { moduleForComponent, test } from 'ember-qunit'; import hbs from 'htmlbars-inline-precompile'; import fillIn from '../../helpers/fill-in'; +import DS from 'ember-data'; moduleForComponent('add-env-var', 'Integration | Component | add env-var', { @@ -11,12 +12,14 @@ moduleForComponent('add-env-var', 'Integration | Component | add env-var', { test('it adds an env var on submit', function(assert) { assert.expect(6); - var store = this.container.lookup('store:main'); - assert.equal(store.all('envVar').get('length'), 0, 'precond: store should be empty'); + // this shouldn't be needed, probably some bug in tests setup with new ember-data + this.registry.register('transform:boolean', DS.BooleanTransform); + var store = this.container.lookup('service:store'); + assert.equal(store.peekAll('envVar').get('length'), 0, 'precond: store should be empty'); var repo; Ember.run(function() { - repo = store.push('repo', {id: 1, slug: 'travis-ci/travis-web'}); + repo = store.push({ data: { id: 1, type: 'repo', attributes: { slug: 'travis-ci/travis-web'}}}); }); this.set('repo', repo); @@ -28,9 +31,9 @@ test('it adds an env var on submit', function(assert) { this.$('.form-submit').click(); - assert.equal(store.all('envVar').get('length'), 1, 'env var should be added to store'); + assert.equal(store.peekAll('envVar').get('length'), 1, 'env var should be added to store'); - var envVar = store.all('envVar').objectAt(0); + var envVar = store.peekAll('envVar').objectAt(0); assert.equal(envVar.get('name'), 'FOO', 'name should be set for the env var'); assert.equal(envVar.get('value'), 'bar', 'value should be set for the env var'); @@ -62,12 +65,13 @@ test('it shows an error if no name is present', function(assert) { test('it adds a public env var on submit', function(assert) { assert.expect(6); - var store = this.container.lookup('store:main'); - assert.equal(store.all('envVar').get('length'), 0, 'precond: store should be empty'); + this.registry.register('transform:boolean', DS.BooleanTransform); + var store = this.container.lookup('service:store'); + assert.equal(store.peekAll('envVar').get('length'), 0, 'precond: store should be empty'); var repo; Ember.run(function() { - repo = store.push('repo', {id: 1, slug: 'travis-ci/travis-web'}); + repo = store.push({data: { id: 1, type: 'repo', attributes: { slug: 'travis-ci/travis-web'}}}); }); this.set('repo', repo); @@ -81,9 +85,9 @@ test('it adds a public env var on submit', function(assert) { this.$('.form-submit').click(); - assert.equal(store.all('envVar').get('length'), 1, 'env var should be added to store'); + assert.equal(store.peekAll('envVar').get('length'), 1, 'env var should be added to store'); - var envVar = store.all('envVar').objectAt(0); + var envVar = store.peekAll('envVar').objectAt(0); assert.equal(envVar.get('name'), 'FOO', 'name should be set for the env var'); assert.equal(envVar.get('value'), 'bar', 'value should be set for the env var'); diff --git a/tests/integration/components/add-ssh-key-test.js b/tests/integration/components/add-ssh-key-test.js index 118b35a0..d221a234 100644 --- a/tests/integration/components/add-ssh-key-test.js +++ b/tests/integration/components/add-ssh-key-test.js @@ -2,7 +2,7 @@ import Ember from 'ember'; import { moduleForComponent, test } from 'ember-qunit'; import hbs from 'htmlbars-inline-precompile'; import fillIn from '../../helpers/fill-in'; - +import DS from 'ember-data'; moduleForComponent('add-ssh-key', 'Integration | Component | add ssh-key', { integration: true @@ -11,18 +11,19 @@ moduleForComponent('add-ssh-key', 'Integration | Component | add ssh-key', { test('it adds an ssh key on submit', function(assert) { assert.expect(6); - var store = this.container.lookup('store:main'); + this.registry.register('transform:boolean', DS.BooleanTransform); + var store = this.container.lookup('service:store'); var repo; Ember.run(function() { - repo = store.push('repo', {id: 1, slug: 'travis-ci/travis-web'}); + repo = store.push({data: { id: 1, type: 'repo', attributes: { slug: 'travis-ci/travis-web'}}}); }); this.set('repo', repo); this.render(hbs`{{add-ssh-key repo=repo sshKeyAdded="sshKeyAdded"}}`); - var sshKey = store.all('ssh_key').objectAt(0); + var sshKey = store.peekAll('ssh_key').objectAt(0); assert.ok(! sshKey.get('description'), 'description should be blank'); assert.ok(! sshKey.get('value'), 'value should be blank'); @@ -45,18 +46,19 @@ test('it adds an ssh key on submit', function(assert) { test('it throws an error if value for ssh key is blank', function(assert) { assert.expect(5); - var store = this.container.lookup('store:main'); + this.registry.register('transform:boolean', DS.BooleanTransform); + var store = this.container.lookup('service:store'); var repo; Ember.run(function() { - repo = store.push('repo', {id: 1, slug: 'travis-ci/travis-web'}); + repo = store.push({data: { id: 1, type: 'repo', attributes: { slug: 'travis-ci/travis-web'}}}); }); this.set('repo', repo); this.render(hbs`{{add-ssh-key repo=repo sshKeyAdded="sshKeyAdded"}}`); - var sshKey = store.all('ssh_key').objectAt(0); + var sshKey = store.peekAll('ssh_key').objectAt(0); assert.ok(! sshKey.get('description'), 'description should be blank'); assert.ok(! sshKey.get('value'), 'value should be blank'); diff --git a/tests/integration/components/env-var-test.js b/tests/integration/components/env-var-test.js index 6c9fbed5..9b8ed0c2 100644 --- a/tests/integration/components/env-var-test.js +++ b/tests/integration/components/env-var-test.js @@ -2,6 +2,7 @@ import Ember from 'ember'; import { moduleForComponent, test } from 'ember-qunit'; import hbs from 'htmlbars-inline-precompile'; import fillIn from '../../helpers/fill-in'; +import DS from 'ember-data'; moduleForComponent('env-var', 'Integration | Component | env-var', { @@ -11,9 +12,10 @@ moduleForComponent('env-var', 'Integration | Component | env-var', { test('it renders an env-var with private value', function(assert) { assert.expect(2); - var store = this.container.lookup('store:main'); + this.registry.register('transform:boolean', DS.BooleanTransform); + var store = this.container.lookup('service:store'); Ember.run(() => { - var envVar = store.push('envVar', {id: 1, name: 'foo', value: 'bar', public: false}); + var envVar = store.push({data: { id: 1, type: 'env-var', attributes: { name: 'foo', value: 'bar', public: false}}}); this.set('envVar', envVar); }); @@ -27,23 +29,24 @@ test('it renders an env-var with private value', function(assert) { test('it renders an env-var with public value', function(assert) { assert.expect(2); - var store = this.container.lookup('store:main'); + this.registry.register('transform:boolean', DS.BooleanTransform); + var store = this.container.lookup('service:store'); Ember.run(() => { - var envVar = store.push('envVar', {id: 1, name: 'foo', value: 'bar', public: true}); + var envVar = store.push({data: { id: 1, type: 'env-var', attributes: { name: 'foo', value: 'bar', public: true}}}); this.set('envVar', envVar); }); this.render(hbs`{{env-var envVar=envVar}}`); assert.equal(this.$('.env-var-name').text(), 'foo', 'name should be displayed'); - assert.equal(this.$('.env-var-value input').val(), 'bar', 'value should be hidden'); + assert.equal(this.$('.env-var-value input').val(), 'bar', 'value should not be hidden'); }); // test('it deletes an env-var', function(assert) { // assert.expect(2); -// var store = this.container.lookup('store:main'); +// var store = this.container.lookup('service:store'); // Ember.run(() => { // var envVar = store.push('envVar', {id: 1, name: 'foo', value: 'bar', public: true}); // this.set('envVar', envVar); @@ -51,10 +54,10 @@ test('it renders an env-var with public value', function(assert) { // this.render(hbs`{{env-var envVar=envVar}}`); -// assert.equal(store.all('envVar').get('length'), 1, 'precond: store should have an env-var'); +// assert.equal(store.peekAll('envVar').get('length'), 1, 'precond: store should have an env-var'); // this.$('.env-var-action a').click(); -// assert.equal(store.all('envVar').get('length'), 0, 'env-var should be deleted'); +// assert.equal(store.peekAll('envVar').get('length'), 0, 'env-var should be deleted'); // }); diff --git a/tests/integration/components/ssh-key-test.js b/tests/integration/components/ssh-key-test.js index 79d0176e..ffb52fc1 100644 --- a/tests/integration/components/ssh-key-test.js +++ b/tests/integration/components/ssh-key-test.js @@ -11,7 +11,7 @@ moduleForComponent('ssh-key', 'Integration | Component | ssh-key', { test('it renders the default ssh key if no custom key is set', function(assert) { assert.expect(2); - var store = this.container.lookup('store:main'); + var store = this.container.lookup('service:store'); var key = Ember.Object.create({fingerprint: 'fingerprint'}); this.set('key', key); @@ -25,11 +25,11 @@ test('it renders the default ssh key if no custom key is set', function(assert) test('it renders the custom ssh key if custom key is set', function(assert) { assert.expect(2); - var store = this.container.lookup('store:main'); + var store = this.container.lookup('service:store'); var key; Ember.run(function() { - key = store.push('sshKey', {description: 'fookey', fingerprint: 'somethingthing', id: 1}); + key = store.push({data: { id: 1, type: 'ssh-key', attributes: { description: 'fookey', fingerprint: 'somethingthing' }}}); }); this.set('key', key); @@ -44,11 +44,11 @@ test('it renders the custom ssh key if custom key is set', function(assert) { test('it deletes a custom key if permissions are right', function(assert) { assert.expect(1); - var store = this.container.lookup('store:main'); + var store = this.container.lookup('service:store'); var key; Ember.run(function() { - key = store.push('sshKey', {description: 'fookey', fingerprint: 'somethingthing', id: 1}); + key = store.push({data: { id: 1, type: 'ssh-key', attributes: { description: 'fookey', fingerprint: 'somethingthing' }}}); }); this.set('key', key); @@ -67,11 +67,11 @@ test('it deletes a custom key if permissions are right', function(assert) { test('it does not delete the custom key if permissions are insufficient', function(assert) { assert.expect(1); - var store = this.container.lookup('store:main'); + var store = this.container.lookup('service:store'); var key; Ember.run(function() { - key = store.push('sshKey', {description: 'fookey', fingerprint: 'somethingthing', id: 1}); + key = store.push({data: { id: 1, type: 'ssh-key', attributes: { description: 'fookey', fingerprint: 'somethingthing' }}}); }); this.set('key', key);