You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[ x ] Checked that your issue hasn't already been filed by cross-referencing issues with the faq label
[ x ] Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
[ x ] 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
[ x ] Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with: node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend that you not install Mocha globally.
const{ AsyncLocalStorage }=require('async_hooks')constSTORAGE=newAsyncLocalStorage()describe('AsyncLocalStorage test',function(){it('with context',function(done){STORAGE.run(newMap(Object.entries({prop1: '1',prop2: '2'})),function(){// print: { prop1: 1, prop2: 2 }console.log(STORAGE.getStore())// done() is run on this context, so below test will still in this contextdone()})})it('without context',function(){// should print : undefined// but got : { prop1: 1, prop2: 2 }console.log(STORAGE.getStore())})})
Reproduces how often: [What percentage of the time does it reproduce?]
Versions
The output of mocha --version and node node_modules/.bin/mocha --version:
The output of node --version:
Your operating system
name and version:
architecture (32 or 64-bit):
Your shell (e.g., bash, zsh, PowerShell, cmd):
Your browser and version (if running browser tests):
Any third-party Mocha-related modules (and their versions):
Any code transpiler (e.g., TypeScript, CoffeeScript, Babel) being used (and its version):
Additional Information
The text was updated successfully, but these errors were encountered:
@wvq you are calling done() within STORAGE.run() context. That way you are continuing the async chain incl. calling the next test. The store is passed to the next test since it is part of the same context (async chain).
Call done() outside of STORAGE.run() and store will not be passed to the next test.
Async hooks is still an experimental feature, so my opinion may change in future. If you open an AsyncLocalStorage it is your responsibility to close it as well. It's not Mocha's task to accomplish this for you, nor does Mocha know where you would like to exit the context.
Prerequisites
faq
labelnode node_modules/.bin/mocha --version
(Local) andmocha --version
(Global). We recommend that you not install Mocha globally.Description
Steps to Reproduce
Expected behavior:
Actual behavior:
when use mocha with done():
Reproduces how often: [What percentage of the time does it reproduce?]
Versions
mocha --version
andnode node_modules/.bin/mocha --version
:node --version
:Additional Information
The text was updated successfully, but these errors were encountered: