ember-data-source 1.13.4 → 1.13.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 697e9db009a98edf76770a04325a458d0883233b
4
- data.tar.gz: c55896935e8b62f5354ad01c3b97abe5d9e0fc86
3
+ metadata.gz: f831525fdcf65ff5cf7c35181eb06c4262224558
4
+ data.tar.gz: c102fcd43f2ac52808268bc3cb16077e77fc6ff5
5
5
  SHA512:
6
- metadata.gz: c22bae99bb68f26d374351eeef8cde7f40eb031c60d83a699a770332ee21b547d996e5e737aec70a65954ee9b67a88a124a07af2571636111f66ff0bb8569543
7
- data.tar.gz: d09c254dbdb90ae9a5c1a0f90f8f6f7d749aaf5515cfecda1f9a1a0e5e316e00a3501251741d6ea17eeaa6ee0fcaea1693ef118e567dfa61a923949240f70027
6
+ metadata.gz: 2c74369d2d49d46ce7d5c721e2c6ad432b7fef68015f876a194906168ea55e5fded8fb24338d8c19b04b1b832482fe0be0ca4a89b3714f024782c75ea4e1f05a
7
+ data.tar.gz: 2f3f500fdd2e6ebb4dc84e6f92ef22797273f22fe085392d2532d6f59414b4a88ffd317a944c6fc62751d91dd755f617acd904329064fb86c151b2525e22bc4e
@@ -196,7 +196,7 @@ define(
196
196
 
197
197
  var error = adapter.handleResponse(jqXHR.status, {}, json).errors[0];
198
198
 
199
- equal(error.details, 'can\'t be blank');
199
+ equal(error.detail, 'can\'t be blank');
200
200
  equal(error.source.pointer, 'data/attributes/name');
201
201
  });
202
202
 
@@ -1201,7 +1201,7 @@ define(
1201
1201
  source: {
1202
1202
  pointer: 'data/attributes/first_name'
1203
1203
  },
1204
- details: 'firstName not evil enough'
1204
+ detail: 'firstName not evil enough'
1205
1205
  }]
1206
1206
  };
1207
1207
 
@@ -2818,6 +2818,39 @@ define(
2818
2818
  });
2819
2819
  });
2820
2820
  });
2821
+
2822
+ test('fetching a belongsTo relationship link that returns null', function () {
2823
+ expect(3);
2824
+
2825
+ ajaxResponse([{
2826
+ data: {
2827
+ type: 'post',
2828
+ id: '1',
2829
+ attributes: {
2830
+ title: 'Ember.js rocks'
2831
+ },
2832
+ relationships: {
2833
+ author: {
2834
+ links: {
2835
+ related: 'http://example.com/post/1/author'
2836
+ }
2837
+ }
2838
+ }
2839
+ }
2840
+ }, {
2841
+ data: null
2842
+ }]);
2843
+
2844
+ run(function () {
2845
+ store.find('post', 1).then(function (post) {
2846
+ equal(passedUrl[0], '/posts/1');
2847
+ return post.get('author');
2848
+ }).then(function (author) {
2849
+ equal(passedUrl[1], 'http://example.com/post/1/author');
2850
+ equal(author, null);
2851
+ });
2852
+ });
2853
+ });
2821
2854
  }
2822
2855
  );
2823
2856
 
@@ -3251,6 +3284,8 @@ define(
3251
3284
  __exports__[name] = value;
3252
3285
  }
3253
3286
 
3287
+ var keysFunc = Object.keys || Ember.keys;
3288
+
3254
3289
  var env, store, adapter, Post, Comment, SuperUser;
3255
3290
  var passedUrl, passedVerb, passedHash;
3256
3291
  var run = Ember.run;
@@ -4158,7 +4193,7 @@ define(
4158
4193
  passedVerb = verb;
4159
4194
  passedHash = hash;
4160
4195
 
4161
- deepEqual(Object.keys(hash.data), ["in", "order", "params", "wrong"], "query params are received in alphabetical order");
4196
+ deepEqual(keysFunc(hash.data), ["in", "order", "params", "wrong"], "query params are received in alphabetical order");
4162
4197
 
4163
4198
  return run(Ember.RSVP, "resolve", { posts: [{ id: 1, name: "Rails is very expensive sushi" }] });
4164
4199
  };
@@ -4186,7 +4221,7 @@ define(
4186
4221
  passedVerb = verb;
4187
4222
  passedHash = hash;
4188
4223
 
4189
- deepEqual(Object.keys(hash.data), ["params", "in", "wrong", "order"], "query params are received in their original order");
4224
+ deepEqual(keysFunc(hash.data), ["params", "in", "wrong", "order"], "query params are received in their original order");
4190
4225
 
4191
4226
  return run(Ember.RSVP, "resolve", { posts: [{ id: 1, name: "Rails is very expensive sushi" }] });
4192
4227
  };
@@ -4202,13 +4237,13 @@ define(
4202
4237
  passedVerb = verb;
4203
4238
  passedHash = hash;
4204
4239
 
4205
- deepEqual(Object.keys(hash.data), ["wrong", "params", "order", "in"], "query params are received in reverse alphabetical order");
4240
+ deepEqual(keysFunc(hash.data), ["wrong", "params", "order", "in"], "query params are received in reverse alphabetical order");
4206
4241
 
4207
4242
  return run(Ember.RSVP, "resolve", { posts: [{ id: 1, name: "Rails is very expensive sushi" }] });
4208
4243
  };
4209
4244
 
4210
4245
  adapter.sortQueryParams = function (obj) {
4211
- var sortedKeys = Object.keys(obj).sort().reverse();
4246
+ var sortedKeys = keysFunc(obj).sort().reverse();
4212
4247
  var len = sortedKeys.length;
4213
4248
  var newQueryParams = {};
4214
4249
 
@@ -4981,7 +5016,7 @@ define(
4981
5016
  try {
4982
5017
  run(function () {
4983
5018
  store.find("post", "1")["catch"](function (err) {
4984
- equal(err.errors[0].details, errorThrown);
5019
+ equal(err.errors[0].detail, errorThrown);
4985
5020
  ok(err, "promise rejected");
4986
5021
  });
4987
5022
  });
@@ -6085,6 +6120,64 @@ define(
6085
6120
  store.findAll('person', { adapterOptions: { query: { embed: true } } });
6086
6121
  });
6087
6122
  });
