From 289f686feca1f0eb3a57f15954c65faf5f27c349 Mon Sep 17 00:00:00 2001 From: cjroebuck Date: Sat, 1 Mar 2014 12:05:05 +0000 Subject: [PATCH] Add tests for Model.find() not returning sideloaded data --- .../tests/model_sideloading_test.js | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/packages/ember-model/tests/model_sideloading_test.js b/packages/ember-model/tests/model_sideloading_test.js index 3f0a44c..c62da5e 100644 --- a/packages/ember-model/tests/model_sideloading_test.js +++ b/packages/ember-model/tests/model_sideloading_test.js @@ -29,6 +29,60 @@ test("data can be sideloaded without materializing records", function() { strictEqual(record.get('name'), "Erik", "Record name retained successfully"); }); +test("find should return materialized sideloaded data", function() { + expect(3); + + var Model = Ember.Model.extend({ + id: attr(), + name: attr(), + camelCase: attr() + }); + + Model.adapter = { + findAll: function(record, id) { + ok(false, "Adapter#findAll shouldn't be called for records with sideloaded data"); + } + }; + + Model.load([{id: 1, name: "Erik", camel_case: "Dromedary"}]); + + var records; + Ember.run(function() { + records = Model.find(); + }); + + ok(records.objectAt(0).get('isLoaded'), "Record should be loaded immediately"); + strictEqual(records.objectAt(0).get('id'), 1, "Record ID retained successfully"); + strictEqual(records.objectAt(0).get('name'), "Erik", "Record name retained successfully"); +}); + +test("find with array of ids should return materialized sideloaded data", function() { + expect(3); + + var Model = Ember.Model.extend({ + id: attr(), + name: attr(), + camelCase: attr() + }); + + Model.adapter = { + find: function(record, id) { + ok(false, "Adapter#find shouldn't be called for records with sideloaded data"); + } + }; + + Model.load([{id: 1, name: "Erik", camel_case: "Dromedary"}],[{id: 2, name: "Bryn", camel_case: "Dromedary2"}]); + + var records; + Ember.run(function() { + records = Model.find([1,2]); + }); + + ok(records.objectAt(0).get('isLoaded'), "Record should be loaded immediately"); + strictEqual(records.objectAt(0).get('id'), 1, "Record ID retained successfully"); + strictEqual(records.objectAt(0).get('name'), "Erik", "Record name retained successfully"); +}); + test("sideloading works with camelized attributes", function() { expect(1);