aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/bun-test/jest-hooks.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'test/bun.js/bun-test/jest-hooks.test.ts')
-rw-r--r--test/bun.js/bun-test/jest-hooks.test.ts127
1 files changed, 127 insertions, 0 deletions
diff --git a/test/bun.js/bun-test/jest-hooks.test.ts b/test/bun.js/bun-test/jest-hooks.test.ts
index a75025041..4675acb07 100644
--- a/test/bun.js/bun-test/jest-hooks.test.ts
+++ b/test/bun.js/bun-test/jest-hooks.test.ts
@@ -73,4 +73,131 @@ describe("test jest hooks in bun-test", () => {
expect(animal).toEqual("lion");
});
});
+
+ describe("test async hooks", async () => {
+ let beforeAllCalled = 0;
+ let beforeEachCalled = 0;
+ let afterAllCalled = 0;
+ let afterEachCalled = 0;
+
+ beforeAll(async () => {
+ beforeAllCalled += await 1;
+ });
+
+ beforeEach(async () => {
+ beforeEachCalled += await 1;
+ });
+
+ afterAll(async () => {
+ afterAllCalled += await 1;
+ });
+
+ afterEach(async () => {
+ afterEachCalled += await 1;
+ });
+
+ it("should run after beforeAll()", () => {
+ expect(beforeAllCalled).toBe(1);
+ expect(beforeEachCalled).toBe(1);
+ expect(afterAllCalled).toBe(0);
+ expect(afterEachCalled).toBe(0);
+ });
+
+ it("should run after beforeEach()", () => {
+ expect(beforeAllCalled).toBe(1);
+ expect(beforeEachCalled).toBe(2);
+ expect(afterAllCalled).toBe(0);
+ expect(afterEachCalled).toBe(1);
+ });
+ });
+
+ describe("test done callback in hooks", () => {
+ let beforeAllCalled = 0;
+ let beforeEachCalled = 0;
+ let afterAllCalled = 0;
+ let afterEachCalled = 0;
+
+ beforeAll(done => {
+ setImmediate(() => {
+ beforeAllCalled++;
+ done();
+ });
+ });
+
+ beforeEach(done => {
+ setImmediate(() => {
+ beforeEachCalled++;
+ done();
+ });
+ });
+
+ afterAll(done => {
+ setImmediate(() => {
+ afterAllCalled++;
+ done();
+ });
+ });
+
+ afterEach(done => {
+ setImmediate(() => {
+ afterEachCalled++;
+ done();
+ });
+ });
+
+ it("should run after beforeAll()", () => {
+ expect(beforeAllCalled).toBe(1);
+ expect(beforeEachCalled).toBe(1);
+ expect(afterAllCalled).toBe(0);
+ expect(afterEachCalled).toBe(0);
+ });
+
+ it("should run after beforeEach()", () => {
+ expect(beforeAllCalled).toBe(1);
+ expect(beforeEachCalled).toBe(2);
+ expect(afterAllCalled).toBe(0);
+ expect(afterEachCalled).toBe(1);
+ });
+ });
+
+ describe("test async hooks with done()", () => {
+ let beforeAllCalled = 0;
+ let beforeEachCalled = 0;
+ let afterAllCalled = 0;
+ let afterEachCalled = 0;
+
+ beforeAll(async done => {
+ beforeAllCalled += await 1;
+ setTimeout(done, 1);
+ });
+
+ beforeEach(async done => {
+ beforeEachCalled += await 1;
+ setTimeout(done, 1);
+ });
+
+ afterAll(async done => {
+ afterAllCalled += await 1;
+ setTimeout(done, 1);
+ });
+
+ afterEach(async done => {
+ afterEachCalled += await 1;
+ setTimeout(done, 1);
+ });
+
+ it("should run after beforeAll()", () => {
+ expect(beforeAllCalled).toBe(1);
+ expect(beforeEachCalled).toBe(1);
+ expect(afterAllCalled).toBe(0);
+ expect(afterEachCalled).toBe(0);
+ });
+
+ it("should run after beforeEach()", () => {
+ expect(beforeAllCalled).toBe(1);
+ expect(beforeEachCalled).toBe(2);
+ expect(afterAllCalled).toBe(0);
+ expect(afterEachCalled).toBe(1);
+ });
+ });
});