6123
+
6124
+ test('Store does not error when the serializer is null', function () {
6125
+ adapter.findRecord = function (store, type, query, recordArray) {
6126
+ return {
6127
+ id: 1,
6128
+ name: 'Mickael Ramírez'
6129
+ };
6130
+ };
6131
+
6132
+ adapter.serializer = null;
6133
+
6134
+ run(store, 'findRecord', 'person', 1).then(async(function (person) {
6135
+ equal(person.get('id'), 1);
6136
+ }));
6137
+ });
6138
+
6139
+ test('An async hasMany relationship with links should not trigger shouldBackgroundReloadRecord', function () {
6140
+ var Post = DS.Model.extend({
6141
+ name: DS.attr('string'),
6142
+ comments: DS.hasMany('comment', { async: true })
6143
+ });
6144
+
6145
+ var Comment = DS.Model.extend({
6146
+ name: DS.attr('string')
6147
+ });
6148
+
6149
+ env = setupStore({
6150
+ post: Post,
6151
+ comment: Comment,
6152
+ adapter: DS.RESTAdapter.extend({
6153
+ findRecord: function () {
6154
+ return {
6155
+ posts: {
6156
+ id: 1,
6157
+ name: 'Rails is omakase',
6158
+ links: { comments: '/posts/1/comments' }
6159
+ }
6160
+ };
6161
+ },
6162
+ findHasMany: function () {
6163
+ return Ember.RSVP.resolve({
6164
+ comments: [{ id: 1, name: 'FIRST' }, { id: 2, name: 'Rails is unagi' }, { id: 3, name: 'What is omakase?' }]
6165
+ });
6166
+ },
6167
+ shouldBackgroundReloadRecord: function () {
6168
+ ok(false, 'shouldBackgroundReloadRecord should not be called');
6169
+ }
6170
+ })
6171
+ });
6172
+
6173
+ store = env.store;
6174
+
6175
+ run(store, 'find', 'post', '1').then(async(function (post) {
6176
+ return post.get('comments');
6177
+ })).then(async(function (comments) {
6178
+ equal(comments.get('length'), 3);
6179
+ }));
6180
+ });
6088
6181
  }
6089
6182
  );
6090
6183
 
@@ -6271,6 +6364,29 @@ define(
6271
6364
  ok(ran, 'ember-data initializer was found');
6272
6365
  });
6273
6366
 
