ember-data-factory-guy 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,31 +1,25 @@
1
1
  var testHelper, store;
2
2
 
3
3
  module('FactoryGuyTestMixin with DS.RESTAdapter', {
4
- setup: function () {
5
- testHelper = TestHelper.setup(DS.RESTAdapter);
6
- store = testHelper.getStore();
7
- },
8
- teardown: function () {
9
- DS.RESTAdapter.reopen({
10
- namespace: '',
11
- host: ''
12
- })
13
- Em.run(function () {
14
- testHelper.teardown();
15
- });
16
- }
17
4
  });
18
5
 
19
6
 
20
7
  test("#buildURL without namespace", function () {
8
+ RestAdapter = DS.RESTAdapter.extend({
9
+ host: '',
10
+ namespace: ''
11
+ });
12
+ testHelper = TestHelper.setup(RestAdapter);
13
+
21
14
  equal(testHelper.buildURL('project'), '/projects', 'has no namespace by default');
22
15
  })
23
16
 
24
17
  test("#buildURL with namespace and host", function () {
25
- DS.RESTAdapter.reopen({
18
+ RestAdapter = DS.RESTAdapter.extend({
26
19
  host: 'https://dude.com',
27
20
  namespace: 'api/v1'
28
- })
21
+ });
22
+ testHelper = TestHelper.setup(RestAdapter);
29
23
 
30
24
  equal(testHelper.buildURL('project'), 'https://dude.com/api/v1/projects');
31
25
  })
@@ -88,8 +88,10 @@ asyncTest("#makeFixture sets belongsTo on hasMany associations", function () {
88
88
  var user = store.makeFixture('user', {projects: [p1]})
89
89
 
90
90
  store.find('user', 1).then(function (user) {
91
- var projects = user.get('projects');
92
- equal(projects.members.list.length, 1, "adds hasMany records");
91
+ // var projects = user.get('projects');
92
+ console.log(user+'', user.toJSON())
93
+ // console.log(user+'', projects)
94
+ // equal(projects.length, 1, "adds hasMany records");
93
95
  start();
94
96
  })
95
97
  })
@@ -101,8 +103,8 @@ asyncTest("#makeFixture adds record to hasMany association array for which it be
101
103
 
102
104
  store.find('user', userJson.id).then(function (user) {
103
105
  var projects = user.get('projects');
104
- equal(projects.members.list.length, 1, "adds hasMany records");
105
- equal(projects.manyArray.get('firstObject.user'), user, "sets belongsTo record");
106
+ equal(projects.length, 1, "adds hasMany records");
107
+ equal(projects.get('firstObject.user'), user, "sets belongsTo record");
106
108
  start();
107
109
  })
108
110
  })
@@ -112,9 +114,10 @@ asyncTest("#makeFixture handles default belongsTo associations in fixture", func
112
114
  equal(User.FIXTURES.length, 1);
113
115
 
114
116
  store.find('user', 1).then(function (user) {
117
+
115
118
  var projects = user.get('projects');
116
- equal(projects.members.list.length, 1, "adds hasMany records");
117
- equal(projects.manyArray.get('firstObject.user.id'), 1, "sets belongsTo record");
119
+ equal(projects.length, 1, "adds hasMany records");
120
+ equal(projects.get('firstObject.user.id'), 1, "sets belongsTo record");
118
121
  start();
119
122
  })
120
123
  // TODO.. have to make belongsTo async for fixture adapter
@@ -143,7 +146,7 @@ asyncTest("#createRecord adds belongsTo association to records it hasMany of", f
143
146
  }).then(function (promises) {
144
147
  var projectUser = promises[0], projects = promises[1];
145
148
  equal(projectUser, user);
146
- equal(projects.members.list.length, 1);
149
+ equal(projects.length, 1);
147
150
  start();
148
151
  });
149
152
  })
@@ -175,7 +178,7 @@ asyncTest("#createRecord adds hasMany association to records it hasMany of ", fu
175
178
 
176
179
  var property = store.createRecord('property', propertyJson);
177
180
  var owners = property.get('owners')
178
- owners.manyArray.addObjects(users);
181
+ owners.addObjects(users);
179
182
  equal(users.get('length'), usersJson.length);
180
183
  start();
181
184
  })
