ember-data-factory-guy 0.7.3 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,10 @@
1
1
  FactoryGuy.define('user', {
2
+ sequences: {
3
+ name: function(num) {return 'User' + num}
4
+ },
2
5
  // default values for 'user' attributes
3
6
  default: {
4
- name: 'User1'
7
+ name: FactoryGuy.generate('name')
5
8
  },
6
9
  // named 'user' type with custom attributes
7
10
  admin: {
@@ -16,36 +19,47 @@ FactoryGuy.define('user', {
16
19
  },
17
20
  with_hats: {
18
21
  hats: FactoryGuy.hasMany('big_hat', 2)
22
+ },
23
+ with_hats_belonging_to_user: {
24
+ hats: FactoryGuy.hasMany('big_hat', 2, 'belonging_to_user')
25
+ },
26
+ with_hats_belonging_to_outfit: {
27
+ hats: FactoryGuy.hasMany('big_hat', 2, 'belonging_to_outfit')
19
28
  }
20
29
  }
21
30
  });
22
31
 
32
+ Progress = DS.Model.extend({});
33
+ Unit = DS.Model.extend({
34
+ lesson: DS.belongsTo('lesson')
35
+ })
36
+
37
+ Lesson = DS.Model.extend({
38
+ steps: DS.hasMany('step'),
39
+ progress: DS.belongsTo('progress')
40
+ })
23
41
 
24
- //Unit = DS.Model.extend({
25
- // lesson: DS.belongsTo('lesson')
26
- //})
27
- //
28
- //Lesson = DS.Model.extend({
29
- // steps: DS.hasMany('step')
30
- //})
31
- //
32
- //Step = DS.Model.extend({
33
- // lesson: DS.belongsTo ('lesson')
34
- //})
35
- //
36
- //
37
- //FactoryGuy.define('unit', {
38
- // default: {
39
- // lesson: FactoryGuy.belongsTo('lesson')
40
- // }
41
- //})
42
- //
43
- //FactoryGuy.define('lesson', {
44
- // default: {
45
- // steps: FactoryGuy.hasMany('step', 2)
46
- // }
47
- //})
48
- //
49
- //FactoryGuy.define('step', {
50
- // default: {}
51
- //})
42
+ Step = DS.Model.extend({
43
+ progress: DS.belongsTo('progress')
44
+ })
45
+
46
+
47
+ FactoryGuy.define( 'progress', {
48
+ default: {}
49
+ });
50
+ FactoryGuy.define( 'step', {
51
+ default: {
52
+ progress: FactoryGuy.belongsTo('progress')
53
+ }
54
+ });
55
+ FactoryGuy.define( 'lesson', {
56
+ default: {
57
+ steps: FactoryGuy.hasMany('step', 2),
58
+ progress: FactoryGuy.belongsTo('progress')
59
+ }
60
+ });
61
+ FactoryGuy.define( 'unit', {
62
+ default: {
63
+ lesson: FactoryGuy.belongsTo('lesson')
64
+ }
65
+ });
@@ -1,6 +1,7 @@
1
1
  Hat = DS.Model.extend({
2
2
  type: DS.attr('string'),
3
3
  user: DS.belongsTo('user'),
4
+ outfit: DS.belongsTo('outfit'),
4
5
  hat: DS.belongsTo('hat', {inverse: 'hats', polymorphic: true}),
5
6
  hats: DS.hasMany('hat', {inverse: 'hat', polymorphic: true}),
6
7
  fluffy_materials: DS.hasMany('fluffy_materials')
@@ -0,0 +1,4 @@
1
+ Outfit = DS.Model.extend({
2
+ name: DS.attr('string'),
3
+ hats: DS.hasMany('hat', {polymorphic: true})
4
+ })
@@ -5,3 +5,4 @@ User = DS.Model.extend({
5
5
  projects: DS.hasMany('project'),
6
6
  hats: DS.hasMany('hat', {polymorphic: true})
7
7
  });
8
+
@@ -15,7 +15,9 @@ TestHelper = Ember.Object.createWithMixins(FactoryGuyTestMixin,{
15
15
  small_hat: SmallHat,
16
16
  big_hat: BigHat,
17
17
  soft_material: SoftMaterial,
18
+ softMaterial: SoftMaterial,
18
19
  fluffy_material: FluffyMaterial,
20
+ fluffyMaterial: FluffyMaterial,
19
21
  profile: Profile,
20
22
  user: User,
21
23
  company: Company,
@@ -24,7 +26,8 @@ TestHelper = Ember.Object.createWithMixins(FactoryGuyTestMixin,{
24
26
  project: Project,
25
27
  group: Group,
26
28
  big_group: BigGroup,
27
- small_group: SmallGroup
29
+ small_group: SmallGroup,
30
+ outfit: Outfit
28
31
  })
29
32
 
30
33
  if (adapter instanceof DS.FixtureAdapter) {
@@ -36,52 +39,7 @@ TestHelper = Ember.Object.createWithMixins(FactoryGuyTestMixin,{
36
39
  });
37
40
 
38
41
 
39
- /* globals ENV, QUnit */
40
-
41
42
  (function (){
42
- window.Ember = window.Ember || {};
43
-
44
- Ember.config = {};
45
- Ember.testing = true;
46
- Ember.LOG_VERSION = false;
47
-
48
- window.ENV = { TESTING: true, LOG_VERSION: false };
49
-
50
- var extendPrototypes = QUnit.urlParams.extendprototypes;
51
- ENV['EXTEND_PROTOTYPES'] = !!extendPrototypes;
52
-
53
- window.async = function(callback, timeout) {
54
- stop();
55
-
56
- timeout = setTimeout(function() {
57
- start();
58
- ok(false, "Timeout was reached");
59
- }, timeout || 200);
60
-
61
- return function() {
62
- clearTimeout(timeout);
63
-
64
- start();
65
-
66
- var args = arguments;
67
- return Ember.run(function() {
68
- return callback.apply(this, args);
69
- });
70
- };
71
- };
72
-
73
- window.asyncEqual = function(a, b, message) {
74
- Ember.RSVP.all([ Ember.RSVP.resolve(a), Ember.RSVP.resolve(b) ]).then(async(function(array) {
75
- /*globals QUnit*/
76
- QUnit.push(array[0] === array[1], array[0], array[1], message);
77
- }));
78
- };
79
-
80
- window.invokeAsync = function(callback, timeout) {
81
- timeout = timeout || 1;
82
-
83
- setTimeout(async(callback, timeout+100), timeout);
84
- };
85
43
 
86
44
  window.setupStore = function(options) {
87
45
  var env = {};
@@ -108,9 +66,7 @@ TestHelper = Ember.Object.createWithMixins(FactoryGuyTestMixin,{
108
66
  }
109
67
 
110
68
  container.register('serializer:-default', serializer);
111
-
112
69
  container.register('transform:string', DS.StringTransform);
113
-
114
70
  container.injection('serializer', 'store', 'store:main');
115
71
 
116
72
  env.store = container.lookup('store:main');
@@ -123,148 +79,4 @@ TestHelper = Ember.Object.createWithMixins(FactoryGuyTestMixin,{
123
79
  return setupStore(options).store;
124
80
  };
125
81
 
126
- var async = window.async = function(callback, timeout) {
127
- stop();
128
-
129
- timeout = setTimeout(function() {
130
- start();
131
- ok(false, "Timeout was reached");
132
- }, timeout || 200);
133
-
134
- return function() {
135
- clearTimeout(timeout);
136
-
137
- start();
138
-
139
- var args = arguments;
140
- return Ember.run(function() {
141
- return callback.apply(this, args);
142
- });
143
- };
144
- };
145
-
146
- var syncForTest = window.syncForTest = function(fn) {
147
- var callSuper;
148
-
149
- if (typeof fn !== "function") { callSuper = true; }
150
-
151
- return function() {
152
- var override = false, ret;
153
-
154
- if (Ember.run && !Ember.run.currentRunLoop) {
155
- Ember.run.begin();
156
- override = true;
157
- }
158
-
159
- try {
160
- if (callSuper) {
161
- ret = this._super.apply(this, arguments);
162
- } else {
163
- ret = fn.apply(this, arguments);
164
- }
165
- } finally {
166
- if (override) {
167
- Ember.run.end();
168
- }
169
- }
170
-
171
- return ret;
172
- };
173
- };
174
-
175
- Ember.config.overrideAccessors = function() {
176
- Ember.set = syncForTest(Ember.set);
177
- Ember.get = syncForTest(Ember.get);
178
- };
179
-
180
- Ember.config.overrideClassMixin = function(ClassMixin) {
181
- ClassMixin.reopen({
182
- create: syncForTest()
183
- });
184
- };
185
-
186
- Ember.config.overridePrototypeMixin = function(PrototypeMixin) {
187
- PrototypeMixin.reopen({
188
- destroy: syncForTest()
189
- });
190
- };
191
-
192
- QUnit.begin(function(){
193
- Ember.RSVP.configure('onerror', function(reason) {
194
- // only print error messages if they're exceptions;
195
- // otherwise, let a future turn of the event loop
196
- // handle the error.
197
- if (reason && reason instanceof Error) {
198
- Ember.Logger.log(reason, reason.stack);
199
- throw reason;
200
- }
201
- });
202
-
203
- Ember.RSVP.resolve = syncForTest(Ember.RSVP.resolve);
204
-
205
- Ember.View.reopen({
206
- _insertElementLater: syncForTest()
207
- });
208
-
209
- DS.Store.reopen({
210
- save: syncForTest(),
211
- createRecord: syncForTest(),
212
- deleteRecord: syncForTest(),
213
- push: syncForTest(),
214
- pushMany: syncForTest(),
215
- filter: syncForTest(),
216
- find: syncForTest(),
217
- findMany: syncForTest(),
218
- findByIds: syncForTest(),
219
- didSaveRecord: syncForTest(),
220
- didSaveRecords: syncForTest(),
221
- didUpdateAttribute: syncForTest(),
222
- didUpdateAttributes: syncForTest(),
223
- didUpdateRelationship: syncForTest(),
224
- didUpdateRelationships: syncForTest(),
225
- scheduleFetch: syncForTest(),
226
- scheduleFetchMany: syncForTest()
227
- });
228
-
229
- DS.Model.reopen({
230
- save: syncForTest(),
231
- reload: syncForTest(),
232
- deleteRecord: syncForTest(),
233
- dataDidChange: Ember.observer(syncForTest(), 'data'),
234
- updateRecordArraysLater: syncForTest(),
235
- updateRecordArrays: syncForTest()
236
- });
237
-
238
- DS.Errors.reopen({
239
- add: syncForTest(),
240
- remove: syncForTest(),
241
- clear: syncForTest()
242
- });
243
-
244
- DS.Relationship.prototype.addRecord = syncForTest(DS.Relationship.prototype.addRecord);
245
- DS.Relationship.prototype.removeRecord = syncForTest(DS.Relationship.prototype.removeRecord);
246
- DS.Relationship.prototype.removeRecordFromInverse = syncForTest(DS.Relationship.prototype.removeRecordFromInverse);
247
- DS.Relationship.prototype.removeRecordFromOwn = syncForTest(DS.Relationship.prototype.removeRecordFromOwn);
248
-
249
- var transforms = {
250
- 'boolean': DS.BooleanTransform.create(),
251
- 'date': DS.DateTransform.create(),
252
- 'number': DS.NumberTransform.create(),
253
- 'string': DS.StringTransform.create()
254
- };
255
-
256
- // Prevent all tests involving serialization to require a container
257
- DS.JSONSerializer.reopen({
258
- transformFor: function(attributeType) {
259
- return this._super(attributeType, true) || transforms[attributeType];
260
- }
261
- });
262
-
263
- Ember.RSVP.Promise.prototype.then = syncForTest(Ember.RSVP.Promise.prototype.then);
264
- });
265
-
266
- // Generate the jQuery expando on window ahead of time
267
- // to make the QUnit global check run clean
268
- jQuery(window).data('testing', true);
269
-
270
82
  })();
data/tests/test_setup.js CHANGED
@@ -52,6 +52,14 @@ FactoryGuy.define('hat', {
52
52
  },
53
53
  big_hat: {
54
54
  type: 'BigHat'
55
+ },
56
+ traits: {
57
+ belonging_to_user: {
58
+ user: FactoryGuy.belongsTo('user')
59
+ },
60
+ belonging_to_outfit: {
61
+ outfit: FactoryGuy.belongsTo('outfit')
62
+ }
55
63
  }
56
64
  })
57
65
  FactoryGuy.define('soft_material', {
@@ -71,9 +79,23 @@ FactoryGuy.define('fluffy_material', {
71
79
  name: 'fluff'
72
80
  }
73
81
  })
82
+ FactoryGuy.define("outfit", {
83
+ sequences: {
84
+ name: function(num) {return 'Outfit' + num}
85
+ },
86
+ default: {
87
+ name: FactoryGuy.generate('name')
88
+ }
89
+ });
90
+
74
91
  FactoryGuy.define('profile', {
75
92
  default: {
76
93
  description: 'Text goes here'
94
+ },
95
+ traits: {
96
+ goofy_description: {
97
+ description: 'goofy'
98
+ }
77
99
  }
78
100
  })
79
101
  FactoryGuy.define("project", {
@@ -85,6 +107,8 @@ FactoryGuy.define("project", {
85
107
  with_title_sequence: { title: FactoryGuy.generate('title') },
86
108
  with_user: { user: {} },
87
109
  with_user_having_hats: { user: FactoryGuy.belongsTo('user', 'with_hats') },
110
+ with_user_having_hats_belonging_to_user: { user: FactoryGuy.belongsTo('user', 'with_hats_belonging_to_user') },
111
+ with_user_having_hats_belonging_to_outfit: { user: FactoryGuy.belongsTo('user', 'with_hats_belonging_to_outfit') },
88
112
  with_dude: { user: {name: 'Dude'} },
89
113
  with_admin: { user: FactoryGuy.belongsTo('admin') }
90
114
  },
@@ -126,9 +150,12 @@ FactoryGuy.define('property', {
126
150
  }
127
151
  })
128
152
  FactoryGuy.define('user', {
153
+ sequences: {
154
+ name: function(num) {return 'User' + num}
155
+ },
129
156
  // default values for 'user' attributes
130
157
  default: {
131
- name: 'User1'
158
+ name: FactoryGuy.generate('name')
132
159
  },
133
160
  // named 'user' type with custom attributes
134
161
  admin: {
@@ -143,39 +170,50 @@ FactoryGuy.define('user', {
143
170
  },
144
171
  with_hats: {
145
172
  hats: FactoryGuy.hasMany('big_hat', 2)
173
+ },
174
+ with_hats_belonging_to_user: {
175
+ hats: FactoryGuy.hasMany('big_hat', 2, 'belonging_to_user')
176
+ },
177
+ with_hats_belonging_to_outfit: {
178
+ hats: FactoryGuy.hasMany('big_hat', 2, 'belonging_to_outfit')
146
179
  }
147
180
  }
148
181
  });
149
182
 
183
+ Progress = DS.Model.extend({});
184
+ Unit = DS.Model.extend({
185
+ lesson: DS.belongsTo('lesson')
186
+ })
150
187
 
151
- //Unit = DS.Model.extend({
152
- // lesson: DS.belongsTo('lesson')
153
- //})
154
- //
155
- //Lesson = DS.Model.extend({
156
- // steps: DS.hasMany('step')
157
- //})
158
- //
159
- //Step = DS.Model.extend({
160
- // lesson: DS.belongsTo ('lesson')
161
- //})
162
- //
163
- //
164
- //FactoryGuy.define('unit', {
165
- // default: {
166
- // lesson: FactoryGuy.belongsTo('lesson')
167
- // }
168
- //})
169
- //
170
- //FactoryGuy.define('lesson', {
171
- // default: {
172
- // steps: FactoryGuy.hasMany('step', 2)
173
- // }
174
- //})
175
- //
176
- //FactoryGuy.define('step', {
177
- // default: {}
178
- //})
188
+ Lesson = DS.Model.extend({
189
+ steps: DS.hasMany('step'),
190
+ progress: DS.belongsTo('progress')
191
+ })
192
+
193
+ Step = DS.Model.extend({
194
+ progress: DS.belongsTo('progress')
195
+ })
196
+
197
+
198
+ FactoryGuy.define( 'progress', {
199
+ default: {}
200
+ });
201
+ FactoryGuy.define( 'step', {
202
+ default: {
203
+ progress: FactoryGuy.belongsTo('progress')
204
+ }
205
+ });
206
+ FactoryGuy.define( 'lesson', {
207
+ default: {
208
+ steps: FactoryGuy.hasMany('step', 2),
209
+ progress: FactoryGuy.belongsTo('progress')
210
+ }
211
+ });
212
+ FactoryGuy.define( 'unit', {
213
+ default: {
214
+ lesson: FactoryGuy.belongsTo('lesson')
215
+ }
216
+ });
179
217
 
180
218
  Company = DS.Model.extend({
181
219
  name: DS.attr('string'),
@@ -205,6 +243,7 @@ SmallGroup = Group.extend({
205
243
  Hat = DS.Model.extend({
206
244
  type: DS.attr('string'),
207
245
  user: DS.belongsTo('user'),
246
+ outfit: DS.belongsTo('outfit'),
208
247
  hat: DS.belongsTo('hat', {inverse: 'hats', polymorphic: true}),
209
248
  hats: DS.hasMany('hat', {inverse: 'hat', polymorphic: true}),
210
249
  fluffy_materials: DS.hasMany('fluffy_materials')
@@ -227,6 +266,11 @@ FluffyMaterial = DS.Model.extend({
227
266
  hat: DS.belongsTo('hat', {polymorphic: true})
228
267
  })
229
268
 
269
+ Outfit = DS.Model.extend({
270
+ name: DS.attr('string'),
271
+ hats: DS.hasMany('hat', {polymorphic: true})
272
+ })
273
+
230
274
  Profile = DS.Model.extend({
231
275
  description: DS.attr('string'),
232
276
  camelCaseDescription: DS.attr('string'),
@@ -259,6 +303,7 @@ User = DS.Model.extend({
259
303
  hats: DS.hasMany('hat', {polymorphic: true})
260
304
  });
261
305
 
306
+
262
307
  /*!
263
308
  * MockJax - jQuery Plugin to Mock Ajax requests
264
309
  *