import { assert, assertThrows, assertEquals } from "../testing/asserts.ts";import * as all from "./process.ts";import { env, argv } from "./process.ts";
Deno.test({ name: "process exports are as they should be", fn() { const allKeys = new Set<string>(Object.keys(all)); allKeys.delete("process"); allKeys.delete("default"); allKeys.add("on"); const allStr = Array.from(allKeys).sort().join(" "); assertEquals(Object.keys(all.default).sort().join(" "), allStr); assertEquals(Object.keys(all.process).sort().join(" "), allStr); assertEquals(Object.keys(process).sort().join(" "), allStr); },});
Deno.test({ name: "process.cwd and process.chdir success", fn() { assert(process.cwd().match(/\Wstd$/)); process.chdir("node"); assert(process.cwd().match(/\Wnode$/)); process.chdir(".."); assert(process.cwd().match(/\Wstd$/)); },});
Deno.test({ name: "process.chdir failure", fn() { assertThrows( () => { process.chdir("non-existent-directory-name"); }, Deno.errors.NotFound, "file", ); },});
Deno.test({ name: "process.version", fn() { assertEquals(typeof process, "object"); assertEquals(typeof process.version, "string"); assertEquals(typeof process.versions, "object"); assertEquals(typeof process.versions.node, "string"); },});
Deno.test({ name: "process.platform", fn() { assertEquals(typeof process.platform, "string"); },});
Deno.test({ name: "process.arch", fn() { assertEquals(typeof process.arch, "string"); assertEquals(process.arch, Deno.build.arch); },});
Deno.test({ name: "process.pid", fn() { assertEquals(typeof process.pid, "number"); assertEquals(process.pid, Deno.pid); },});
Deno.test({ name: "process.on", fn() { assertEquals(typeof process.on, "function"); assertThrows( () => { process.on("uncaughtException", (_err: Error) => {}); }, Error, "implemented", ); },});
Deno.test({ name: "process.argv", fn() { assert(Array.isArray(process.argv)); assert(Array.isArray(argv)); assert( process.argv[0].match(/[^/\\]*deno[^/\\]*$/), "deno included in the file name of argv[0]", ); },});
Deno.test({ name: "process.env", fn() { assertEquals(typeof process.env.PATH, "string"); assertEquals(typeof env.PATH, "string"); },});