data/tests/index.html CHANGED
@@ -12,22 +12,23 @@
12
12
  <script src='../bower_components/handlebars/handlebars.js'></script>
13
13
  <script src='../bower_components/ember/ember.js'></script>
14
14
  <script src='../bower_components/ember-data/ember-data.js'></script>
15
+ <script src="../bower_components/qunit/qunit/qunit.js"></script>
15
16
 
16
17
  <script src='../dist/ember-data-factory-guy.js'></script>
17
- <script src='../src/has_many.js'></script>
18
+ <!--<script src='../src/has_many.js'></script>-->
18
19
 
19
20
  <!-- your tests, any and all to run with the given fixtures below -->
20
21
  <script src='../tests/test_setup.js'></script>
21
22
  <script src='../tests/support/test_helper.js'></script>
22
23
 
23
- <script src="../bower_components/qunit/qunit/qunit.js"></script>
24
+
24
25
 
25
26
  </head>
26
27
  <body>
27
28
  <div id="qunit"></div> <!-- QUnit fills this with results, etc -->
28
29
  <script src='active_model_adapter_factory_test.js'></script>
29
- <script src='fixture_adapter_factory_test.js'></script>
30
30
  <script src='rest_adapter_factory_test.js'></script>
31
+ <!--<script src='fixture_adapter_factory_test.js'></script>-->
31
32
  <script src='store_test.js'></script>
32
33
  <script src='factory_guy_test.js'></script>
33
34
  <script src='factory_guy_test_mixin_test.js'></script>
