Skip to content

Commit 42acdad

Browse files
committed
Added test for cyclic dependencies
1 parent cc9b06a commit 42acdad

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

test/integration/datastore/sync_methods/inject.test.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,4 +214,58 @@ describe('DS.inject(resourceName, attrs[, options])', function () {
214214

215215
assert.equal(2, DS.get('user', 1).comments.length);
216216
});
217+
it('should inject cyclic dependencies', function () {
218+
DS.defineResource({
219+
name: 'foo',
220+
relations: {
221+
hasMany: {
222+
foo: {
223+
localField: 'children',
224+
foreignKey: 'parentId'
225+
}
226+
}
227+
}
228+
});
229+
var injected = DS.inject('foo', [{
230+
id: 1,
231+
children: [
232+
{
233+
id: 2,
234+
parentId: 1,
235+
children: [
236+
{
237+
id: 4,
238+
parentId: 2
239+
},
240+
{
241+
id: 5,
242+
parentId: 2
243+
}
244+
]
245+
},
246+
{
247+
id: 3,
248+
parentId: 1,
249+
children: [
250+
{
251+
id: 6,
252+
parentId: 3
253+
},
254+
{
255+
id: 7,
256+
parentId: 3
257+
}
258+
]
259+
}
260+
]
261+
}]);
262+
263+
assert.equal(injected[0].id, 1);
264+
assert.equal(injected[0].children[0].id, 2);
265+
assert.equal(injected[0].children[1].id, 3);
266+
assert.equal(injected[0].children[0].children[0].id, 4);
267+
assert.equal(injected[0].children[0].children[1].id, 5);
268+
assert.equal(injected[0].children[1].children[0].id, 6);
269+
assert.equal(injected[0].children[1].children[1].id, 7);
270+
});
217271
});

0 commit comments

Comments
 (0)