mirror of
https://github.com/denoland/deno.git
synced 2024-11-27 16:10:57 -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.
104 lines
2.9 KiB
TypeScript
104 lines
2.9 KiB
TypeScript
import { readFile, readFileSync } from "./_fs_readFile.ts";
|
|
import * as path from "../../path/mod.ts";
|
|
import { assertEquals, assert } from "../../testing/asserts.ts";
|
|
|
|
const moduleDir = path.dirname(path.fromFileUrl(import.meta.url));
|
|
const testData = path.resolve(moduleDir, "testdata", "hello.txt");
|
|
|
|
Deno.test("readFileSuccess", async function () {
|
|
const data = await new Promise((res, rej) => {
|
|
readFile(testData, (err, data) => {
|
|
if (err) {
|
|
rej(err);
|
|
}
|
|
res(data);
|
|
});
|
|
});
|
|
|
|
assert(data instanceof Uint8Array);
|
|
assertEquals(new TextDecoder().decode(data as Uint8Array), "hello world");
|
|
});
|
|
|
|
Deno.test("readFileEncodeUtf8Success", async function () {
|
|
const data = await new Promise((res, rej) => {
|
|
readFile(testData, { encoding: "utf8" }, (err, data) => {
|
|
if (err) {
|
|
rej(err);
|
|
}
|
|
res(data);
|
|
});
|
|
});
|
|
assertEquals(typeof data, "string");
|
|
assertEquals(data as string, "hello world");
|
|
});
|
|
|
|
Deno.test("readFileEncodeHexSuccess", async function () {
|
|
const data = await new Promise((res, rej) => {
|
|
readFile(testData, { encoding: "hex" }, (err, data) => {
|
|
if (err) {
|
|
rej(err);
|
|
}
|
|
res(data);
|
|
});
|
|
});
|
|
|
|
assertEquals(typeof data, "string");
|
|
assertEquals(data as string, "68656c6c6f20776f726c64");
|
|
});
|
|
|
|
Deno.test("readFileEncodeBase64Success", async function () {
|
|
const data = await new Promise((res, rej) => {
|
|
readFile(testData, { encoding: "base64" }, (err, data) => {
|
|
if (err) {
|
|
rej(err);
|
|
}
|
|
res(data);
|
|
});
|
|
});
|
|
assertEquals(typeof data, "string");
|
|
assertEquals(data as string, "aGVsbG8gd29ybGQ=");
|
|
});
|
|
|
|
Deno.test("readFileEncodingAsString", async function () {
|
|
const data = await new Promise((res, rej) => {
|
|
readFile(testData, "utf8", (err, data) => {
|
|
if (err) {
|
|
rej(err);
|
|
}
|
|
res(data);
|
|
});
|
|
});
|
|
|
|
assertEquals(typeof data, "string");
|
|
assertEquals(data as string, "hello world");
|
|
});
|
|
|
|
Deno.test("readFileSyncSuccess", function () {
|
|
const data = readFileSync(testData);
|
|
assert(data instanceof Uint8Array);
|
|
assertEquals(new TextDecoder().decode(data as Uint8Array), "hello world");
|
|
});
|
|
|
|
Deno.test("readFileEncodeUtf8Success", function () {
|
|
const data = readFileSync(testData, { encoding: "utf8" });
|
|
assertEquals(typeof data, "string");
|
|
assertEquals(data as string, "hello world");
|
|
});
|
|
|
|
Deno.test("readFileEncodeHexSuccess", function () {
|
|
const data = readFileSync(testData, { encoding: "hex" });
|
|
assertEquals(typeof data, "string");
|
|
assertEquals(data as string, "68656c6c6f20776f726c64");
|
|
});
|
|
|
|
Deno.test("readFileEncodeBase64Success", function () {
|
|
const data = readFileSync(testData, { encoding: "base64" });
|
|
assertEquals(typeof data, "string");
|
|
assertEquals(data as string, "aGVsbG8gd29ybGQ=");
|
|
});
|
|
|
|
Deno.test("readFileEncodeAsString", function () {
|
|
const data = readFileSync(testData, "utf8");
|
|
assertEquals(typeof data, "string");
|
|
assertEquals(data as string, "hello world");
|
|
});
|