Skip to content

Commit

Permalink
Add failing test for emberjs#5167
Browse files Browse the repository at this point in the history
  • Loading branch information
bantic committed Sep 6, 2017
1 parent ffeb55a commit c7e7c51
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions tests/integration/records/unload-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -763,3 +763,52 @@ test('after unloading a record, the record can be saved again immediately', func
store.createRecord('person').save();
});
});

test("peekAll with unloadAll multiple times maintains consistent record counts", function(assert) {
let person;

run(() => {
person = env.store.createRecord('person');
});

function loadCar() {
run(() => {
env.store.push({
data: {
type: 'car',
id: '1'
}
});
});

run(() => {
env.store.peekAll('car').forEach(car => car.set('person', person));
});
}

loadCar();
assert.equal(env.store.peekAll('car').get('length'), 1, '1st load - peekAll returns 1 car');
assert.equal(env.store._internalModelsFor('car').length, 1, '1st load - 1 internal model for car');
assert.equal(person.get('cars.length'), 1, '1st load - person has 1 car');

run(() => {
env.store.unloadAll('car');
});

assert.equal(env.store.peekAll('car').get('length'), 0, 'first unload - peekAll returns 0 cars');
assert.equal(env.store._internalModelsFor('car').length, 0, 'first unload - 0 internal models for car');
assert.equal(person.get('cars.length'), 0, 'first unload - person has 0 cars');

loadCar();
assert.equal(env.store.peekAll('car').get('length'), 1, '2nd load - peekAll returns 1 car');
assert.equal(env.store._internalModelsFor('car').length, 1, '2nd load - 1 internal model for car');
assert.equal(person.get('cars.length'), 1, '2nd load - person has 1 car');

run(() => {
env.store.unloadAll('car');
});

assert.equal(env.store.peekAll('car').get('length'), 0, '2nd unload - peekAll returns 0 cars');
assert.equal(env.store._internalModelsFor('car').length, 0, '2nd unload - 0 internal models for car');
assert.equal(person.get('cars.length'), 0, '2nd unload - person has 0 cars');
});

0 comments on commit c7e7c51

Please sign in to comment.