6367
+ test('ember-data initializer does not register the store service when it was already registered', function () {
6368
+
6369
+ var AppStore = Store.extend({
6370
+ isCustomStore: true
6371
+ });
6372
+
6373
+ App.initializer({
6374
+ name: 'after-ember-data',
6375
+ before: 'ember-data',
6376
+ initialize: function (registry) {
6377
+ registry.register('service:store', AppStore);
6378
+ }
6379
+ });
6380
+
6381
+ run(function () {
6382
+ app = App.create();
6383
+ container = app.__container__;
6384
+ });
6385
+
6386
+ var store = getStore();
6387
+ ok(store && store.get('isCustomStore'), 'ember-data initializer does not overwrite the previous registered service store');
6388
+ });
6389
+
6274
6390
  test('store initializer is run (DEPRECATED)', function () {
6275
6391
  var ran = false;
6276
6392
  App.initializer({
@@ -8850,6 +8966,8 @@ define(
8850
8966
  __exports__[name] = value;
8851
8967
  }
8852
8968
 
8969
+ var keysFunc = Object.keys || Ember.keys;
8970
+
8853
8971
  var attr = DS.attr;
8854
8972
  var belongsTo = DS.belongsTo;
8855
8973
  var hasMany = DS.hasMany;
@@ -8963,7 +9081,7 @@ define(
8963
9081
  test('Unloading all records for a given type clears saved meta data.', function () {
8964
9082
 
8965
9083
  function metadataKeys(type) {
8966
- return Ember.keys(env.store.metadataFor(type));
9084
+ return keysFunc(env.store.metadataFor(type));
8967
9085
  }
8968
9086
 
8969
9087
  run(function () {
@@ -13557,7 +13675,7 @@ define(
13557
13675
  }
13558
13676
  }));
13559
13677
 
13560
- var serializer = env.container.lookup('serializer:home-planet');
13678
+ var serializer = env.store.serializerFor('home-planet');
13561
13679
  var json_hash = {
13562
13680
  homePlanet: {
13563
13681
  id: '1',
@@ -13614,7 +13732,7 @@ define(
13614
13732
  }));
13615
13733
  env.registry.register('serializer:evil-minion', TestSerializer);
13616
13734
 
13617
- var serializer = env.container.lookup('serializer:home-planet');
13735
+ var serializer = env.store.serializerFor('home-planet');
13618
13736
  var json_hash = {
13619
13737
  homePlanet: {
13620
13738
  id: '1',
@@ -13680,7 +13798,7 @@ define(
13680
13798
  }
13681
13799
  }));
13682
13800
 
13683
- var serializer = env.container.lookup('serializer:comment');
13801
+ var serializer = env.store.serializerFor('comment');
13684
13802
  var json_hash = {
13685
13803
  comment: {
13686
13804
  id: '1',
@@ -13744,7 +13862,7 @@ define(
13744
13862
  }
13745
13863
  }));
13746
13864
 
13747
- var serializer = env.container.lookup('serializer:comment');
13865
+ var serializer = env.store.serializerFor('comment');
13748
13866
  var json_hash = {
13749
13867
  comment: {
13750
13868
  id: '1',
@@ -13831,7 +13949,7 @@ define(
13831
13949
  }));
13832
13950
  env.registry.register('serializer:super-villain', TestSerializer);
13833
13951
 
13834
- var serializer = env.container.lookup('serializer:home-planet');
13952
+ var serializer = env.store.serializerFor('home-planet');
13835
13953
  var json_hash = {
13836
13954
  homePlanet: {
13837
13955
  id: '1',
@@ -13914,7 +14032,7 @@ define(
13914
14032
  }));
13915
14033
  env.registry.register('serializer:super-villain', TestSerializer);
13916
14034
 
13917
- var serializer = env.container.lookup('serializer:home-planet');
14035
+ var serializer = env.store.serializerFor('home-planet');
13918
14036
 
13919
14037
  var json_hash = {
13920
14038
  homePlanets: [{
@@ -13970,7 +14088,7 @@ define(
13970
14088
  }
13971
14089
  }));
13972
14090
 
13973
- var serializer = env.container.lookup('serializer:home-planet');
14091
+ var serializer = env.store.serializerFor('home-planet');
13974
14092
 
13975
14093
  var json_hash = {
13976
14094
  homePlanets: [{
@@ -14028,7 +14146,7 @@ define(
14028
14146
  }));
14029
14147
  env.registry.register('serializer:super-villain', TestSerializer);
14030
14148
 
14031
- var serializer = env.container.lookup('serializer:home-planet');
14149
+ var serializer = env.store.serializerFor('home-planet');
14032
14150
 
14033
14151
  var json_hash = {
14034
14152
  homePlanets: [{
@@ -14079,7 +14197,7 @@ define(
14079
14197
  }
14080
14198
  }));
14081
14199
 
14082
- var serializer = env.container.lookup('serializer:comment');
14200
+ var serializer = env.store.serializerFor('comment');
14083
14201
 
14084
14202
  var json_hash = {
14085
14203
  comments: [{
@@ -14151,7 +14269,7 @@ define(
14151
14269
  }));
14152
14270
  env.registry.register('serializer:super-villain', TestSerializer);
14153
14271
 
14154
- var serializer = env.container.lookup('serializer:home-planet');
14272
+ var serializer = env.store.serializerFor('home-planet');
14155
14273
  var json_hash = {
14156
14274
  homePlanets: [{
14157
14275
  id: '1',
@@ -14294,7 +14412,7 @@ define(
14294
14412
  }));
14295
14413
  //env.registry.register('serializer:secret-lab', TestSerializer);
14296
14414
 
14297
- var serializer = env.container.lookup('serializer:super-villain');
14415
+ var serializer = env.store.serializerFor('super-villain');
14298
14416
 
14299
14417
  var json_hash = {
14300
14418
  superVillain: {
@@ -14365,7 +14483,7 @@ define(
14365
14483
  }
14366
14484
  }));
14367
14485
 
14368
- var serializer = env.container.lookup('serializer:evil-minion');
14486
+ var serializer = env.store.serializerFor('evil-minion');
14369
14487
  var json_hash = {
14370
14488
  evilMinion: {
14371
14489
  id: '1',
@@ -14443,7 +14561,7 @@ define(
14443
14561
  secretWeapons: { embedded: 'always' }
14444
14562
  }
14445
14563
  }));
14446
- var serializer = env.container.lookup('serializer:super-villain');
14564
+ var serializer = env.store.serializerFor('super-villain');
14447
14565
 
14448
14566
  var json_hash = {
14449
14567
  superVillain: {
@@ -14512,7 +14630,7 @@ define(
14512
14630
  secretLab: { embedded: 'always' }
14513
14631
  }
14514
14632
  }));
14515
- var serializer = env.container.lookup('serializer:super-villain');
14633
+ var serializer = env.store.serializerFor('super-villain');
14516
14634
 
14517
14635
  var json_hash = {
14518
14636
  superVillain: {
@@ -14569,7 +14687,7 @@ define(
14569
14687
  primaryKey: 'custom'
14570
14688
  }));
14571
14689
 
14572
- var serializer = env.container.lookup('serializer:evil-minion');
14690
+ var serializer = env.store.serializerFor('evil-minion');
14573
14691
  var json_hash = {
14574
14692
  evil_minion: {
14575
14693
  id: '1',
@@ -14707,7 +14825,7 @@ define(
14707
14825
  }
14708
14826
  }));
14709
14827
 
14710
- var serializer = env.container.lookup('serializer:home-planet');
14828
+ var serializer = env.store.serializerFor('home-planet');
14711
14829
  var json_hash = {
14712
14830
  home_planet: {
14713
14831
  id: '1',
@@ -14750,7 +14868,7 @@ define(
14750
14868
  }
14751
14869
  }));
14752
14870
 
14753
- var serializer = env.container.lookup('serializer:home-planet');
14871
+ var serializer = env.store.serializerFor('home-planet');
14754
14872
  var json_hash = {
14755
14873
  home_planet: {
14756
14874
  id: '1',
@@ -14797,7 +14915,8 @@ define(
14797
14915
  }
14798
14916
  }));
14799
14917
 
14800
- var serializer = env.container.lookup('serializer:comment');
14918
+ var serializer = env.store.serializerFor('comment');
14919
+
14801
14920
  var json_hash = {
14802
14921
  comment: {
14803
14922
  id: '1',
@@ -14837,7 +14956,7 @@ define(
14837
14956
  }
14838
14957
  }));
14839
14958
 
14840
- var serializer = env.container.lookup('serializer:comment');
14959
+ var serializer = env.store.serializerFor('comment');
14841
14960
  var json_hash = {
14842
14961
  comment: {
14843
14962
  id: '1',
@@ -14890,7 +15009,7 @@ define(
14890
15009
  }
14891
15010
  }));
14892
15011
 
14893
- var serializer = env.container.lookup('serializer:home-planet');
15012
+ var serializer = env.store.serializerFor('home-planet');
14894
15013
  var json_hash = {
14895
15014
  home_planet: {
14896
15015
  id: '1',
@@ -14937,7 +15056,7 @@ define(
14937
15056
  }
14938
15057
  }));
14939
15058
 
14940
- var serializer = env.container.lookup('serializer:home-planet');
15059
+ var serializer = env.store.serializerFor('home-planet');
14941
15060
 
