Skip to content

Commit

Permalink
Convert unit tests to plain deno tests and make them pass
Browse files Browse the repository at this point in the history
  • Loading branch information
caspervonb committed Mar 19, 2021
1 parent 3e5294e commit aec16f9
Show file tree
Hide file tree
Showing 79 changed files with 4,773 additions and 6,192 deletions.
8 changes: 4 additions & 4 deletions cli/tests/integration_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ fn js_unit_tests() {
let _g = util::http_server();
let mut deno = util::deno_cmd()
.current_dir(util::root_path())
.arg("run")
.arg("test")
.arg("--unstable")
.arg("--location=http://js-unit-tests/foo/bar")
.arg("-A")
.arg("cli/tests/unit/unit_test_runner.ts")
.arg("--master")
.arg("--verbose")
.arg(util::root_path().join("cli/tests/unit"))
.spawn()
.expect("failed to spawn script");

let status = deno.wait().expect("failed to wait for the child process");
assert_eq!(Some(0), status.code());
assert!(status.success());
Expand Down
78 changes: 0 additions & 78 deletions cli/tests/unit/README.md

This file was deleted.

12 changes: 6 additions & 6 deletions cli/tests/unit/abort_controller_test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { assert, assertEquals, unitTest } from "./test_util.ts";
import { assert, assertEquals } from "./test_util.ts";

unitTest(function basicAbortController() {
Deno.test("basicAbortController", function () {
const controller = new AbortController();
assert(controller);
const { signal } = controller;
Expand All @@ -10,7 +10,7 @@ unitTest(function basicAbortController() {
assertEquals(signal.aborted, true);
});

unitTest(function signalCallsOnabort() {
Deno.test("signalCallsOnabort", function () {
const controller = new AbortController();
const { signal } = controller;
let called = false;
Expand All @@ -23,7 +23,7 @@ unitTest(function signalCallsOnabort() {
assert(called);
});

unitTest(function signalEventListener() {
Deno.test("signalEventListener", function () {
const controller = new AbortController();
const { signal } = controller;
let called = false;
Expand All @@ -36,7 +36,7 @@ unitTest(function signalEventListener() {
assert(called);
});

unitTest(function onlyAbortsOnce() {
Deno.test("onlyAbortsOnce", function () {
const controller = new AbortController();
const { signal } = controller;
let called = 0;
Expand All @@ -50,7 +50,7 @@ unitTest(function onlyAbortsOnce() {
assertEquals(called, 2);
});

unitTest(function controllerHasProperToString() {
Deno.test("controllerHasProperToString", function () {
const actual = Object.prototype.toString.call(new AbortController());
assertEquals(actual, "[object AbortController]");
});
22 changes: 11 additions & 11 deletions cli/tests/unit/blob_test.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
import { assert, assertEquals, unitTest } from "./test_util.ts";
import { assert, assertEquals } from "./test_util.ts";
import { concat } from "../../../test_util/std/bytes/mod.ts";
import { decode } from "../../../test_util/std/encoding/utf8.ts";

unitTest(function blobString(): void {
Deno.test("blobString", function (): void {
const b1 = new Blob(["Hello World"]);
const str = "Test";
const b2 = new Blob([b1, str]);
assertEquals(b2.size, b1.size + str.length);
});

unitTest(function blobBuffer(): void {
Deno.test("blobBuffer", function (): void {
const buffer = new ArrayBuffer(12);
const u8 = new Uint8Array(buffer);
const f1 = new Float32Array(buffer);
Expand All @@ -20,7 +20,7 @@ unitTest(function blobBuffer(): void {
assertEquals(b2.size, 3 * u8.length);
});

unitTest(function blobSlice(): void {
Deno.test("blobSlice", function (): void {
const blob = new Blob(["Deno", "Foo"]);
const b1 = blob.slice(0, 3, "Text/HTML");
assert(b1 instanceof Blob);
Expand All @@ -34,15 +34,15 @@ unitTest(function blobSlice(): void {
assertEquals(b4.size, blob.size);
});

unitTest(function blobInvalidType(): void {
Deno.test("blobInvalidType", function (): void {
const blob = new Blob(["foo"], {
type: "\u0521",
});

assertEquals(blob.type, "");
});

unitTest(function blobShouldNotThrowError(): void {
Deno.test("blobShouldNotThrowError", function (): void {
let hasThrown = false;

try {
Expand All @@ -62,7 +62,7 @@ unitTest(function blobShouldNotThrowError(): void {
});

/* TODO https://github.com/denoland/deno/issues/7540
unitTest(function nativeEndLine(): void {
Deno.test("nativeEndLine", function(): void {
const options = {
ending: "native",
} as const;
Expand All @@ -72,12 +72,12 @@ unitTest(function nativeEndLine(): void {
});
*/

unitTest(async function blobText(): Promise<void> {
Deno.test("blobText", async function (): Promise<void> {
const blob = new Blob(["Hello World"]);
assertEquals(await blob.text(), "Hello World");
});

unitTest(async function blobStream(): Promise<void> {
Deno.test("blobStream", async function (): Promise<void> {
const blob = new Blob(["Hello World"]);
const stream = blob.stream();
assert(stream instanceof ReadableStream);
Expand All @@ -94,13 +94,13 @@ unitTest(async function blobStream(): Promise<void> {
assertEquals(decode(bytes), "Hello World");
});

unitTest(async function blobArrayBuffer(): Promise<void> {
Deno.test("blobArrayBuffer", async function (): Promise<void> {
const uint = new Uint8Array([102, 111, 111]);
const blob = new Blob([uint]);
assertEquals(await blob.arrayBuffer(), uint.buffer);
});

unitTest(function blobConstructorNameIsBlob(): void {
Deno.test("blobConstructorNameIsBlob", function (): void {
const blob = new Blob();
assertEquals(blob.constructor.name, "Blob");
});
81 changes: 38 additions & 43 deletions cli/tests/unit/body_test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
import { assert, assertEquals, unitTest } from "./test_util.ts";
import { assert, assertEquals } from "./test_util.ts";

// just a hack to get a body object
// deno-lint-ignore no-explicit-any
Expand All @@ -22,7 +22,8 @@ const intArrays = [
Float32Array,
Float64Array,
];
unitTest(async function arrayBufferFromByteArrays(): Promise<void> {

Deno.test("arrayBufferFromByteArrays", async function (): Promise<void> {
const buffer = new TextEncoder().encode("ahoyhoy8").buffer;

for (const type of intArrays) {
Expand All @@ -33,53 +34,47 @@ unitTest(async function arrayBufferFromByteArrays(): Promise<void> {
});

//FormData
unitTest(
{ perms: { net: true } },
async function bodyMultipartFormData(): Promise<void> {
const response = await fetch(
"http://localhost:4545/multipart_form_data.txt",
);
assert(response.body instanceof ReadableStream);

const text = await response.text();

const body = buildBody(text, response.headers);

const formData = await body.formData();
assert(formData.has("field_1"));
assertEquals(formData.get("field_1")!.toString(), "value_1 \r\n");
assert(formData.has("field_2"));
},
);

unitTest(
{ perms: { net: true } },
async function bodyURLEncodedFormData(): Promise<void> {
const response = await fetch(
"http://localhost:4545/cli/tests/subdir/form_urlencoded.txt",
);
assert(response.body instanceof ReadableStream);

const text = await response.text();

const body = buildBody(text, response.headers);

const formData = await body.formData();
assert(formData.has("field_1"));
assertEquals(formData.get("field_1")!.toString(), "Hi");
assert(formData.has("field_2"));
assertEquals(formData.get("field_2")!.toString(), "<Deno>");
},
);

unitTest({ perms: {} }, async function bodyURLSearchParams(): Promise<void> {
Deno.test("bodyMultipartFormData", async function (): Promise<void> {
const response = await fetch(
"http://localhost:4545/multipart_form_data.txt",
);
assert(response.body instanceof ReadableStream);

const text = await response.text();

const body = buildBody(text, response.headers);

const formData = await body.formData();
assert(formData.has("field_1"));
assertEquals(formData.get("field_1")!.toString(), "value_1 \r\n");
assert(formData.has("field_2"));
});

Deno.test("bodyURLEncodedFormData", async function (): Promise<void> {
const response = await fetch(
"http://localhost:4545/cli/tests/subdir/form_urlencoded.txt",
);
assert(response.body instanceof ReadableStream);

const text = await response.text();

const body = buildBody(text, response.headers);

const formData = await body.formData();
assert(formData.has("field_1"));
assertEquals(formData.get("field_1")!.toString(), "Hi");
assert(formData.has("field_2"));
assertEquals(formData.get("field_2")!.toString(), "<Deno>");
});

Deno.test("bodyURLSearchParams", async function (): Promise<void> {
const body = buildBody(new URLSearchParams({ hello: "world" }));

const text = await body.text();
assertEquals(text, "hello=world");
});

unitTest(async function bodyArrayBufferMultipleParts(): Promise<void> {
Deno.test("bodyArrayBufferMultipleParts", async function (): Promise<void> {
const parts: Uint8Array[] = [];
let size = 0;
for (let i = 0; i <= 150000; i++) {
Expand Down
Loading

0 comments on commit aec16f9

Please sign in to comment.