aboutsummaryrefslogtreecommitdiff
path: root/test/js/node/async_hooks/EventEmitterAsyncResource.test.ts
blob: bbcadf9bfd83361b9cf542063c9d075390b62052 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import EventEmitter, { EventEmitterAsyncResource } from "events";
import { AsyncLocalStorage } from "async_hooks";
import { describe, test, expect } from "bun:test";

describe("EventEmitterAsyncResource", () => {
  test("is an EventEmitter", () => {
    const ee = new EventEmitterAsyncResource("test");
    expect(ee).toBeInstanceOf(EventEmitterAsyncResource);
    expect(ee).toBeInstanceOf(EventEmitter);
  });
  test("has context tracking", () => {
    let ee;
    const asl = new AsyncLocalStorage();
    asl.run(123, () => {
      ee = new EventEmitterAsyncResource("test");
    });

    let val;
    ee.on("test", () => {
      val = asl.getStore();
    });

    asl.run(456, () => {
      ee.emit("test");
    });

    expect(val).toBe(123);
  });
});