UNPKG

@sondr3/minitest

Version:

A low-feature, dependency-free and performant test runner inspired by Rust and Deno

110 lines 2.74 kB
// Disable this rule for this file to test erroneous usage of `test` /* eslint-disable @typescript-eslint/ban-ts-comment */ import { strict as assert } from "node:assert"; import { test } from "./index.js"; // yo, i heard you like tests, so i put tests in your tests test("ignore() works", () => { const it = test("internal", () => { // no-op }); it.ignore(); const runner = it.toTestRunner(); assert(runner.ignore); assert.equal(runner.name, "internal"); }); test("only() works", () => { const it = test("only internal", () => { // no-op }); it.only(); const runner = it.toTestRunner(); assert(!runner.ignore); assert(runner.only); assert.equal(runner.name, "only internal"); }); test("options work", () => { const it = test("options", () => { // no-op }, { only: false, ignore: true }).toTestRunner(); assert(!it.only); assert(it.ignore); }); test("object only", () => { const it = test({ name: "has name", fn: () => { /* */ }, }).toTestRunner(); assert.equal(it.name, "has name"); }); test("object without name throws", () => { assert.throws(() => { // @ts-ignore test({ fn: () => { /* */ }, }); }, { message: "Test must have a name", }); }); test("object without fn throws", () => { assert.throws(() => { // @ts-ignore test("help me"); }, { message: "Test is missing function", }); assert.throws(() => { // @ts-ignore test("help me", { nope: true }); }, { message: "Test is missing function", }); }); test("object with two fn throws", () => { assert.throws(() => { // @ts-ignore test({ name: "oh no", fn: () => { // no-op }, }, () => { // no-op }); }, { message: "Test has two test functions", }); }); test("malformed test", () => { assert.throws(() => { // @ts-ignore test(); }, { message: "Misformed test definition", }); }); test("test with object without both fns", () => { assert.throws(() => { // @ts-ignore test({ name: "nothing to see here" }); }, { message: "Test is missing function", }); }); test("anonymous function only", () => { const it = test(() => { /* */ }).toTestRunner(); assert.equal(it.name, "unnamed"); }); test("named function only", () => { const it = test(function thisHasAName() { /* */ }).toTestRunner(); assert.equal(it.name, "thisHasAName"); }); //# sourceMappingURL=test.test.js.map