ember-data-factory-guy 0.7.0 → 0.7.1

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.
@@ -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
  })