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
// 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();
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.
The TypeScript types for this package depend on the types for jasmine
. If you want the types to work, run:
$ npm install -D @types/jasmine@3.2.0
This bundle is compiled with jasmine-core@3.2.1
. 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.