ember-data-factory-guy 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b06f33fb9621106f4f02eb26c7713666896ecf09
4
- data.tar.gz: b5c0b2f9fa642b633872d6e149a85d9e46f3a374
3
+ metadata.gz: 08b067285d7aad700359cc0468ef56c4271acb13
4
+ data.tar.gz: 5e25e40fc8e23190e91e47b122c02af21e57fd97
5
5
  SHA512:
6
- metadata.gz: 40dbe1dbd5768db1b9243e4ab70661f220e43377bf05539aef02d766426a9b22e21df6bb345b4b255128406818f7a17c60b3fcb42d6fc0dc7589966254e1d7a4
7
- data.tar.gz: f94c612fe482b3c5bca3313b7aba0a3c481215efaf01f123413de46d983610c73f6a50ffe77a9563b0008d892d34b8c16983fe41536d6ea70fa31d547524a836
6
+ metadata.gz: cf1b499ea9ce45d723aa60b966297b0136c3f617256b57f96aedaaac768b4f693acd9c5032cf7f8e4c0ab52c763c6ad47c6ca7c43ed1146e10149110181f96cc
7
+ data.tar.gz: fe67654d6644a3e6da62cd31015090deff2f970bfa5827d395c61273e9aac28bce3168db5cf66b6eb6528afd3270dccd1d7686885db6d40d6949938410aa7c6c
data/README.md CHANGED
@@ -15,10 +15,9 @@ of ember-data-factory-guy.
15
15
  **Support for fixture adapter is currently kinda broken.**
16
16
 
17
17
  *Version 0.9.0 and up deprecates explicit call to store.makeFixture in your tests, in favor
18
- of using the testHelper.make function from FactoryGuyTestHelperMixin instead. If your not currently
19
- doing this already ( using FactoryGuyTestHelperMixin ), add a FactoryGuy.setStore(store) somewhere
20
- in your code before you start making fixtures.*
21
-
18
+ of using the FactoryGuy.make or testHelper.make function from FactoryGuyTestHelperMixin instead.
19
+ If your not currently doing this already ( using FactoryGuyTestHelperMixin ), add a call to
20
+ FactoryGuy.setStore(store) somewhere in your code before you start making fixtures.*
22
21
 
23
22
  ## Using with Ember Cli
24
23
  - https://github.com/igorrKurr/ember-cli-factory-guy-example
@@ -228,8 +227,9 @@ the store is looking up the correct model type name
228
227
 
229
228
  ```javascript
230
229
  // First set the store on FactoryGuy. You don't have to do this step manually if you use
231
- // FactoryGuyTestHelperMixin since this is done for you in the setup method.
232
- var store = this.get('container').lookup('store:main');
230
+ // FactoryGuyTestHelperMixin since this is done for you in the setup method. The following
231
+ // store lookup assumes you have a namespace for your Ember app named 'App'.
232
+ var store = App.__container__.lookup('store:main');
233
233
  FactoryGuy.setStore(store);
234
234
 
235
235
  // returns json
@@ -492,7 +492,7 @@ the reverse user hasMany 'projects' association is being setup for you on the us
492
492
  user.get('projects.length') // => 2
493
493
 
494
494
  // or
495
- var projects = store.makeList('project', 2);
495
+ var projects = FactoryGuy.makeList('project', 2);
496
496
  var user = FactoryGuy.make('user', {projects: projects});
497
497
  user.get('projects.length') // => 2
498
498
 
@@ -511,7 +511,7 @@ the reverse 'user' belongsTo association is being setup for you on the project
511
511
 
512
512
  - FactoryGuy.buildList
513
513
  - Builds an array of one or more json objects
514
- - store.makeList
514
+ - FactoryGuy.makeList
515
515
  - Loads one or more instances into store
516
516
 
517
517
 
@@ -528,7 +528,7 @@ the reverse 'user' belongsTo association is being setup for you on the project
528
528
  ##### Building model instances
529
529
 
530
530
  ```javascript
