@suchipi/jasmine-mini
v3.2.2
Published
(Most of) Jasmine's node API bundled as a standalone package for use in arbitrary JS engines
Downloads
15
Readme
@suchipi/jasmine-mini
Fork of jasmine's npm package that strips it down so it can run in non-browser, non-node environments.
It removes all the file and CLI-related parts of the jasmine node API, and also changes it so that it doesn't pollute the global with jasmine's public interface. The resulting bundle (bundle.js
) should run in any JavaScript environment with the following defined:
console.log
setTimeout
clearTimeout
setInterval
clearInteval
Usage
// Either require "@suchipi/jasmine-mini" with your CommonJS-compatible
// module loader, or run the file `bundle.js` found in the root of this repo.
// It's a UMD bundle that defines the global `Jasmine` when CJS/AMD aren't
// available.
const j = new Jasmine();
const {
describe,
it,
expect
// etc. stuff you would normally find on the global
} = j.getInterface();
describe("thing", () => {
it("works", () => {
expect(2 + 2).toBe(4);
});
});
j.execute();
Usage (Promise wrapper)
This package also has a Promise wrapper you can use instead of the node interface, which works like this:
const output = await Jasmine.run(({ describe, it, expect }) => {
describe("thing", () => {
it("works", () => {
expect(2 + 2).toBe(4);
});
});
});
If the tests fail, the Promise will be rejected, and the output will be in the Error message.
Using the TypeScript types
The TypeScript types for this package depend on the types for jasmine
. If you want the types to work, run:
$ npm install -D @types/[email protected]
Bumping jasmine-core
This bundle is compiled with [email protected]
. If you want to compile with a different version of jasmine-core
, follow these steps:
- Clone the repo
- Bump the jasmine-core dependency
- Run
npm install
- Run
npm run build
And the bundle.js
file will be updated.