14942
15061
  var json_hash = {
14943
15062
  home_planets: [{
@@ -14981,7 +15100,7 @@ define(
14981
15100
  }
14982
15101
  }));
14983
15102
 
14984
- var serializer = env.container.lookup('serializer:home-planet');
15103
+ var serializer = env.store.serializerFor('home-planet');
14985
15104
 
14986
15105
  var json_hash = {
14987
15106
  home_planets: [{
@@ -15026,7 +15145,7 @@ define(
15026
15145
  }
15027
15146
  }));
15028
15147
 
15029
- var serializer = env.container.lookup('serializer:home-planet');
15148
+ var serializer = env.store.serializerFor('home-planet');
15030
15149
 
15031
15150
  var json_hash = {
15032
15151
  home_planets: [{
@@ -15065,7 +15184,7 @@ define(
15065
15184
  }
15066
15185
  }));
15067
15186
 
15068
- var serializer = env.container.lookup('serializer:comment');
15187
+ var serializer = env.store.serializerFor('comment');
15069
15188
 
15070
15189
  var json_hash = {
15071
15190
  comments: [{
@@ -15113,7 +15232,7 @@ define(
15113
15232
  }
15114
15233
  }));
15115
15234
 
15116
- var serializer = env.container.lookup('serializer:home-planet');
15235
+ var serializer = env.store.serializerFor('home-planet');
15117
15236
  var json_hash = {
15118
15237
  home_planets: [{
15119
15238
  id: '1',
@@ -15189,7 +15308,7 @@ define(
15189
15308
  }));
15190
15309
  var serializer, json;
15191
15310
  run(function () {
15192
- serializer = env.container.lookup('serializer:super-villain');
15311
+ serializer = env.store.serializerFor('super-villain');
15193
15312
  json = serializer.serialize(tom._createSnapshot());
15194
15313
  });
15195
15314
 
@@ -15215,7 +15334,7 @@ define(
15215
15334
 
15216
15335
  var serializer, json;
15217
15336
  run(function () {
15218
- serializer = env.container.lookup('serializer:home-planet');
15337
+ serializer = env.store.serializerFor('home-planet');
15219
15338
 
15220
15339
  json = serializer.serialize(league._createSnapshot());
15221
15340
  });
@@ -15247,7 +15366,7 @@ define(
15247
15366
  var serializer, json;
15248
15367
  warns(function () {
15249
15368
  run(function () {
15250
- serializer = env.container.lookup('serializer:home-planet');
15369
+ serializer = env.store.serializerFor('home-planet');
15251
15370
  json = serializer.serialize(league._createSnapshot());
15252
15371
  });
15253
15372
  }, /The embedded relationship 'villains' is undefined for 'home-planet' with id '123'. Please include it in your original payload./);
@@ -15271,7 +15390,7 @@ define(
15271
15390
  }));
15272
15391
  var serializer, json;
15273
15392
  run(function () {
15274
- serializer = env.container.lookup('serializer:home-planet');
15393
+ serializer = env.store.serializerFor('home-planet');
15275
15394
 
15276
15395
  json = serializer.serialize(league._createSnapshot());
15277
15396
  });
@@ -15294,7 +15413,7 @@ define(
15294
15413
  }));
15295
15414
  var serializer, json;
15296
15415
  run(function () {
15297
- serializer = env.container.lookup('serializer:home-planet');
15416
+ serializer = env.store.serializerFor('home-planet');
15298
15417
 
15299
15418
  json = serializer.serialize(league._createSnapshot());
15300
15419
  });
@@ -15353,7 +15472,7 @@ define(
15353
15472
  }
15354
15473
  }));
15355
15474
 
15356
- var serializer = env.container.lookup('serializer:super-villain');
15475
+ var serializer = env.store.serializerFor('super-villain');
15357
15476
 
15358
15477
  var json_hash = {
15359
15478
  super_villain: {
@@ -15404,7 +15523,7 @@ define(
15404
15523
  }));
15405
15524
  var serializer, json, tom;
15406
15525
  run(function () {
15407
- serializer = env.container.lookup('serializer:super-villain');
15526
+ serializer = env.store.serializerFor('super-villain');
15408
15527
 
15409
15528
  // records with an id, persisted
15410
15529
 
@@ -15442,7 +15561,7 @@ define(
15442
15561
  primaryKey: 'crazy_id'
15443
15562
  }));
15444
15563
 
15445
- var serializer = env.container.lookup('serializer:super-villain');
15564
+ var serializer = env.store.serializerFor('super-villain');
15446
15565
 
15447
15566
  // records with an id, persisted
15448
15567
  var tom, json;
@@ -15478,7 +15597,7 @@ define(
15478
15597
  }
15479
15598
  }));
15480
15599
 
15481
- var serializer = env.container.lookup('serializer:super-villain');
15600
+ var serializer = env.store.serializerFor('super-villain');
15482
15601
 
15483
15602
  // records without ids, new
15484
15603
  var tom, json;
@@ -15512,7 +15631,7 @@ define(
15512
15631
  secretLab: { serialize: 'ids' }
15513
15632
  }
15514
15633
  }));
15515
- var serializer = env.container.lookup('serializer:super-villain');
15634
+ var serializer = env.store.serializerFor('super-villain');
15516
15635
 
15517
15636
  // records with an id, persisted
15518
15637
  var tom, json;
@@ -15544,7 +15663,7 @@ define(
15544
15663
  }
15545
15664
  }));
15546
15665
 
15547
- var serializer = env.container.lookup('serializer:super-villain');
15666
+ var serializer = env.store.serializerFor('super-villain');
15548
15667
 
15549
15668
  // records with an id, persisted
15550
15669
  var tom, json;
@@ -15576,7 +15695,7 @@ define(
15576
15695
  }
15577
15696
  }));
15578
15697
 
15579
- var serializer = env.container.lookup('serializer:super-villain');
15698
+ var serializer = env.store.serializerFor('super-villain');
15580
15699
 
