test/helpers/live-query-fixture.cjs
Rama main · réplica de lectura del repositorio original.
// A provider-free query stays current until the test explicitly retires it.
function create() {
var closed = false, waiters = [];
function close() {
closed = true;
waiters.splice(0).forEach(function (resolve) { resolve({ done: true }); });
}
return { close: close, abort: close, pushMessage: function () { return !closed; },
[Symbol.asyncIterator]: function () { return { next: function () {
return closed ? Promise.resolve({ done: true }) : new Promise(function (resolve) { waiters.push(resolve); });
} }; } };
}
async function retire(session) {
var handle = session.queryInstance;
if (!handle) return;
await handle.close();
var deadline = Date.now() + 2000;
while (session.queryInstance === handle) {
if (Date.now() > deadline) throw new Error("Fixture query did not retire");
await new Promise(function (resolve) { setImmediate(resolve); });
}
}
module.exports = { create: create, retire: retire };