531
- var users = store.makeList('user', 2)
531
+ var users = FactoryGuy.makeList('user', 2)
532
532
  users.get('length') // => 2
533
533
  users[0].toJSON({includeId: true}) // => {id: 3, name: 'User3', style: 'normal'}
534
534
  users[1].toJSON({includeId: true}) // => {id: 4, name: 'User4', style: 'normal'}
@@ -593,7 +593,8 @@ test("make a user using your applications default adapter", function() {
593
593
  - Uses mockjax
594
594
  - Has helper methods
595
595
  - handleFindMany
596
- - handleCreate
596
+ - handleFindQuery
597
+ - handleCreate
597
598
  - handleUpdate
598
599
  - handleDelete
599
600
 
@@ -619,7 +620,7 @@ tests run as shown in the previous section (Using FactoryGuyTestMixin)**
619
620
  - for dealing with finding all records of a particular type
620
621
 
621
622
  ```javascript
622
- // can use traits and extra fixture options here as you would with store#makeList
623
+ // can use traits and extra fixture options here as you would with FactoryGuy#makeList
623
624
  testHelper.handleFindMany('profile', 2);
624
625
 
625
626
  store.find('profile').then(function (profiles) {
@@ -627,6 +628,24 @@ tests run as shown in the previous section (Using FactoryGuyTestMixin)**
627
628
  });
628
629
  ```
629
630
 
631
+
632
+ ##### handleFindQuery
633
+ - for dealing with finding all records for a type of model with query parameters.
634
+
635
+ ```javascript
636
+ // First build json for the instances you want 'returned' in your query.
637
+ var usersJson = FactoryGuy.buildList('user', 2);
638
+
639
+ // Pass in the parameters you will search on ( in this case 'name' and 'age' )
640
+ // as an array, in the second argument.
641
+ testHelper.handleFindQuery('user', ['name', 'age'], usersJson);
642
+
643
+ store.findQuery('user', {name:'Bob', age: 10}}).then(function(userInstances){
644
+ /// userInstances are created from the usersJson that you passed in
645
+ })
646
+ ```
647
+
648
+
630
649
  ##### handleCreate
631
650
  - options
632
651
  - match - attributes that must be in request json
data/bower.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-data-factory-guy",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "authors": [
5
5
  "Daniel Sudol <dansudol@yahoo.com>",
6
6
  "Opak Alex <opak.alexandr@gmail.com>"
@@ -247,25 +247,13 @@ var FactoryGuy = {
247
247
  */
248
248
  isAttributeRelationship: function(typeName, attribute) {
249
249
  if (!this.store) {
250
- console.log("FactoryGuy does not have the application's store. Use FactoryGuy.setStore(store) before making any fixtures")
250
+ Ember.debug("FactoryGuy does not have the application's store. Use FactoryGuy.setStore(store) before making any fixtures")
251
251
  // The legacy value was true.
252
252
  return true;
253
253
  }
254
254
  var model = this.store.modelFor(typeName);
255
255
  return !!model.typeForRelationship(attribute);
256
256
  },
257
- /**
258
- Make new fixture and save to store. Proxy to store#makeFixture method
259
-
260
- @param {String} name fixture name
261
- @param {String} trait optional trait names ( one or more )
262
- @param {Object} opts optional fixture options that will override default fixture values
263
- @returns {Object|DS.Model} json or record depending on the adapter type
264
- */
265
- make: function() {
266
- Ember.assert("FactoryGuy does not have the application's store. Use FactoryGuy.setStore(store) before making any fixtures", this.store);
267
- return this.store.makeFixture.apply(this.store,arguments);
268
- },
269
257
  /**
270
258
  Used in model definitions to declare use of a sequence. For example:
271
259
 
@@ -333,7 +321,7 @@ var FactoryGuy = {
333
321
  };
334
322
  },
335
323
  association: function (fixtureName, opts) {
336
- console.log('DEPRECATION Warning: use FactoryGuy.belongsTo instead');
324
+ Ember.deprecate('DEPRECATION Warning: use FactoryGuy.belongsTo instead');
337
325
  return this.belongsTo(fixtureName, opts);
338
326
  },
339
327
  /**
@@ -460,7 +448,53 @@ var FactoryGuy = {
460
448
  }
461
449
  return definition.buildList(name, number, traits, opts);
462
450
  },
451
+ /**
452
+ Make new fixture and save to store.
453
+
454
+ @param {String} name fixture name
455
+ @param {String} trait optional trait names ( one or more )
456
+ @param {Object} options optional fixture options that will override default fixture values
457
+ @returns {Object|DS.Model} json or record depending on the adapter type
458
+ */
459
+ make: function() {
460
+ var store = this.store;
461
+ Ember.assert("FactoryGuy does not have the application's store. Use FactoryGuy.setStore(store) before making any fixtures", store);
462
+
463
+ var fixture = this.build.apply(this, arguments);
464
+ var name = arguments[0];
465
+ var modelName = this.lookupModelForFixtureName(name);
466
+ var modelType = store.modelFor(modelName);
467
+
468
+ if (store.usingFixtureAdapter()) {
469
+ store.setAssociationsForFixtureAdapter(modelType, modelName, fixture);
470
+ return this.pushFixture(modelType, fixture);
471
+ } else {
472
+ return store.makeModel(modelType, fixture);
473
+ }
474
+ },
475
+ /**
476
+ Make a list of Fixtures
463
477
 
478
+ @param {String} name name of fixture
479
+ @param {Number} number number to create
480
+ @param {String} trait optional trait names ( one or more )
481
+ @param {Object} options optional fixture options that will override default fixture values
482
+ @returns {Array} list of json fixtures or records depending on the adapter type
483
+ */
484
+ makeList: function() {
485
+ Ember.assert("FactoryGuy does not have the application's store. Use FactoryGuy.setStore(store) before making any fixtures", this.store);
486
+
487
+ var arr = [];
488
+ var args = Array.prototype.slice.call(arguments);
489
+ Ember.assert("makeList needs at least 2 arguments, a name and a number",args.length >= 2);
490
+ var number = args.splice(1,1)[0];
491
+ Ember.assert("Second argument to makeList should be a number (of fixtures to make.)",typeof number == 'number');
492
+
493
+ for (var i = 0; i < number; i++) {
494
+ arr.push(this.make.apply(this, args));
495
+ }
496
+ return arr;
497
+ },
464
498
  /**
465
499
  Clear model instances from FIXTURES array, and from store cache.
466
500
  Reset the id sequence for the models back to zero.
@@ -548,30 +582,30 @@ var FactoryGuy = {
548
582
  return adapter instanceof DS.FixtureAdapter;
549
583
  },
550
584
  /**
551
- Make new fixture and save to store. If the store is using FixtureAdapter,
552
- will push to FIXTURE array, otherwise will use push method on adapter to load
553
- the record into the store
554
-
555
- @param {String} name fixture name
556
- @param {String} trait optional trait names ( one or more )
557
- @param {Object} opts optional fixture options that will override default fixture values
558
- @returns {Object|DS.Model} json or record depending on the adapter type
585
+ Deprecated in favor of FactoryGuy.make
559
586
  */
560
587
  makeFixture: function () {
561
- var store = this;
562
- var fixture = FactoryGuy.build.apply(FactoryGuy, arguments);
563
- var name = arguments[0];
564
- var modelName = FactoryGuy.lookupModelForFixtureName(name);
565
- var modelType = store.modelFor(modelName);
566
- if (this.usingFixtureAdapter()) {
567
- this.setAssociationsForFixtureAdapter(modelType, modelName, fixture);
568
- return FactoryGuy.pushFixture(modelType, fixture);
569
- } else {
570
- return store.makeModel(modelType, fixture);
571
- }
588
+ Ember.deprecate('DEPRECATION Warning: use FactoryGuy.make instead');
589
+ FactoryGuy.make.call(FactoryGuy, arguments)
590
+ },
591
+ /**
592
+ Deprecated in favor of FactoryGuy.makeList
593
+ */
594
+ makeList: function () {
595
+ Ember.deprecate('DEPRECATION Warning: use FactoryGuy.makeList instead');
596
+ FactoryGuy.makeList.call(FactoryGuy, arguments)
572
597
  },
598
+ /**
599
+ * Most of the work of making the model from the json fixture is going on here.
600
+ * @param modelType
601
+ * @param fixture
602
+ * @returns {*}
603
+ */
573
604
  makeModel: function (modelType, fixture) {
574
- var store = this, modelName = store.modelFor(modelType).typeKey, model;
605
+ var store = this,
606
+ modelName = store.modelFor(modelType).typeKey,
607
+ model;
608
+
575
609
  Em.run(function () {
576
610
  store.findEmbeddedAssociationsForRESTAdapter(modelType, fixture);
577
611
  if (fixture.type) {
@@ -585,22 +619,6 @@ var FactoryGuy = {
585
619
  });
586
620
  return model;
587
621
  },
588
- /**
589
- Make a list of Fixtures
590
-
591
- @param {String} name name of fixture
592
- @param {Number} number number to create
593
- @param {Object} options fixture options
594
- @returns {Array} list of json fixtures or records depending on the adapter type
595
- */
596
- makeList: function () {
597
- var arr = [];
598
- var number = arguments[1];
599
- for (var i = 0; i < number; i++) {
600
- arr.push(this.makeFixture.apply(this, arguments));
601
- }
602
- return arr;
603
- },
604
622
  /**
605
623
  Set the hasMany and belongsTo associations for FixtureAdapter.
606
624
 
@@ -817,11 +835,10 @@ var FactoryGuyTestMixin = Em.Mixin.create({
817
835
  return this.getStore().find(type, id);
818
836
  },
819
837
  /**
820
- Make new fixture and save to store. Proxy to store#makeFixture method
838
+ Make new fixture and save to store. Proxy to FactoryGuy#make method
821
839
  */
822
840
  make: function () {
823
- var store = this.getStore();
824
- return store.makeFixture.apply(store, arguments);
841
+ return FactoryGuy.make.apply(FactoryGuy, arguments);
825
842
  },
826
843
  getStore: function () {
827
844
  return this.get('container').lookup('store:main');
@@ -842,6 +859,9 @@ var FactoryGuyTestMixin = Em.Mixin.create({
842
859
  type: options.type || 'GET',
843
860
  status: options.status || 200
844
861
  };
862
+ if (options.urlParams) {
863
+ request.urlParams = options.urlParams;
864
+ }
845
865
  if (options.data) {
846
866
  request.data = options.data;
847
867
  }
@@ -868,9 +888,8 @@ var FactoryGuyTestMixin = Em.Mixin.create({
868
888
  @param {Object} opts optional fixture options
869
889
  */
870
890
  handleFindMany: function () {
871
- var store = this.getStore();
872
891
  // make the records and load them in the store
873
- store.makeList.apply(store, arguments);
892
+ FactoryGuy.makeList.apply(FactoryGuy, arguments);
874
893
  var name = arguments[0];
875
894
  var modelName = FactoryGuy.lookupModelForFixtureName(name);
876
895
  var responseJson = {};
@@ -878,7 +897,35 @@ var FactoryGuyTestMixin = Em.Mixin.create({
878
897
  var url = this.buildURL(modelName);
879
898
  // mock the ajax call, but return nothing, since the records will be
880
899
  // retrieved from the store where they were just loaded above
881
- this.stubEndpointForHttpRequest(url, responseJson, { type: 'GET' });
900
+ this.stubEndpointForHttpRequest(url, responseJson);
901
+ },
902
+ /**
903
+ Handling ajax GET for finding all records for a type of model with query parameters.
904
+
905
+ ```js
906
+ // First build json for the instances you want 'returned' in your query.
907
+ var usersJson = FactoryGuy.buildList('user', 2);
908
+
909
+ // Pass in the parameters you will search on ( in this case 'name' and 'age' ) as an array,
910
+ // in the second argument.
911
+ testHelper.handleFindQuery('user', ['name', 'age'], usersJson);
912
+
913
+ store.findQuery('user', {name:'Bob', age: 10}}).then(function(userInstances){
914
+ /// userInstances were created from the usersJson that you passed in
915
+ })
916
+ ```
917
+
918
+ The model instances will be created from the json you have passed in.
919
+
920
+ @param {String} modelName name of the mode like 'user' for User model type
921
+ @param {String} searchParams the parameters that will be queried
922
+ @param {Object} json fixture json used to build the resulting modelType instances
923
+ */
924
+ handleFindQuery: function (modelName, searchParams, json) {
925
+ var responseJson = {};
926
+ responseJson[modelName.pluralize()] = json;
927
+ var url = this.buildURL(modelName);
928
+ this.stubEndpointForHttpRequest(url, responseJson, {urlParams: searchParams});
882
929
  },
883
930
  /**
884
931
  Handling ajax POST ( create record ) for a model. You can mock
@@ -242,25 +242,13 @@ var FactoryGuy = {
242
242
  */
243
243
  isAttributeRelationship: function(typeName, attribute) {
244
244
  if (!this.store) {
245
- console.log("FactoryGuy does not have the application's store. Use FactoryGuy.setStore(store) before making any fixtures")
245
+ Ember.debug("FactoryGuy does not have the application's store. Use FactoryGuy.setStore(store) before making any fixtures")
246
246
  // The legacy value was true.
247
247
  return true;
248
248
  }
249
249
  var model = this.store.modelFor(typeName);
250
250
  return !!model.typeForRelationship(attribute);
251
251
  },
252
- /**
253
- Make new fixture and save to store. Proxy to store#makeFixture method
254
-
255
- @param {String} name fixture name
256
- @param {String} trait optional trait names ( one or more )
257
- @param {Object} opts optional fixture options that will override default fixture values
258
- @returns {Object|DS.Model} json or record depending on the adapter type
259
- */
260
- make: function() {
261
- Ember.assert("FactoryGuy does not have the application's store. Use FactoryGuy.setStore(store) before making any fixtures", this.store);
262
- return this.store.makeFixture.apply(this.store,arguments);
263
- },
264
252
  /**
265
253
  Used in model definitions to declare use of a sequence. For example:
266
254
 
@@ -328,7 +316,7 @@ var FactoryGuy = {
328
316
  };
329
317
  },
330
318
  association: function (fixtureName, opts) {
331
- console.log('DEPRECATION Warning: use FactoryGuy.belongsTo instead');
319
+ Ember.deprecate('DEPRECATION Warning: use FactoryGuy.belongsTo instead');
332
320
  return this.belongsTo(fixtureName, opts);
333
321
  },
334
322
  /**
@@ -455,7 +443,53 @@ var FactoryGuy = {
455
443
  }
456
444
  return definition.buildList(name, number, traits, opts);
457
445
  },
446
+ /**
447
+ Make new fixture and save to store.
448
+
449
+ @param {String} name fixture name
450
+ @param {String} trait optional trait names ( one or more )
451
+ @param {Object} options optional fixture options that will override default fixture values
452
+ @returns {Object|DS.Model} json or record depending on the adapter type
453
+ */
454
+ make: function() {
455
+ var store = this.store;
456
+ Ember.assert("FactoryGuy does not have the application's store. Use FactoryGuy.setStore(store) before making any fixtures", store);
457
+
458
+ var fixture = this.build.apply(this, arguments);
459
+ var name = arguments[0];
460
+ var modelName = this.lookupModelForFixtureName(name);
461
+ var modelType = store.modelFor(modelName);
462
+
463
+ if (store.usingFixtureAdapter()) {
464
+ store.setAssociationsForFixtureAdapter(modelType, modelName, fixture);
465
+ return this.pushFixture(modelType, fixture);
466
+ } else {
467
+ return store.makeModel(modelType, fixture);
468
+ }
469
+ },
470
+ /**
471
+ Make a list of Fixtures
458
472
 
473
+ @param {String} name name of fixture
474
+ @param {Number} number number to create
475
+ @param {String} trait optional trait names ( one or more )
476
+ @param {Object} options optional fixture options that will override default fixture values
477
+ @returns {Array} list of json fixtures or records depending on the adapter type
478
+ */
479
+ makeList: function() {
480
+ Ember.assert("FactoryGuy does not have the application's store. Use FactoryGuy.setStore(store) before making any fixtures", this.store);
481
+
482
+ var arr = [];
483
+ var args = Array.prototype.slice.call(arguments);
484
+ Ember.assert("makeList needs at least 2 arguments, a name and a number",args.length >= 2);
485
+ var number = args.splice(1,1)[0];
486
+ Ember.assert("Second argument to makeList should be a number (of fixtures to make.)",typeof number == 'number');
487
+
488
+ for (var i = 0; i < number; i++) {
489
+ arr.push(this.make.apply(this, args));
490
+ }
491
+ return arr;
492
+ },
459
493
  /**
460
494
  Clear model instances from FIXTURES array, and from store cache.
461
495
  Reset the id sequence for the models back to zero.
@@ -543,30 +577,30 @@ var FactoryGuy = {
543
577
  return adapter instanceof DS.FixtureAdapter;
544
578
  },
545
579
  /**
546
- Make new fixture and save to store. If the store is using FixtureAdapter,
547
- will push to FIXTURE array, otherwise will use push method on adapter to load
548
- the record into the store
549
-
550
- @param {String} name fixture name
551
- @param {String} trait optional trait names ( one or more )
552
- @param {Object} opts optional fixture options that will override default fixture values
553
- @returns {Object|DS.Model} json or record depending on the adapter type
580
+ Deprecated in favor of FactoryGuy.make
554
581
  */
555
582
  makeFixture: function () {
556
- var store = this;
557
- var fixture = FactoryGuy.build.apply(FactoryGuy, arguments);
558
- var name = arguments[0];
559
- var modelName = FactoryGuy.lookupModelForFixtureName(name);
560
- var modelType = store.modelFor(modelName);
561
- if (this.usingFixtureAdapter()) {
562
- this.setAssociationsForFixtureAdapter(modelType, modelName, fixture);
563
- return FactoryGuy.pushFixture(modelType, fixture);
564
- } else {
565
- return store.makeModel(modelType, fixture);
566
- }
583
+ Ember.deprecate('DEPRECATION Warning: use FactoryGuy.make instead');
584
+ FactoryGuy.make.call(FactoryGuy, arguments)
585
+ },
586
+ /**
587
+ Deprecated in favor of FactoryGuy.makeList
588
+ */
589
+ makeList: function () {
590
+ Ember.deprecate('DEPRECATION Warning: use FactoryGuy.makeList instead');
591
+ FactoryGuy.makeList.call(FactoryGuy, arguments)
567
592
  },
593
+ /**
594
+ * Most of the work of making the model from the json fixture is going on here.
595
+ * @param modelType
596
+ * @param fixture
597
+ * @returns {*}
598
+ */
568
599
  makeModel: function (modelType, fixture) {
569
- var store = this, modelName = store.modelFor(modelType).typeKey, model;
600
+ var store = this,
601
+ modelName = store.modelFor(modelType).typeKey,
602
+ model;
603
+
570
604
  Em.run(function () {
571
605
  store.findEmbeddedAssociationsForRESTAdapter(modelType, fixture);
572
606
  if (fixture.type) {
@@ -580,22 +614,6 @@ var FactoryGuy = {
580
614
  });
581
615
  return model;
582
616
  },
583
- /**
584
- Make a list of Fixtures
585
-
586
- @param {String} name name of fixture
587
- @param {Number} number number to create
588
- @param {Object} options fixture options
589
- @returns {Array} list of json fixtures or records depending on the adapter type
590
- */
591
- makeList: function () {
592
- var arr = [];
593
- var number = arguments[1];
594
- for (var i = 0; i < number; i++) {
595
- arr.push(this.makeFixture.apply(this, arguments));
596
- }
597
- return arr;
598
- },
599
617
  /**
600
618
  Set the hasMany and belongsTo associations for FixtureAdapter.
601
619
 
@@ -812,11 +830,10 @@ var FactoryGuyTestMixin = Em.Mixin.create({
812
830
  return this.getStore().find(type, id);
813
831
  },
814
832
  /**
815
- Make new fixture and save to store. Proxy to store#makeFixture method
833
+ Make new fixture and save to store. Proxy to FactoryGuy#make method
816
834
  */
817
835
  make: function () {
818
- var store = this.getStore();
819
- return store.makeFixture.apply(store, arguments);
836
+ return FactoryGuy.make.apply(FactoryGuy, arguments);
820
837
  },
821
838
  getStore: function () {
822
839
  return this.get('container').lookup('store:main');
@@ -837,6 +854,9 @@ var FactoryGuyTestMixin = Em.Mixin.create({
837
854
  type: options.type || 'GET',
838
855
  status: options.status || 200
839
856
  };
857
+ if (options.urlParams) {
858
+ request.urlParams = options.urlParams;
859
+ }
840
860
  if (options.data) {
841
861
  request.data = options.data;
842
862
  }
@@ -863,9 +883,8 @@ var FactoryGuyTestMixin = Em.Mixin.create({
863
883
  @param {Object} opts optional fixture options
864
884
  */
865
885
  handleFindMany: function () {
866
- var store = this.getStore();
867
886
  // make the records and load them in the store
868
- store.makeList.apply(store, arguments);
887
+ FactoryGuy.makeList.apply(FactoryGuy, arguments);
869
888
  var name = arguments[0];
870
889
  var modelName = FactoryGuy.lookupModelForFixtureName(name);
871
890
  var responseJson = {};
@@ -873,7 +892,35 @@ var FactoryGuyTestMixin = Em.Mixin.create({
873
892
  var url = this.buildURL(modelName);
874
893
  // mock the ajax call, but return nothing, since the records will be
875
894
  // retrieved from the store where they were just loaded above
876
- this.stubEndpointForHttpRequest(url, responseJson, { type: 'GET' });
895
+ this.stubEndpointForHttpRequest(url, responseJson);
896
+ },
897
+ /**
898
+ Handling ajax GET for finding all records for a type of model with query parameters.
899
+
900
+ ```js
901
+ // First build json for the instances you want 'returned' in your query.
902
+ var usersJson = FactoryGuy.buildList('user', 2);
903
+
904
+ // Pass in the parameters you will search on ( in this case 'name' and 'age' ) as an array,
905
+ // in the second argument.
906
+ testHelper.handleFindQuery('user', ['name', 'age'], usersJson);
907
+
908
+ store.findQuery('user', {name:'Bob', age: 10}}).then(function(userInstances){
909
+ /// userInstances were created from the usersJson that you passed in
910
+ })
911
+ ```
912
+
913
+ The model instances will be created from the json you have passed in.
914
+
915
+ @param {String} modelName name of the mode like 'user' for User model type
916
+ @param {String} searchParams the parameters that will be queried
917
+ @param {Object} json fixture json used to build the resulting modelType instances
918
+ */
919
+ handleFindQuery: function (modelName, searchParams, json) {
920
+ var responseJson = {};
921
+ responseJson[modelName.pluralize()] = json;
922
+ var url = this.buildURL(modelName);
923
+ this.stubEndpointForHttpRequest(url, responseJson, {urlParams: searchParams});
877
924
  },
878
925
  /**
879
926
  Handling ajax POST ( create record ) for a model. You can mock