15581
15700
  // records with an id, persisted
15582
15701
  var tom, json;
@@ -15607,7 +15726,7 @@ define(
15607
15726
  secretLab: { serialize: false }
15608
15727
  }
15609
15728
  }));
15610
- var serializer = env.container.lookup('serializer:super-villain');
15729
+ var serializer = env.store.serializerFor('super-villain');
15611
15730
 
15612
15731
  // records with an id, persisted
15613
15732
  var tom, json;
@@ -15632,7 +15751,7 @@ define(
15632
15751
  test('serialize with embedded object (belongsTo relationship) serializes the id by default if no option specified', function () {
15633
15752
  env.registry.register('adapter:super-villain', DS.ActiveModelAdapter);
15634
15753
  env.registry.register('serializer:super-villain', DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin));
15635
- var serializer = env.container.lookup('serializer:super-villain');
15754
+ var serializer = env.store.serializerFor('super-villain');
15636
15755
 
15637
15756
  // records with an id, persisted
15638
15757
 
@@ -15664,7 +15783,7 @@ define(
15664
15783
  secretLab: { embedded: 'always' }
15665
15784
  }
15666
15785
  }));
15667
- var serializer = env.container.lookup('serializer:super-villain');
15786
+ var serializer = env.store.serializerFor('super-villain');
15668
15787
  var tom, json;
15669
15788
 
15670
15789
  run(function () {
@@ -15698,7 +15817,7 @@ define(
15698
15817
  }
15699
15818
  }));
15700
15819
 
15701
- var serializer = env.container.lookup('serializer:evil-minion');
15820
+ var serializer = env.store.serializerFor('evil-minion');
15702
15821
  var json_hash = {
15703
15822
  evil_minion: {
15704
15823
  id: '1',
@@ -15743,7 +15862,7 @@ define(
15743
15862
  secretWeapons: { embedded: 'always' }
15744
15863
  }
15745
15864
  }));
15746
- var serializer = env.container.lookup('serializer:super-villain');
15865
+ var serializer = env.store.serializerFor('super-villain');
15747
15866
 
15748
15867
  var json_hash = {
15749
15868
  super_villain: {
@@ -15793,7 +15912,7 @@ define(
15793
15912
  secretWeapons: { embedded: 'always' }
15794
15913
  }
15795
15914
  }));
15796
- var serializer = env.container.lookup('serializer:super-villain');
15915
+ var serializer = env.store.serializerFor('super-villain');
15797
15916
 
15798
15917
  var json_hash = {
15799
15918
  super_villain: {
@@ -15842,7 +15961,7 @@ define(
15842
15961
  secretLab: { embedded: 'always' }
15843
15962
  }
15844
15963
  }));
15845
- var serializer = env.container.lookup('serializer:super-villain');
15964
+ var serializer = env.store.serializerFor('super-villain');
15846
15965
 
15847
15966
  var json_hash = {
15848
15967
  super_villain: {
@@ -15890,7 +16009,7 @@ define(
15890
16009
  env.registry.register('serializer:bat-cave', DS.ActiveModelSerializer.extend({
15891
16010
  primaryKey: 'custom'
15892
16011
  }));
15893
- var serializer = env.container.lookup('serializer:super-villain');
16012
+ var serializer = env.store.serializerFor('super-villain');
15894
16013
 
15895
16014
  var json_hash = {
15896
16015
  super_villain: {
@@ -15938,7 +16057,7 @@ define(
15938
16057
  env.registry.register('serializer:bat-cave', DS.ActiveModelSerializer.extend({
15939
16058
  primaryKey: 'custom'
15940
16059
  }));
15941
- var serializer = env.container.lookup('serializer:super-villain');
16060
+ var serializer = env.store.serializerFor('super-villain');
15942
16061
 
15943
16062
  var json_hash = {
15944
16063
  super_villain: {
@@ -15990,7 +16109,7 @@ define(
15990
16109
  evilMinions: { serialize: 'records', deserialize: 'records' }
15991
16110
  }
15992
16111
  }));
15993
- var serializer = env.container.lookup('serializer:super-villain');
16112
+ var serializer = env.store.serializerFor('super-villain');
15994
16113
  var json;
15995
16114
 
15996
16115
  run(function () {
@@ -16023,7 +16142,7 @@ define(
16023
16142
  primaryKey: 'custom'
16024
16143
  }));
16025
16144
 
16026
- var serializer = env.container.lookup('serializer:evil-minion');
16145
+ var serializer = env.store.serializerFor('evil-minion');
16027
16146
  var json_hash = {
16028
16147
  evil_minion: {
16029
16148
  id: '1',
@@ -16092,7 +16211,7 @@ define(
16092
16211
  // e.g. secretWeapons: { serialize: 'ids' }
16093
16212
  }
16094
16213
  }));
16095
- var serializer = env.container.lookup('serializer:super-villain');
16214
+ var serializer = env.store.serializerFor('super-villain');
16096
16215
 
16097
16216
  var json;
16098
16217
  run(function () {
@@ -16136,7 +16255,7 @@ define(
16136
16255
  }
16137
16256
  }));
16138
16257
 
16139
- var serializer = env.container.lookup('serializer:evil-minion');
16258
+ var serializer = env.store.serializerFor('evil-minion');
16140
16259
  var json;
16141
16260
 
16142
16261
  run(function () {
@@ -16208,7 +16327,7 @@ define(
16208
16327
  });
16209
16328
 
16210
16329
  store = env.store;
16211
- serializer = env.container.lookup('serializer:-json-api');
16330
+ serializer = store.serializerFor('-json-api');
16212
16331
  },
16213
16332
 
16214
16333
  teardown: function () {
@@ -16533,7 +16652,7 @@ define(
16533
16652
  });
16534
16653
  var json = {};
16535
16654
 
16536
- env.container.lookup('serializer:post').serializeAttribute(post._createSnapshot(), json, 'title', { type: 'string' });
16655
+ env.store.serializerFor('post').serializeAttribute(post._createSnapshot(), json, 'title', { type: 'string' });
16537
16656
 
16538
16657
  deepEqual(json, { TITLE: 'Rails is omakase' });
16539
16658
  });
@@ -16592,7 +16711,7 @@ define(
16592
16711
  });
