All free skills / Other majors
jasmine-core 7.x
Use jasmine-core ^7.0.0 directly from Node: install its globals into a chosen object, inspect the core version, reset shared state, and define Jasmine specs, expectations, spies, and not-applicable specs. It is not the Jasmine CLI or test runner.
- For
jasmine-core@7.0.2- Verified
- 2026-09-08, 5 examples executed
- Skill package
@modootoday/pmcp-jasmine-core@7.0.1
Use this skill for free
No PMCP login or subscription is required. Download the original instructions, or install the content-only archive with your project's package manager.
Download SKILL.md · Download package archive
npm install --save-dev https://pmcp.build/skills/jasmine-core/7/package.tgz
PMCP discovers the installed package's instructions. Connect your runtime after installation.
Archive integrity
sha512-k7QXujNqpBxSDgG2cJGdp5KI6SV8gtaVy84t8WLkMkLNnF460FovNc+8+MfOSeuaqLUxgzK+2SupSEjaWCDyjw==Complete instructions
Verified against jasmine-core@7.0.2 on 2026-09-08. 5 of 5 examples executed.
jasmine-core 7.x
What this package is
jasmine-core is the Jasmine core/assets package. In Node, importing it returns an automatically-created core instance. The same instance is returned on every import. Node does not install globals automatically.
Node test discovery, test-file loading, configuration, and terminal execution belong to the separate jasmine package. Browser execution belongs to the browser tooling. This package alone is not a CLI runner.
Import and booting in 7.x
const jasmineCore = require('jasmine-core');
The module exposes the documented module members and the Jasmine globals. It does not expose boot, noGlobals, or jasmineRequire.
Install globals explicitly when a script needs the global Jasmine API:
jasmineCore.installGlobals();
installGlobals(dest) copies the Jasmine globals to dest; if dest is omitted, it uses globalThis. The exported globals include describe, it, expect, expectAsync, lifecycle hooks, spy helpers, pending/focused/disabled spec helpers, spec-property helpers, throwUnless, and notApplicable.
import assert from "node:assert/strict";
import jasmineCore from "jasmine-core";
const target: Record<string, unknown> = {};
jasmineCore.installGlobals(target);
for (const name of ["describe", "it", "expect", "spyOn", "notApplicable"]) {
assert.equal(typeof target[name], "function", `${name} should be installed`);
}
assert.equal(typeof (globalThis as any).describe, "undefined");
State and version
version() returns the jasmine-core version. reset() removes specs, suites, and reporters and restores default configuration. Use reset() between independent runs in the same process because imports share the automatically-created core instance.
import assert from "node:assert/strict";
import jasmineCore from "jasmine-core";
assert.equal(typeof jasmineCore.version(), "string");
assert.match(jasmineCore.version(), /^7\./);
assert.equal(typeof jasmineCore.reset, "function");
jasmineCore.reset();
Defining specs and expectations
After installing globals into a destination, use the installed functions from that destination rather than assuming Node globals exist. A spec has the form describe(description, specDefinitions), with it(description, testFunction, timeout) for examples and expect(actual) for expectations.
import assert from "node:assert/strict";
import jasmineCore from "jasmine-core";
const j: Record<string, any> = {};
jasmineCore.installGlobals(j);
assert.doesNotThrow(() => {
j.describe("a suite", () => {
j.it("passes", () => {
j.expect(true).toBe(true);
});
});
});
Defining a suite is not the same as executing it. Use the separate Jasmine runner/tooling when you need discovery, loading, configuration, reporters, and terminal execution.
Spies
The documented spy helpers are:
spyOn(obj, methodName), returning aSpy.spyOnAllFunctions(obj, includeNonEnumerable), returning the spied object.spyOnProperty(obj, propertyName, accessType), returning aSpy.
They are intended for use in Jasmine specs or another correctly initialized Jasmine environment.
import assert from "node:assert/strict";
import jasmineCore from "jasmine-core";
const j: Record<string, any> = {};
jasmineCore.installGlobals(j);
assert.equal(typeof j.spyOn, "function");
assert.equal(typeof j.spyOnAllFunctions, "function");
assert.equal(typeof j.spyOnProperty, "function");
const object = { greet() { return "hello"; } };
assert.doesNotThrow(() => {
j.describe("spies", () => {
j.it("can define a method spy", () => {
const spy = j.spyOn(object, "greet");
assert.equal(typeof spy, "object");
});
});
});
Pending versus not applicable
Jasmine 7 adds notApplicable(reason). It marks a spec as not applicable, which is distinct from pending. Reporters must handle the notApplicable status; results can include notApplicableReason.
import assert from "node:assert/strict";
import jasmineCore from "jasmine-core";
const j: Record<string, any> = {};
jasmineCore.installGlobals(j);
assert.equal(typeof j.notApplicable, "function");
assert.equal(typeof j.pending, "function");
assert.doesNotThrow(() => {
j.describe("environment-specific behavior", () => {
j.it("is not applicable here", () => {
j.notApplicable("This environment does not provide the required feature");
});
});
});
6.x shapes that are wrong in 7.x
Do not carry these older boot patterns forward:
// 6.x — not a 7.x Node API
const jasmineCore = require('jasmine-core');
jasmineCore.boot();
Use:
const jasmineCore = require('jasmine-core');
jasmineCore.installGlobals();
Likewise, noGlobals() was removed. In 7.x, simply importing the module is the no-automatic-globals behavior; call installGlobals() only when globals are wanted. To discard state, use installGlobals() as needed and then reset(); do not use the old boot(false) shape.
The 7.0 module redesign also removed most private APIs, stopped exposing jasmineRequire, and blocks monkey-patching. Do not depend on removed HtmlReporter, HtmlSpecFilter, or jsApiReporter surfaces.
Configuration and integration migration notes
The documented 7.x migration uses a runner's configureDefaultReporter API rather than the old configuration shape:
const runner = new Jasmine();
runner.configureDefaultReporter({
color: false,
alwaysListPendingSpecs: false
});
jsLoader: "require" is no longer supported; remove it or provide a custom loader. These runner configuration APIs are not APIs of the jasmine-core module itself.
Does not cover
This skill does not cover the separate jasmine CLI/runner, browser runner boot files, test discovery or file loading, reporter implementation, complete matcher/async-matcher behavior, the full environment API, custom loaders, or migration details not documented in the supplied research. It also does not cover Zone.js or Karma integration; the supplied 7.0 notes state that Zone.js cannot be used with 7.x and current karma-jasmine is incompatible.