smack-my-jasmine-up

0.2.1 • Public • Published

License: WTFPL Deployment Status Tests Most recent version in NPM

What is this?

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.

How does it work?

  1. it and fit are overriden like in Pyrolistical's comment
  2. spec's name is assigned to a global variable
  3. assertion closure runs
  4. spec's name is unassigned

How do I use it?

Unit testing

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}!`)
}

Contribution guidelines

All I ask for is tests and documentation in form of JS docstrings. Feel free to submit a PR if you feel like it.

Changelog

0.2.0

  • renamed "definitions" to "descriptions", wops
  • moved changelog to the bottom of README

0.1.1

  • added support for fetching test definition names

0.1.0

  • upgraded for Jest ^29.6.1 and Jasmine ^5.0.2
  • JasmineSmacker.getCurrentSpec() is no longer supported

0.0.x

  • initial implementation, worked with Jest up to ^26.6.3

Readme

Keywords

Package Sidebar

Install

npm i smack-my-jasmine-up

Weekly Downloads

6

Version

0.2.1

License

WTFPL

Unpacked Size

12.8 kB

Total Files

16

Last publish

Collaborators

  • jezor