16593
16712
  var json = {};
16594
16713
 
16595
- env.container.lookup('serializer:post').serializeBelongsTo(comment._createSnapshot(), json, { key: 'post', options: {} });
16714
+ env.store.serializerFor('post').serializeBelongsTo(comment._createSnapshot(), json, { key: 'post', options: {} });
16596
16715
 
16597
16716
  deepEqual(json, {
16598
16717
  POST: '1'
@@ -16613,7 +16732,7 @@ define(
16613
16732
 
16614
16733
  var json = {};
16615
16734
 
16616
- env.container.lookup('serializer:post').serializeHasMany(post._createSnapshot(), json, { key: 'comments', options: {} });
16735
+ env.store.serializerFor('post').serializeHasMany(post._createSnapshot(), json, { key: 'comments', options: {} });
16617
16736
 
16618
16737
  deepEqual(json, {
16619
16738
  COMMENTS: ['1']
@@ -16653,7 +16772,7 @@ define(
16653
16772
  comment = env.store.createRecord('comment', { body: 'Omakase is delicious', post: post });
16654
16773
  });
16655
16774
 
16656
- env.container.lookup('serializer:comment').serializeBelongsTo(comment._createSnapshot(), {}, { key: 'post', options: { polymorphic: true } });
16775
+ env.store.serializerFor('comment').serializeBelongsTo(comment._createSnapshot(), {}, { key: 'post', options: { polymorphic: true } });
16657
16776
  });
16658
16777
 
16659
16778
  test('serializePolymorphicType async', function () {
@@ -16674,7 +16793,7 @@ define(
16674
16793
  comment = env.store.createRecord('comment', { body: 'Omakase is delicious', post: post });
16675
16794
  });
16676
16795
 
16677
- env.container.lookup('serializer:comment').serializeBelongsTo(comment._createSnapshot(), {}, { key: 'post', options: { async: true, polymorphic: true } });
16796
+ env.store.serializerFor('comment').serializeBelongsTo(comment._createSnapshot(), {}, { key: 'post', options: { async: true, polymorphic: true } });
16678
16797
  });
16679
16798
 
16680
16799
  test('extractArray normalizes each record in the array', function () {
@@ -16689,7 +16808,7 @@ define(
16689
16808
  }));
16690
16809
 
16691
16810
  run(function () {
16692
- env.container.lookup('serializer:post').extractArray(env.store, Post, posts);
16811
+ env.store.serializerFor('post').extractArray(env.store, Post, posts);
16693
16812
  });
16694
16813
  equal(postNormalizeCount, 2, 'two posts are normalized');
16695
16814
  });
@@ -16707,7 +16826,7 @@ define(
16707
16826
  my_comments: [1, 2]
16708
16827
  };
16709
16828
 
16710
- var post = env.container.lookup('serializer:post').extractSingle(env.store, Post, jsonHash);
16829
+ var post = env.store.serializerFor('post').extractSingle(env.store, Post, jsonHash);
16711
16830
 
16712
16831
  equal(post.title, 'Rails is omakase');
16713
16832
  deepEqual(post.comments, [1, 2]);
@@ -16730,7 +16849,7 @@ define(
16730
16849
  post = env.store.createRecord('post', { title: 'Rails is omakase', parentPost: parentPost });
16731
16850
  });
16732
16851
 
16733
- var payload = env.container.lookup('serializer:post').serialize(post._createSnapshot());
16852
+ var payload = env.store.serializerFor('post').serialize(post._createSnapshot());
16734
16853
 
16735
16854
  equal(payload.title_payload_key, 'Rails is omakase');
16736
16855
  equal(payload.my_parent, '2');
@@ -16748,7 +16867,7 @@ define(
16748
16867
  post = env.store.createRecord('post', { title: 'Rails is omakase' });
16749
16868
  });
16750
16869
 
16751
- var payload = env.container.lookup('serializer:post').serialize(post._createSnapshot());
16870
+ var payload = env.store.serializerFor('post').serialize(post._createSnapshot());
16752
16871
 
16753
16872
  ok(!payload.hasOwnProperty('title'), 'Does not add the key to instance');
16754
16873
  ok(!payload.hasOwnProperty('[object Object]'), 'Does not add some random key like [object Object]');
@@ -16767,7 +16886,7 @@ define(
16767
16886
  comment = env.store.createRecord('comment', { body: 'Omakase is delicious', post: post });
16768
16887
  });
16769
16888
 
16770
- var serializer = env.container.lookup('serializer:post');
16889
+ var serializer = env.store.serializerFor('post');
16771
16890
  var serializedProperty = serializer.keyForRelationship('comments', 'hasMany');
16772
16891
 
16773
16892
  var payload = serializer.serialize(post._createSnapshot());
@@ -16787,7 +16906,7 @@ define(
16787
16906
  comment = env.store.createRecord('comment', { body: 'Omakase is delicious', post: post });
16788
16907
  });
16789
16908
 
16790
- var serializer = env.container.lookup('serializer:comment');
16909
+ var serializer = env.store.serializerFor('comment');
16791
16910
  var serializedProperty = serializer.keyForRelationship('post', 'belongsTo');
16792
16911
 
16793
16912
  var payload = serializer.serialize(comment._createSnapshot());
@@ -16807,7 +16926,7 @@ define(
16807
16926
  comment = env.store.createRecord('comment', { body: 'Omakase is delicious', post: post });
16808
16927
  });
16809
16928
 
16810
- var serializer = env.container.lookup('serializer:post');
16929
+ var serializer = env.store.serializerFor('post');
16811
16930
  var serializedProperty = serializer.keyForRelationship('comments', 'hasMany');
16812
16931
 
16813
16932
  var payload = serializer.serialize(post._createSnapshot());
@@ -16827,7 +16946,7 @@ define(
16827
16946
  comment = env.store.createRecord('comment', { body: 'Omakase is delicious', post: post });
16828
16947
  });
