diff --git a/package-lock.json b/package-lock.json index bc61ff47..b8ce3de7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,12 +29,10 @@ "eslint-plugin-import": "^2.31.0", "linkinator": "^6.1.2", "spellchecker-cli": "^7.0.0", - "tap-arc": "^1.3.2", - "tape": "^5.9.0", "tiny-json-http": "^7.5.1" }, "engines": { - "node": ">=16", + "node": ">=20", "npm": ">=8" } }, @@ -1233,33 +1231,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@ljharb/resumer": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.1.3.tgz", - "integrity": "sha512-d+tsDgfkj9X5QTriqM4lKesCkMMJC3IrbPKHvayP00ELx2axdXvDfWkqjxrLXIzGcQzmj7VAUT1wopqARTvafw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ljharb/through": "^2.3.13", - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@ljharb/through": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", - "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1715,26 +1686,6 @@ "node": ">=8" } }, - "node_modules/array.prototype.every": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.6.tgz", - "integrity": "sha512-gNEqZD97w6bfQRNmHkFv7rNnGM+VWyHZT+h/rf9C+22owcXuENr66Lfo0phItpU5KoXW6Owb34q2+8MnSIZ57w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.findlastindex": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", @@ -2567,38 +2518,6 @@ "node": ">=0.10" } }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -2897,18 +2816,6 @@ "url": "https://dotenvx.com" } }, - "node_modules/dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - }, - "bin": { - "ignored": "bin/ignored" - } - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -3116,26 +3023,6 @@ "node": ">= 0.4" } }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", @@ -3829,12 +3716,6 @@ "node": ">=14.14" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -3966,15 +3847,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-symbol-description": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", @@ -4187,22 +4059,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-dynamic-import": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.1.0.tgz", - "integrity": "sha512-su0anMkNEnJKZ/rB99jn3y6lV/J8Ro96hBJ28YAeVzj5rWxH+YL/AdCyiYYA1HDLV9YhmvqpWSJJj2KLo1MX6g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4865,16 +4721,6 @@ "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -4911,22 +4757,6 @@ "node": ">= 0.4" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -5508,18 +5338,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jsonc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jsonc/-/jsonc-2.0.0.tgz", @@ -7103,27 +6921,6 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/mock-property": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mock-property/-/mock-property-1.1.0.tgz", - "integrity": "sha512-1/JjbLoGwv87xVsutkX0XJc0M0W4kb40cZl/K41xtTViBOD9JuFPKfyMNTrLJ/ivYAd0aPqu/vduamXO0emTFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.4", - "functions-have-names": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "hasown": "^2.0.2", - "isarray": "^2.0.5", - "object-inspect": "^1.13.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -7368,23 +7165,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -7648,15 +7428,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -9651,18 +9422,6 @@ "node": ">= 0.8" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/strftime": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.10.3.tgz", @@ -9970,155 +9729,6 @@ "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==", "dev": true }, - "node_modules/tap-arc": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/tap-arc/-/tap-arc-1.3.2.tgz", - "integrity": "sha512-JjHVZ4v+8tdA+t4rKvT7qBTa3CXyFjAfpOqjyZLTBR17JloVRdJP0jh7tctf93VxpUbrTgi4zybjlBL1oAdNDQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "chalk": "^5.3.0", - "diff": "^5.2.0", - "json5": "^2.2.3", - "minimist": "^1.2.8", - "strip-ansi": "^7.1.0", - "tap-reader": "^0.2.1" - }, - "bin": { - "tap-arc": "src/index.js" - } - }, - "node_modules/tap-arc/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/tap-arc/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/tap-arc/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/tap-reader": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tap-reader/-/tap-reader-0.2.1.tgz", - "integrity": "sha512-X12Rlo1/eKxexylBs2tASjtXUXCgHL2tKfPM0LeJLku3Kf93DXw6eOheYmAEk+0RB9K5ZfemEC75Tc7w7zxlqA==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tap-reader": "src/index.js" - } - }, - "node_modules/tape": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.9.0.tgz", - "integrity": "sha512-czbGgxSVwRlbB3Ly/aqQrNwrDAzKHDW/kVXegp4hSFmR2c8qqm3hCgZbUy1+3QAQFGhPDG7J56UsV1uNilBFCA==", - "dev": true, - "dependencies": { - "@ljharb/resumer": "^0.1.3", - "@ljharb/through": "^2.3.13", - "array.prototype.every": "^1.1.6", - "call-bind": "^1.0.7", - "deep-equal": "^2.2.3", - "defined": "^1.0.1", - "dotignore": "^0.1.2", - "for-each": "^0.3.3", - "get-package-type": "^0.1.0", - "glob": "^7.2.3", - "has-dynamic-import": "^2.1.0", - "hasown": "^2.0.2", - "inherits": "^2.0.4", - "is-regex": "^1.1.4", - "minimist": "^1.2.8", - "mock-property": "^1.1.0", - "object-inspect": "^1.13.2", - "object-is": "^1.1.6", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "resolve": "^2.0.0-next.5", - "string.prototype.trim": "^1.2.9" - }, - "bin": { - "tape": "bin/tape" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tape/node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tape/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/tape/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/tiny-each-async": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", diff --git a/package.json b/package.json index 1516cf54..4b76e283 100644 --- a/package.json +++ b/package.json @@ -7,16 +7,17 @@ }, "license": "Apache-2.0", "engines": { - "node": ">=16", + "node": ">=20", "npm": ">=8" }, "scripts": { "spellcheck": "npx spellchecker --config ./scripts/spellcheckerrc.json", - "link-checker": "node ./test/link-checker.mjs | tap-arc", + "link-checker": "node --test ./test/link-checker.mjs", "lint": "npx eslint src --fix", "start": "npx arc sandbox", - "tape": "npx tape 'test/**/*-test.mjs' | tap-arc", - "test": "npm run spellcheck && npm run lint && npm run tape" + "test:unit": "node --test --test-concurrency=1", + "test:coverage": "node --test --test-concurrency=1 --experimental-test-coverage", + "test": "npm run spellcheck && npm run lint && npm run test:unit" }, "dependencies": { "@architect/asap": "^7.0.10", @@ -39,8 +40,6 @@ "eslint-plugin-import": "^2.31.0", "linkinator": "^6.1.2", "spellchecker-cli": "^7.0.0", - "tap-arc": "^1.3.2", - "tape": "^5.9.0", "tiny-json-http": "^7.5.1" } } diff --git a/test/backend/redirect-map-test.mjs b/test/backend/redirect-map-test.mjs index 2387e13f..8e110107 100644 --- a/test/backend/redirect-map-test.mjs +++ b/test/backend/redirect-map-test.mjs @@ -1,12 +1,11 @@ import { stat } from 'fs/promises' import { join } from 'path' -import test from 'tape' +import test from 'node:test' +import assert from 'node:assert' import { redirect, tempRedirects, permanentRedirects } from '../../src/shared/redirect-map.mjs' test('redirect map middleware', async t => { - t.plan(4) - - t.equal(typeof redirect, 'function', 'Redirect middleware is a function') + assert.strictEqual(typeof redirect, 'function', 'Redirect middleware is a function') const redirectResponse = await redirect({ requestContext: { @@ -22,7 +21,7 @@ test('redirect map middleware', async t => { location: '/docs/en/guides/examples', }, } - t.deepEqual(redirectResponse, expectedResponse, 'Correctly redirect permanent mapped path') + assert.deepStrictEqual(redirectResponse, expectedResponse, 'Correctly redirect permanent mapped path') const nonRedirectResponse = await redirect({ requestContext: { @@ -32,7 +31,7 @@ test('redirect map middleware', async t => { } } }) - t.notOk(nonRedirectResponse, "Don't respond to unmapped path") + assert.ok(!nonRedirectResponse, "Don't respond to unmapped path") const postResponse = await redirect({ requestContext: { @@ -42,14 +41,12 @@ test('redirect map middleware', async t => { } } }) - t.notOk(postResponse, "Don't respond to POST method") + assert.ok(!postResponse, "Don't respond to POST method") }) test('all redirect destinations exist', async t => { - t.plan(3) - - t.equal(typeof tempRedirects, 'object', 'tempRedirects map') - t.equal(typeof permanentRedirects, 'object', 'permanentRedirects map') + assert.strictEqual(typeof tempRedirects, 'object', 'tempRedirects map') + assert.strictEqual(typeof permanentRedirects, 'object', 'permanentRedirects map') const destinations = [ ...Object.values(tempRedirects), ...Object.values(permanentRedirects) ] for (const destination of destinations) { @@ -58,9 +55,9 @@ test('all redirect destinations exist', async t => { await stat(join(new URL('.', import.meta.url).pathname, '../../src/views', filePath)) } catch (error) { - t.fail(error) + assert.fail(error) } } - t.pass(`Checked for ${destinations.length} files`) + assert.ok(true, `Checked for ${destinations.length} files`) }) diff --git a/test/backend/sandbox-http-test.mjs b/test/backend/sandbox-http-test.mjs index 1db4adb0..72bad104 100644 --- a/test/backend/sandbox-http-test.mjs +++ b/test/backend/sandbox-http-test.mjs @@ -1,4 +1,5 @@ -import test from 'tape' +import test from 'node:test' +import assert from 'node:assert' import { get } from 'tiny-json-http' import { start, end } from '@architect/sandbox' import { currentRoot } from '../../src/shared/redirect-map.mjs' @@ -8,16 +9,14 @@ const root = `${host}${currentRoot}` test('check key paths', async (t) => { await start({ quiet: true }) - t.pass(`sandbox started at ${host}`) + assert.ok(true, `sandbox started at ${host}`) const quickstart = await get({ url: root }) - t.ok(quickstart.body, 'got quickstart document') + assert.ok(quickstart.body, 'got quickstart document') const playground = await get({ url: `${host}/playground` }) - t.ok(playground.body, 'got static playground document') + assert.ok(playground.body, 'got static playground document') await end() - t.pass('sandbox ended') - - t.end() + assert.ok(true, 'sandbox ended') }) diff --git a/test/frontend/sidebar-test.mjs b/test/frontend/sidebar-test.mjs index 11270801..80ecb189 100644 --- a/test/frontend/sidebar-test.mjs +++ b/test/frontend/sidebar-test.mjs @@ -1,4 +1,5 @@ -import test from 'tape' +import test from 'node:test' +import assert from 'node:assert' import listFromObject from '../../src/views/modules/helpers/list.mjs' import strip from './helpers/strip.mjs' import slugify from '../../src/views/modules/helpers/slugify.mjs' @@ -111,8 +112,7 @@ test('render object to list', t => { ` const actual = listFromObject({ data, map }) - t.equal(strip(actual), strip(expected), 'Should render object to list', actual) - t.end() + assert.strictEqual(strip(actual), strip(expected), 'Should render object to list', actual) }) test('render nested object to list', t => { @@ -165,8 +165,7 @@ test('render nested object to list', t => { ` const actual = listFromObject({ data, map }) - t.equal(strip(actual), strip(expected), 'Should render object to list', actual) - t.end() + assert.strictEqual(strip(actual), strip(expected), 'Should render object to list', actual) }) test('render deeply nested object to list', t => { @@ -228,8 +227,7 @@ test('render deeply nested object to list', t => { ` const actual = listFromObject({ data, map }) - t.equal(strip(actual), strip(expected), 'Should render object to list', actual) - t.end() + assert.strictEqual(strip(actual), strip(expected), 'Should render object to list', actual) }) test('should use custom component map', t => { @@ -316,17 +314,15 @@ test('should use custom component map', t => { item: Item } }) - t.equal(strip(actual), strip(expected), 'Should render object to custom list', actual) - t.end() + assert.strictEqual(strip(actual), strip(expected), 'Should render object to custom list', actual) }) test('Should create correct href', t => { - t.plan(8) const path = [ 'docs', 'en' ] const map = { item: function hrefTest ({ path }) { const href = slugify(path.join('/')) - t.ok(href, href) + assert.ok(href, href) }, list: function list () {} } diff --git a/test/frontend/slugify-test.mjs b/test/frontend/slugify-test.mjs index a1a55886..6aaec3fd 100644 --- a/test/frontend/slugify-test.mjs +++ b/test/frontend/slugify-test.mjs @@ -1,10 +1,10 @@ -import test from 'tape' +import test from 'node:test' +import assert from 'node:assert' import slugify from '../../src/views/modules/helpers/slugify.mjs' test('slugify', t => { const input = 'Architect manifest & config' const expected = 'architect-manifest-and-config' const actual = slugify(input) - t.equals(expected, actual, 'slugifies') - t.end() + assert.strictEqual(expected, actual, 'slugifies') }) diff --git a/test/link-checker.mjs b/test/link-checker.mjs index d4c8543a..3c2276fa 100644 --- a/test/link-checker.mjs +++ b/test/link-checker.mjs @@ -1,6 +1,7 @@ // eslint-disable-next-line import/no-unresolved import { LinkChecker } from 'linkinator' -import test from 'tape' +import test from 'node:test' +import assert from 'node:assert' import sandbox from '@architect/sandbox' import { currentRoot } from '../src/shared/redirect-map.mjs' @@ -10,7 +11,7 @@ const root = `${host}${currentRoot}` test('find broken links', async (t) => { await sandbox.start({ quiet: true }) - t.pass(`sandbox started at ${host}`) + assert.ok(true, `sandbox started at ${host}`) const checker = new LinkChecker() @@ -34,11 +35,9 @@ test('find broken links', async (t) => { const brokenCount = result.links.filter(x => x.state === 'BROKEN').length const okCount = result.links.filter(x => x.state === 'OK').length - t.ok(brokenCount === 0, `${brokenCount} broken link${brokenCount > 1 || brokenCount === 0 ? 's' : ''}`) - t.pass(`${okCount} working link${okCount > 1 || okCount === 0 ? 's' : ''}`) + assert.ok(brokenCount === 0, `${brokenCount} broken link${brokenCount > 1 || brokenCount === 0 ? 's' : ''}`) + assert.ok(true, `${okCount} working link${okCount > 1 || okCount === 0 ? 's' : ''}`) await sandbox.end() - t.pass('sandbox ended') - - t.end() + assert.ok(true, 'sandbox ended') })