mirror of
https://github.com/denoland/deno.git
synced 2024-12-26 00:59:24 -05:00
11afd071ae
This makes std/node tests runnable from any directory by resolving the testdata directory and files relative to the module directory resolved from import.meta.url.
71 lines
1.9 KiB
TypeScript
71 lines
1.9 KiB
TypeScript
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
import {
|
|
assertEquals,
|
|
assert,
|
|
assertStringContains,
|
|
} from "../testing/asserts.ts";
|
|
|
|
import * as path from "../path/mod.ts";
|
|
import { createRequire } from "./module.ts";
|
|
|
|
const moduleDir = path.dirname(path.fromFileUrl(import.meta.url));
|
|
const testdataDir = path.resolve(moduleDir, path.join("_fs", "testdata"));
|
|
|
|
const require = createRequire(import.meta.url);
|
|
|
|
Deno.test("requireSuccess", function () {
|
|
// Relative to import.meta.url
|
|
const result = require("./tests/cjs/cjs_a.js");
|
|
assert("helloA" in result);
|
|
assert("helloB" in result);
|
|
assert("C" in result);
|
|
assert("leftPad" in result);
|
|
assertEquals(result.helloA(), "A");
|
|
assertEquals(result.helloB(), "B");
|
|
assertEquals(result.C, "C");
|
|
assertEquals(result.leftPad("pad", 4), " pad");
|
|
});
|
|
|
|
Deno.test("requireCycle", function () {
|
|
const resultA = require("./tests/cjs/cjs_cycle_a");
|
|
const resultB = require("./tests/cjs/cjs_cycle_b");
|
|
assert(resultA);
|
|
assert(resultB);
|
|
});
|
|
|
|
Deno.test("requireBuiltin", function () {
|
|
const fs = require("fs");
|
|
assert("readFileSync" in fs);
|
|
const { readFileSync, isNull, extname } = require("./tests/cjs/cjs_builtin");
|
|
|
|
const testData = path.relative(
|
|
Deno.cwd(),
|
|
path.join(testdataDir, "hello.txt"),
|
|
);
|
|
assertEquals(
|
|
readFileSync(testData, { encoding: "utf8" }),
|
|
"hello world",
|
|
);
|
|
assert(isNull(null));
|
|
assertEquals(extname("index.html"), ".html");
|
|
});
|
|
|
|
Deno.test("requireIndexJS", function () {
|
|
const { isIndex } = require("./tests/cjs");
|
|
assert(isIndex);
|
|
});
|
|
|
|
Deno.test("requireNodeOs", function () {
|
|
const os = require("os");
|
|
assert(os.arch);
|
|
assert(typeof os.arch() == "string");
|
|
});
|
|
|
|
Deno.test("requireStack", function () {
|
|
const { hello } = require("./tests/cjs/cjs_throw");
|
|
try {
|
|
hello();
|
|
} catch (e) {
|
|
assertStringContains(e.stack, "/tests/cjs/cjs_throw.js");
|
|
}
|
|
});
|