diff options
Diffstat (limited to 'test/bun.js/bun-test/jest-hooks.test.ts')
-rw-r--r-- | test/bun.js/bun-test/jest-hooks.test.ts | 127 |
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); + }); + }); }); |