This is a very hacky solution to this issue on Jasmine's GitHub.
Jasmine's devs did a tremendous job making it difficult to get any information about the current test execution environment. In my opinion, this is a design flaw.
Please use it with care and good intentions.
it
andfit
are overriden like in Pyrolistical's comment- spec's name is assigned to a global variable
- assertion closure runs
- spec's name is unassigned
First, add the project as a test dependency in package.json
file (see most recent version in npm):
"devDependencies": {
"smack-my-jasmine-up": "^version"
...
}
Next, import JasmineSmacker
in your test file (or any class that runs within a test):
const JasmineSmacker = require('smack-my-jasmine-up');
Finally, fetch the test case's name and use it for whatever reason:
const currentTestName = JasmineSmacker.getCurrentTestName();
if (currentTestName !== undefined) {
console.log(`cool, we are within ${currentTestName}!`)
}
All I ask for is tests and documentation in form of JS docstrings. Feel free to submit a PR if you feel like it.
- renamed "definitions" to "descriptions", wops
- moved changelog to the bottom of README
- added support for fetching test
definitionnames
- upgraded for Jest ^29.6.1 and Jasmine ^5.0.2
JasmineSmacker.getCurrentSpec()
is no longer supported
- initial implementation, worked with Jest up to ^26.6.3