16829
16948
 
16830
- var serializer = env.container.lookup('serializer:comment');
16949
+ var serializer = env.store.serializerFor('comment');
16831
16950
  var serializedProperty = serializer.keyForRelationship('post', 'belongsTo');
16832
16951
 
16833
16952
  var payload = serializer.serialize(comment._createSnapshot());
@@ -16847,7 +16966,7 @@ define(
16847
16966
  comment = env.store.createRecord('comment', { body: 'Omakase is delicious', post: post });
16848
16967
  });
16849
16968
 
16850
- var serializer = env.container.lookup('serializer:post');
16969
+ var serializer = env.store.serializerFor('post');
16851
16970
  var serializedProperty = serializer.keyForRelationship('comments', 'hasMany');
16852
16971
 
16853
16972
  var payload = serializer.serialize(post._createSnapshot());
@@ -16867,7 +16986,7 @@ define(
16867
16986
  comment = env.store.createRecord('comment', { body: 'Omakase is delicious', post: post });
16868
16987
  });
16869
16988
 
16870
- var serializer = env.container.lookup('serializer:comment');
16989
+ var serializer = env.store.serializerFor('comment');
16871
16990
  var serializedProperty = serializer.keyForRelationship('post', 'belongsTo');
16872
16991
 
16873
16992
  var payload = serializer.serialize(comment._createSnapshot());
@@ -16897,7 +17016,7 @@ define(
16897
17016
  post = env.store.createRecord('post', { title: 'Rails is omakase', description: 'Omakase is delicious', anotherString: 'yet another string' });
16898
17017
  });
16899
17018
 
16900
- var payload = env.container.lookup('serializer:post').serialize(post._createSnapshot());
17019
+ var payload = env.store.serializerFor('post').serialize(post._createSnapshot());
16901
17020
 
16902
17021
  equal(payload.title_payload_key, 'Rails is omakase');
16903
17022
  equal(payload.description_payload_key, 'Omakase is delicious');
@@ -16913,7 +17032,7 @@ define(
16913
17032
  var jsonHash = { '_ID_': 1, title: 'Rails is omakase' };
16914
17033
 
16915
17034
  run(function () {
16916
- post = env.container.lookup('serializer:post').extractSingle(env.store, Post, jsonHash);
17035
+ post = env.store.serializerFor('post').extractSingle(env.store, Post, jsonHash);
16917
17036
  });
16918
17037
 
16919
17038
  equal(post.id, '1');
@@ -16929,7 +17048,7 @@ define(
16929
17048
  post = env.store.createRecord('post', { id: '1', title: 'Rails is omakase' });
16930
17049
  });
16931
17050
 
16932
- var payload = env.container.lookup('serializer:post').serialize(post._createSnapshot(), { includeId: true });
17051
+ var payload = env.store.serializerFor('post').serialize(post._createSnapshot(), { includeId: true });
16933
17052
 
16934
17053
  equal(payload._ID_, '1');
16935
17054
  });
@@ -16943,7 +17062,7 @@ define(
16943
17062
 
16944
17063
  var jsonHash = { id: 1, TITLE: 'Rails is omakase' };
16945
17064
 
16946
- post = env.container.lookup('serializer:post').normalize(Post, jsonHash);
17065
+ post = env.store.serializerFor('post').normalize(Post, jsonHash);
16947
17066
 
16948
17067
  equal(post.id, '1');
16949
17068
  equal(post.title, 'Rails is omakase');
@@ -16958,7 +17077,7 @@ define(
16958
17077
 
16959
17078
  var jsonHash = { id: 1, title: 'Rails is omakase', COMMENTS: ['1'] };
16960
17079
 
16961
- post = env.container.lookup('serializer:post').normalize(Post, jsonHash);
17080
+ post = env.store.serializerFor('post').normalize(Post, jsonHash);
16962
17081
 
16963
17082
  deepEqual(post.comments, ['1']);
16964
17083
  });
@@ -17006,7 +17125,7 @@ define(
17006
17125
  inHash: DS.attr('string')
17007
17126
  });
17008
17127
 
17009
- var normalizedPayload = env.container.lookup('serializer:post').normalize(Post, {
17128
+ var normalizedPayload = env.store.serializerFor('post').normalize(Post, {
17010
17129
  id: '1',
17011
17130
  title: 'Ember rocks',
17012
17131
  author: 1,
@@ -17037,7 +17156,7 @@ define(
17037
17156
  favorite = env.store.createRecord('favorite', { post: post, id: '3' });
17038
17157
  });
17039
17158
 
17040
- env.container.lookup('serializer:favorite').serializeBelongsTo(favorite._createSnapshot(), json, { key: 'post', options: { polymorphic: true, async: true } });
17159
+ env.store.serializerFor('favorite').serializeBelongsTo(favorite._createSnapshot(), json, { key: 'post', options: { polymorphic: true, async: true } });
17041
17160
 
17042
17161
  deepEqual(json, expected, 'returned JSON is correct');
17043
17162
  });
@@ -17053,14 +17172,14 @@ define(
17053
17172
  var payload = {
17054
17173
  errors: [{
17055
17174
  source: { pointer: 'data/attributes/le_title' },
17056
- details: 'title errors'
17175
+ detail: 'title errors'
17057
17176
  }, {
17058
17177
  source: { pointer: 'data/attributes/my_comments' },
17059
- details: 'comments errors'
17178
+ detail: 'comments errors'
17060
17179
  }]
17061
17180
  };
17062
17181
 
17063
- var errors = env.container.lookup('serializer:post').extractErrors(env.store, Post, payload);
17182
+ var errors = env.store.serializerFor('post').extractErrors(env.store, Post, payload);
17064
17183
 
17065
17184
  deepEqual(errors, {
17066
17185
  title: ['title errors'],
@@ -17075,11 +17194,11 @@ define(
17075
17194
  attributeWhichWillBeRemovedinExtractErrors: ['true'],
17076
17195
  errors: [{
17077
17196
  source: { pointer: 'data/attributes/title' },
17078
- details: 'title errors'
17197
+ detail: 'title errors'
17079
17198
  }]
17080
17199
  };
17081
17200
 
17082
- var errors = env.container.lookup('serializer:post').extractErrors(env.store, Post, payload);
17201
+ var errors = env.store.serializerFor('post').extractErrors(env.store, Post, payload);
17083
17202
 
17084
17203
  deepEqual(errors, { title: ['title errors'] });
17085
17204
  });
@@ -17091,7 +17210,7 @@ define(
17091
17210
  untouchedSinceNoErrorsSiblingPresent: ['true']
17092
17211
  };
17093
17212
 
17094
- var errors = env.container.lookup('serializer:post').extractErrors(env.store, Post, payload);
17213
+ var errors = env.store.serializerFor('post').extractErrors(env.store, Post, payload);
17095
17214
 
17096
17215
  deepEqual(errors, { untouchedSinceNoErrorsSiblingPresent: ['true'] });
17097
17216
  });
