23 lines
522 B
JavaScript
23 lines
522 B
JavaScript
import { test, vi } from "vitest";
|
|
export function testWithEffect(name, fn) {
|
|
test(name, () => effectRootScope(fn));
|
|
}
|
|
export function effectRootScope(fn) {
|
|
let promise;
|
|
const cleanup = $effect.root(() => {
|
|
promise = fn();
|
|
});
|
|
if (promise instanceof Promise) {
|
|
return promise.finally(cleanup);
|
|
}
|
|
else {
|
|
cleanup();
|
|
}
|
|
}
|
|
export function vitestSetTimeoutWrapper(fn, timeout) {
|
|
setTimeout(() => {
|
|
fn();
|
|
}, timeout);
|
|
vi.advanceTimersByTime(timeout);
|
|
}
|