jest-async
Simplify Jest parallel testing.
This allows you to write fast test code.
The return value of each test can be received by Promise.
You can synchronize by waiting for them with "await".
Example
import { testAsync, beforeAllAsync, afterAllAsync } from "jest-async";
const sleep = (value: number) =>
new Promise((resolve) => setTimeout(resolve, value));
describe("Test", () => {
const initWait = beforeAllAsync(async () => {
await sleep(1000);
console.log("beforeAll");
});
const A = testAsync("A", async () => {
await sleep(1000);
await initWait;
console.log("A");
return 100;
});
const B = testAsync("B", async () => {
await sleep(4000);
await initWait;
console.log("B");
return 200;
});
testAsync("C", async () => {
await sleep(3000);
const value = (await A) + (await B);
console.log("C", value);
expect(value).toBe(300);
});
testAsync("D", async () => {
await sleep(2000);
console.log("D");
});
afterAllAsync(async () => {
console.log("afterAll");
});
});
import { beforeAllAsync, testSync, afterAllAsync } from "jest-async";
const sleep = (value: number) =>
new Promise((resolve) => setTimeout(resolve, value));
describe("Test2", () => {
const initWait = beforeAllAsync(async () => {
await sleep(1000);
console.log("beforeAll2");
});
const A = testSync("A2", async () => {
await sleep(1000);
await initWait;
console.log("A2");
return 100;
});
const B = testSync("B2", async () => {
await sleep(4000);
await initWait;
console.log("B2");
return 200;
});
testSync("C2", async () => {
await sleep(3000);
const value = (await A) + (await B);
console.log("C2", value);
expect(value).toBe(300);
});
testSync("D2", async () => {
await sleep(2000);
console.log("D2");
});
afterAllAsync(async () => {
console.log("afterAll2");
});
});