node-execution-context icon indicating copy to clipboard operation
node-execution-context copied to clipboard

Node.js AsyncHooks support: BeforeEach increase asyncId for each test

Open hadarbmdev opened this issue 5 years ago • 0 comments

🐛 Bug Report

When importing (only!) the package, and trying to set context based on asyncHooks.executionAsyncId(); in BeforeEach the returned executionId is X, and in the upcoming test (right after the beforeEach), the returned asyncHooks.executionAsyncId(); is X+1.

this is the resolution for the issue why getExecutionContext() returns undefined, although setExecutionContext({test:1}) was called in beforeEach, meaning before the test.

To Reproduce

uncomment the line: const contextProvider = require('@mondaydotcomorg/node-execution-context'); `const asyncHooks = require('async_hooks'); const contextProvider = require('@mondaydotcomorg/node-execution-context');

let asyncIdBefore: number; describe('AsyncHook test', () => {

beforeEach(() => {
    asyncIdBefore = asyncHooks.executionAsyncId();
    console.log(`asyncIdBefore: ${asyncIdBefore}`);
    // contextProvider.createExecutionContext({test: 1});

});

test('test if asynchook was increased', () => {
   const asyncId = asyncHooks.executionAsyncId();
   console.log(`asyncId: ${asyncId}`);
   expect(asyncId).toEqual(asyncIdBefore);
  // expect(contextProvider.getExecutionContext()).toMatchObject({test: 1});
});

}); `

Expected behavior

jest BeforeEach and the test should share the same context create with setExecutionContext in beforeEach.

envinfo

Node version: v10.15.3 "@mondaydotcomorg/node-execution-context": "^1.0.4",

hadarbmdev avatar May 10 '20 07:05 hadarbmdev