Skip to content

Commit

Permalink
fix stuck test. requestPromise is already resolved in previous steps
Browse files Browse the repository at this point in the history
  • Loading branch information
snewcomer committed Sep 11, 2021
1 parent d81f022 commit 54ac421
Showing 1 changed file with 50 additions and 52 deletions.
102 changes: 50 additions & 52 deletions packages/-ember-data/tests/integration/store-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -132,58 +132,56 @@ module('integration/store - destroy', function (hooks) {
}
});

// testInDebug('find calls do not resolve when the store is destroyed', async function (assert) {
// assert.expect(2);

// let store = this.owner.lookup('service:store');
// let next;
// let nextPromise = new Promise((resolve) => (next = resolve));
// let TestAdapter = DS.Adapter.extend({
// findRecord() {
// next();
// nextPromise = new Promise((resolve) => {
// next = resolve;
// }).then(() => {
// return {
// data: { type: 'car', id: '1' },
// };
// });
// return nextPromise;
// },
// });

// this.owner.register('adapter:application', TestAdapter);

// // needed for LTS 2.16
// Ember.Test.adapter.exception = (e) => {
// throw e;
// };

// store.shouldTrackAsyncRequests = true;
// store.push = function () {
// assert('The test should have destroyed the store by now', store.isDestroyed);

// throw new Error("We shouldn't be pushing data into the store when it is destroyed");
// };
// let requestPromise = store.findRecord('car', '1');

// await nextPromise;

// assert.throws(() => {
// run(() => store.destroy());
// }, /Async Request leaks detected/);

// next();

// await nextPromise;

// // ensure we allow the internal store promises
// // to flush, potentially pushing data into the store
// await settled();
// assert.ok(true, 'we made it to the end');
// await requestPromise;
// assert.ok(false, 'we should never make it here');
// });
testInDebug('find calls do not resolve when the store is destroyed', async function (assert) {
assert.expect(2);

let store = this.owner.lookup('service:store');
let next;
let nextPromise = new Promise((resolve) => (next = resolve));
let TestAdapter = DS.Adapter.extend({
findRecord() {
next();
nextPromise = new Promise((resolve) => {
next = resolve;
}).then(() => {
return {
data: { type: 'car', id: '1' },
};
});
return nextPromise;
},
});

this.owner.register('adapter:application', TestAdapter);

// needed for LTS 2.16
Ember.Test.adapter.exception = (e) => {
throw e;
};

store.shouldTrackAsyncRequests = true;
store.push = function () {
assert('The test should have destroyed the store by now', store.isDestroyed);

throw new Error("We shouldn't be pushing data into the store when it is destroyed");
};
let requestPromise = store.findRecord('car', '1');

await nextPromise;

assert.throws(() => {
run(() => store.destroy());
}, /Async Request leaks detected/);

next();

await nextPromise;

// ensure we allow the internal store promises
// to flush, potentially pushing data into the store
await settled();
assert.ok(true, 'we made it to the end');
});

test('destroying the store correctly cleans everything up', async function (assert) {
let car, person;
Expand Down

0 comments on commit 54ac421

Please sign in to comment.