deno/tests/specs/test/hooks/basic.ts
Bartek Iwańczuk 9fac6ccb8b
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
feat(test): Add setup and teardown APIs to Deno.test API (#30504)
This commit adds `Deno.test.beforeAll`, `Deno.test.beforeEach`,
`Deno.test.afterAll` and `Deno.test.afterEach` APIs. 

These APIs can be used to perform setup and teardown for test cases. 

The API is similar to the Vitest API: https://vitest.dev/api/#setup-and-teardown, 
with the main difference being that that `before*` hooks don't return a cleanup
function.
2025-09-02 16:27:04 +02:00

56 lines
896 B
TypeScript

const logs: string[] = [];
Deno.test.beforeAll(() => {
logs.push("beforeAll 1");
});
Deno.test.beforeAll(() => {
logs.push("beforeAll 2");
});
Deno.test.beforeAll(() => {
logs.push("beforeAll 3");
});
// Multiple beforeEach hooks
Deno.test.beforeEach(() => {
logs.push("beforeEach 1");
});
Deno.test.beforeEach(() => {
logs.push("beforeEach 2");
});
// Multiple afterEach hooks
Deno.test.afterEach(() => {
logs.push("afterEach 1");
});
Deno.test.afterEach(() => {
logs.push("afterEach 2");
});
// Multiple afterAll hooks
Deno.test.afterAll(() => {
logs.push("afterAll 1");
});
Deno.test.afterAll(() => {
logs.push("afterAll 2");
});
Deno.test("first test", () => {
logs.push("test 1");
});
Deno.test("second test", () => {
logs.push("test 2");
});
Deno.test("third test", () => {
logs.push("test 3");
});
globalThis.onunload = () => {
console.log(logs);
};