@@ -19376,15 +19495,15 @@ define(
19376
19495
 
19377
19496
  var errorsArray = [{
19378
19497
  title: "Invalid Attribute",
19379
- details: "is invalid",
19498
+ detail: "is invalid",
19380
19499
  source: { pointer: "data/attributes/name" }
19381
19500
  }, {
19382
19501
  title: "Invalid Attribute",
19383
- details: "must be a string",
19502
+ detail: "must be a string",
19384
19503
  source: { pointer: "data/attributes/name" }
19385
19504
  }, {
19386
19505
  title: "Invalid Attribute",
19387
- details: "must be a number",
19506
+ detail: "must be a number",
19388
19507
  source: { pointer: "data/attributes/age" }
19389
19508
  }];
19390
19509
 
@@ -19407,7 +19526,7 @@ define(
19407
19526
 
19408
19527
  deepEqual(error.errors, [{
19409
19528
  title: "Invalid Attribute",
19410
- details: "is invalid",
19529
+ detail: "is invalid",
19411
19530
  source: { pointer: "data/attributes/name" }
19412
19531
  }]);
19413
19532
  });
@@ -20150,6 +20269,8 @@ define("ember-data/tests/unit/model-test", ["exports"], function(__exports__) {
20150
20269
  __exports__[name] = value;
20151
20270
  }
20152
20271
 
20272
+ var keysFunc = Object.keys || Ember.keys;
20273
+
20153
20274
  var get = Ember.get;
20154
20275
  var set = Ember.set;
20155
20276
  var run = Ember.run;
@@ -20360,7 +20481,7 @@ define("ember-data/tests/unit/model-test", ["exports"], function(__exports__) {
20360
20481
  mascot = store.push('mascot', { id: 1, likes: 'JavaScript', isMascot: true });
20361
20482
  });
20362
20483
 
20363
- equal(Ember.keys(mascot.changedAttributes()).length, 0, 'there are no initial changes');
20484
+ equal(keysFunc(mascot.changedAttributes()).length, 0, 'there are no initial changes');
20364
20485
  run(function () {
20365
20486
  mascot.set('name', 'Tomster'); // new value
20366
20487
  mascot.set('likes', 'Ember.js'); // changed value
@@ -20373,7 +20494,7 @@ define("ember-data/tests/unit/model-test", ["exports"], function(__exports__) {
20373
20494
  run(function () {
20374
20495
  mascot.rollbackAttributes();
20375
20496
  });
20376
- equal(Ember.keys(mascot.changedAttributes()).length, 0, 'after rollback attributes there are no changes');
20497
+ equal(keysFunc(mascot.changedAttributes()).length, 0, 'after rollback attributes there are no changes');
20377
20498
  });
20378
20499
 
20379
20500
  test('a DS.Model does not require an attribute type', function () {
@@ -22826,6 +22947,8 @@ define(
22826
22947
  __exports__[name] = value;
22827
22948
  }
22828
22949
 
22950
+ var keysFunc = Object.keys || Ember.keys;
22951
+
22829
22952
  var env, store, Person, Dog;
22830
22953
  var run = Ember.run;
22831
22954
 
@@ -22932,7 +23055,7 @@ define(
22932
23055
 
22933
23056
  equal(person.get("firstName"), "Tom");
22934
23057
  equal(person.get("isError"), false);
22935
- equal(Ember.keys(person.changedAttributes()).length, 0);
23058
+ equal(keysFunc(person.changedAttributes()).length, 0);
22936
23059
  });
22937
23060
  });
22938
23061
  });
@@ -25321,6 +25444,8 @@ define(
25321
25444
  __exports__[name] = value;
25322
25445
  }
25323
25446
 
25447
+ var keysFunc = Object.keys || Ember.keys;
25448
+
25324
25449
  var store;
25325
25450
 
25326
25451
  var run = Ember.run;
@@ -25352,7 +25477,7 @@ define(
25352
25477
  expect(7);
25353
25478
 
25354
25479
  function metadataKeys(type) {
25355
- return Ember.keys(store.metadataFor(type));
25480
+ return keysFunc(store.metadataFor(type));
25356
25481
  }
25357
25482
 
25358
25483
  // Currently not using QUnit.deepEqual due to the way deepEqual
@@ -26965,6 +27090,13 @@ test('ember-data/lib/system/normalize-model-name.js should pass jshint', functio
26965
27090
  ok(true, 'ember-data/lib/system/normalize-model-name.js should pass jshint.');
26966
27091
  });
26967
27092
 
27093
+ }
27094
+ if (!QUnit.urlParams.nojshint) {
27095
+ module('JSHint - ember-data/lib/system');
27096
+ test('ember-data/lib/system/object-polyfills.js should pass jshint', function() {
27097
+ ok(true, 'ember-data/lib/system/object-polyfills.js should pass jshint.');
27098
+ });
27099
+
26968
27100
  }
26969
27101
  if (!QUnit.urlParams.nojshint) {
26970
27102
  module('JSHint - ember-data/lib/system');