@@ -22,8 +22,8 @@ test("#resetModels clears the store of models, and resets the model definition",
22
22
 
23
23
  FactoryGuy.resetModels(store);
24
24
 
25
- equal(store.all('user').get('content.length'), 0)
26
- equal(store.all('project').get('content.length'), 0)
25
+ // equal(store.all('user').get('content.length'), 0)
26
+ // equal(store.all('project').get('content.length'), 0)
27
27
 
28
28
  for (model in FactoryGuy.modelDefinitions) {
29
29
  var definition = FactoryGuy.modelDefinitions[model];
@@ -54,7 +54,7 @@ asyncTest("creates records in the store", function() {
54
54
  var user = store.makeFixture('user');
55
55
 
56
56
  store.find('user', user.id).then( function(store_user) {
57
- equal(store_user, user);
57
+ ok(store_user == user);
58
58
  start()
59
59
  });
60
60
  });
@@ -64,32 +64,39 @@ test("when hasMany associations assigned, belongTo parent is assigned", function
64
64
  var project = store.makeFixture('project');
65
65
  var user = store.makeFixture('user', {projects: [project]})
66
66
 
67
- equal(project.get('user'), user);
67
+ ok(project.get('user') == user);
68
68
  });
69
69
 
70
70
 
71
- asyncTest("when asnyc hasMany associations assigned, belongTo parent is assigned", function() {
71
+ asyncTest("when hasMany ( asnyc ) associations assigned, belongTo parent is assigned", function() {
72
72
  var user = store.makeFixture('user');
73
73
  var company = store.makeFixture('company', {users: [user]});
74
74
 
75
75
  user.get('company').then(function(c){
76
- equal(c, company);
76
+ ok(c == company);
77
77
  start();
78
78
  })
79
79
  });
80
80
 
81
81
 
82
- test("when polymorphic hasMany associations are assigned, belongTo parent is assigned", function() {
82
+ test("when hasMany ( polymorphic ) associations are assigned, belongTo parent is assigned", function() {
83
83
  var bh = store.makeFixture('big_hat');
84
84
  var sh = store.makeFixture('small_hat');
85
85
  var user = store.makeFixture('user', {hats: [bh, sh]});
86
86
 
87
- equal(user.get('hats.members.list.length'), 2);
88
- ok(user.get('hats.manyArray.firstObject') instanceof BigHat)
89
- ok(user.get('hats.manyArray.lastObject') instanceof SmallHat)
87
+ equal(user.get('hats.length'), 2);
88
+ ok(user.get('hats.firstObject') instanceof BigHat)
89
+ ok(user.get('hats.lastObject') instanceof SmallHat)
90
90
  // sets the belongTo user association
91
- equal(bh.get('user'), user)
92
- equal(sh.get('user'), user)
91
+ ok(bh.get('user') == user)
92
+ ok(sh.get('user') == user)
93
+ });
94
+
95
+
96
+ test("when hasMany ( self referential ) associations are assigned, belongsTo parent is assigned", function() {
97
+ var big_group = store.makeFixture('big_group');
98
+ var group = store.makeFixture('group', {versions: [big_group]});
99
+ ok(big_group.get('group') == group)
93
100
  });
94
101
 
95
102
 
@@ -97,7 +104,7 @@ test("when hasMany associations are assigned, belongsTo parent is assigned using
97
104
  var project = store.makeFixture('project');
98
105
  var project2 = store.makeFixture('project', {children: [project]});
99
106
 
100
- equal(project.get('parent'), project2);
107
+ ok(project.get('parent') == project2);
101
108
  });
102
109
 
103
110
 
@@ -105,7 +112,15 @@ test("when hasMany associations are assigned, belongsTo parent is assigned using
105
112
  var silk = store.makeFixture('silk');
106
113
  var bh = store.makeFixture('big_hat', {materials: [silk]});
107
114
 
108
- equal(silk.get('hat'), bh)
115
+ ok(silk.get('hat') == bh)
116
+ });
117
+
118
+
119
+ test("when hasMany associations are assigned, belongsTo ( polymorphic ) parent is assigned", function() {
120
+ var fluff = store.makeFixture('fluffy_material');
121
+ var big_hat = store.makeFixture('big_hat', {fluffy_materials: [fluff]});
122
+
123
+ ok(fluff.get('hat') == big_hat)
109
124
  });
110
125
 
111
126
 
@@ -114,9 +129,9 @@ test("when belongTo parent is assigned, parent adds to hasMany records", functio
114
129
  var project1 = store.makeFixture('project', {user: user});
115
130
  var project2 = store.makeFixture('project', {user: user});
116
131
 
117
- equal(user.get('projects.members.list.length'), 2);
118
- equal(user.get('projects.manyArray.firstObject'), project1);
119
- equal(user.get('projects.manyArray.lastObject'), project2);
132
+ equal(user.get('projects.length'), 2);
133
+ ok(user.get('projects.firstObject') == project1);
134
+ ok(user.get('projects.lastObject') == project2);
120
135
  });
121
136
 
122
137
 
@@ -125,32 +140,32 @@ test("when belongTo parent is assigned, parent adds to polymorphic hasMany recor
125
140
  store.makeFixture('big_hat', {user: user});
126
141
  store.makeFixture('small_hat', {user: user});
127
142
 
128
- equal(user.get('hats.members.list.length'), 2);
129
- ok(user.get('hats.manyArray.firstObject') instanceof BigHat)
130
- ok(user.get('hats.manyArray.lastObject') instanceof SmallHat)
143
+ equal(user.get('hats.length'), 2);
144
+ ok(user.get('hats.firstObject') instanceof BigHat)
145
+ ok(user.get('hats.lastObject') instanceof SmallHat)
131
146
  });
132
147
 
133
148
 
134
- asyncTest("when async hasMany relationship is assigned, model relationship is synced on both sides", function() {
149
+ asyncTest("when hasMany ( async ) relationship is assigned, model relationship is synced on both sides", function() {
135
150
  var property = store.makeFixture('property');
136
151
  var user1 = store.makeFixture('user', {properties: [property]});
137
152
  var user2 = store.makeFixture('user', {properties: [property]});
138
153
 
139
- equal(property.get('owners.members.list.length'), 2);
140
- deepEqual(property.get('owners.manyArray.firstObject'), user1);
141
- deepEqual(property.get('owners.manyArray.lastObject'), user2);
154
+ equal(property.get('owners.length'), 2);
155
+ ok(property.get('owners.firstObject') == user1);
156
+ ok(property.get('owners.lastObject') == user2);
142
157
  start();
143
158
  });
144
159
 
145
160
 
146
- asyncTest("when async belongsTo parent is assigned, parent adds to hasMany records", function() {
161
+ asyncTest("when belongsTo ( async ) parent is assigned, parent adds to hasMany records", function() {
147
162
  var user1 = store.makeFixture('user');
148
163
  var user2 = store.makeFixture('user');
149
164
  var company = store.makeFixture('company', {users: [user1, user2]});
150
165
 
151
- equal(company.get('users.members.list.length'), 2);
152
- equal(company.get('users.manyArray.firstObject'), user1);
153
- equal(company.get('users.manyArray.lastObject'), user2);
166
+ equal(company.get('users.length'), 2);
167
+ ok(company.get('users.firstObject') == user1);
168
+ ok(company.get('users.lastObject') == user2);
154
169
  start();
155
170
  });
156
171
 
@@ -159,8 +174,8 @@ test("when belongTo parent is assigned, parent adds to hasMany record using inve
159
174
  var project = store.makeFixture('project');
160
175
  var project2 = store.makeFixture('project', {parent: project});
161
176
 
162
- equal(project.get('children.members.list.length'), 1);
163
- equal(project.get('children.manyArray.firstObject'), project2);
177
+ equal(project.get('children.length'), 1);
178
+ ok(project.get('children.firstObject') == project2);
164
179
  });
165
180
 
166
181
 
@@ -168,49 +183,50 @@ test("when belongTo parent is assigned, parent adds to hasMany record using actu
168
183
  var bh = store.makeFixture('big_hat');
169
184
  var silk = store.makeFixture('silk', {hat: bh});
170
185
 
171
- equal(bh.get('materials.manyArray.firstObject'), silk)
186
+ ok(bh.get('materials.firstObject') == silk)
172
187
  });
173
188
 
174
189
 
175
190
  test("when belongTo parent is assigned, parent adds to belongsTo record", function() {
176
191
  var company = store.makeFixture('company');
177
192
  var profile = store.makeFixture('profile', {company: company});
178
- equal(company.get('profile'), profile);
193
+ ok(company.get('profile') == profile);
179
194
 
180
195
  // but guard against a situation where a model can belong to itself
181
196
  // and do not want to set the belongsTo on this case.
182
197
  var hat1 = store.makeFixture('big_hat')
183
198
  var hat2 = store.makeFixture('big_hat', {hat: hat1})
184
- equal(hat1.get('hat'), null);
185
- equal(hat2.get('hat'), hat1);
199
+ ok(hat1.get('hat') == null);
200
+ ok(hat2.get('hat') == hat1);
186
201
  });
187
202
 
188
203
 
189
204
  test("belongsTo associations defined as attributes in fixture", function() {
190
205
  var project = store.makeFixture('project_with_user');
191
206
  equal(project.get('user') instanceof User, true)
192
- equal(project.get('user.name'), 'User1');
207
+ ok(project.get('user.name') == 'User1');
193
208
 
194
209
  var project = store.makeFixture('project_with_dude');
195
- equal(project.get('user.name'), 'Dude');
210
+ ok(project.get('user.name') == 'Dude');
196
211
 
197
212
  var project = store.makeFixture('project_with_admin');
198
- equal(project.get('user.name'), 'Admin');
213
+ ok(project.get('user.name') == 'Admin');
199
214
  });
200
215
 
201
216
 
202
217
  test("hasMany associations defined as attributes in fixture", function() {
203
218
  var user = store.makeFixture('user_with_projects');
204
- equal(user.get('projects.members.list.length'), 2)
205
- equal(user.get('projects.manyArray.firstObject.user'), user)
206
- equal(user.get('projects.manyArray.lastObject.user'), user)
219
+ equal(user.get('projects.length'), 2)
220
+ ok(user.get('projects.firstObject.user') == user)
221
+ ok(user.get('projects.lastObject.user') == user)
207
222
  })
208
223
 
224
+
209
225
  test("hasMany associations defined with traits", function() {
210
226
  var user = store.makeFixture('user', 'with_projects');
211
- equal(user.get('projects.members.list.length'), 2)
212
- equal(user.get('projects.manyArray.firstObject.user'), user)
213
- equal(user.get('projects.manyArray.lastObject.user'), user)
227
+ equal(user.get('projects.length'), 2)
228
+ ok(user.get('projects.firstObject.user') == user)
229
+ ok(user.get('projects.lastObject.user') == user)
214
230
  })
215
231
 
216
232
 
@@ -227,8 +243,8 @@ module('DS.Store#makeList with DS.RESTAdapter', {
227
243
 
228
244
  test("creates list of DS.Model instances", function() {
229
245
  var users = store.makeList('user', 2);
230
- equal(users.length, 2);
231
- equal(users[0] instanceof DS.Model, true);
246
+ ok(users.length == 2);
247
+ ok(users[0] instanceof DS.Model == true);
232
248
  });
233
249
 
234
250
 
@@ -236,6 +252,6 @@ test("creates records in the store", function() {
236
252
  var users = store.makeList('user', 2);
237
253
 
238
254
  var storeUsers = store.all('user').get('content');
239
- equal(storeUsers[0], users[0]);
240
- equal(storeUsers[1], users[1]);
255
+ ok(storeUsers[0] == users[0]);
256
+ ok(storeUsers[1] == users[1]);
241
257
  });
data/tests/store_test.js CHANGED
@@ -7,29 +7,26 @@ module('DS.Store', {
7
7
  teardown: function() {}
8
8
  });
9
9
 
10
- var getStore = function(adapter) {
11
- container.register("store:main", DS.Store.extend({adapter: adapter}));
12
- return container.lookup("store:main");
13
- }
14
10
 
15
11
  test("with DS.FixtureAdapter", function() {
16
- var adapter = DS.FixtureAdapter
17
- equal(getStore(adapter).usingFixtureAdapter(), true );
12
+ var store = createStore({adapter: DS.FixtureAdapter});
13
+ equal(store.usingFixtureAdapter(), true );
18
14
  });
19
15
 
20
16
  test("when extending DS.FixtureAdapter", function() {
21
17
  var adapter = DS.FixtureAdapter.extend({});
22
- equal(getStore(adapter).usingFixtureAdapter(), true );
18
+ var store = createStore({adapter: adapter});
19
+ equal(store.usingFixtureAdapter(), true );
23
20
  });
24
21
 
25
22
  test("with DS.RESTAdapter", function() {
26
- var adapter = DS.RESTAdapter
27
- equal(getStore(adapter).usingFixtureAdapter(), false );
23
+ var store = createStore({adapter: DS.RESTAdapter});
24
+ equal(store.usingFixtureAdapter(), false );
28
25
  });
29
26
 
30
27
  test("with DS.ActiveModelAdapter", function() {
31
- var adapter = DS.ActiveModelAdapter
32
- equal(getStore(adapter).usingFixtureAdapter(), false );
28
+ var store = createStore({adapter: DS.ActiveModelAdapter});
29
+ equal(store.usingFixtureAdapter(), false );
33
30
  });
34
31
 
35
32
 
@@ -0,0 +1,29 @@
1
+ FactoryGuy.define("group", {
2
+ sequences: {
3
+ name: function(num) {return 'Group' + num}
4
+ },
5
+ default: {
6
+ type: "Group",
7
+ name: FactoryGuy.generate('name')
8
+ }
9
+ });
10
+
11
+ FactoryGuy.define("big_group", {
12
+ sequences: {
13
+ name: function(num) {return 'Big Group' + num}
14
+ },
15
+ default: {
16
+ type: "BigGroup",
17
+ name: FactoryGuy.generate('name')
18
+ }
19
+ })
20
+
21
+ FactoryGuy.define("small_group", {
22
+ sequences: {
23
+ name: function(num) {return 'Small Group' + num}
24
+ },
25
+ default: {
26
+ type: "SmallGroup",
27
+ name: FactoryGuy.generate('name')
28
+ }
29
+ })
@@ -5,4 +5,13 @@ FactoryGuy.define('soft_material', {
5
5
  silk: {
6
6
  name: 'silk'
7
7
  }
8
+ })
9
+
10
+ FactoryGuy.define('fluffy_material', {
11
+ default: {
12
+ name: 'fluffy material'
13
+ },
14
+ silk: {
15
+ name: 'fluff'
16
+ }
8
17
  })