Files
bun.sh/test/js/deno/fetch/blob.test.ts
Jarred Sumner e848c3f226 Get Bun.write tests to pass on Windows and bun:sqlite tests to pass (#8393)
* Move ReadFile and WriteFile to separate file

* Use libuv for Bun.write()

* Update windows_event_loop.zig

* build

* Get bun-write tests to pass. Implement Bun.write with two files.

* UPdate

* Update

* Update failing test list

* update

* More

* More

* More

* More

* Mark the rest

* ok

* oops

* Update bun-write.test.js

* Update blob.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Dave Caruso <me@paperdave.net>
Co-authored-by: Georgijs Vilums <georgijs.vilums@gmail.com>
2024-01-23 20:03:56 -08:00

120 lines
3.2 KiB
TypeScript

// GENERATED - DO NOT EDIT
// Copyright 2018+ the Deno authors. All rights reserved. MIT license.
// https://raw.githubusercontent.com/denoland/deno/main/cli/tests/unit/blob_test.ts
import { createDenoTest } from "deno:harness";
const { test, assert, assertEquals, assertStringIncludes, concat } = createDenoTest(import.meta.path);
test(function blobString() {
const b1 = new Blob([
"Hello World"
]);
const str = "Test";
const b2 = new Blob([
b1,
str
]);
assertEquals(b2.size, b1.size + str.length);
});
test(function blobBuffer() {
const buffer = new ArrayBuffer(12);
const u8 = new Uint8Array(buffer);
const f1 = new Float32Array(buffer);
const b1 = new Blob([
buffer,
u8
]);
assertEquals(b1.size, 2 * u8.length);
const b2 = new Blob([
b1,
f1
]);
assertEquals(b2.size, 3 * u8.length);
});
test(function blobSlice() {
const blob = new Blob([
"Deno",
"Foo"
]);
const b1 = blob.slice(0, 3, "Text/HTML");
assert(b1 instanceof Blob);
assertEquals(b1.size, 3);
assertEquals(b1.type, "text/html");
const b2 = blob.slice(-1, 3);
assertEquals(b2.size, 0);
const b3 = blob.slice(100, 3);
assertEquals(b3.size, 0);
const b4 = blob.slice(0, 10);
assertEquals(b4.size, blob.size);
});
test(function blobInvalidType() {
const blob = new Blob([
"foo"
], {
type: "\u0521"
});
assertEquals(blob.type, "");
});
test(function blobShouldNotThrowError() {
let hasThrown = false;
try {
const options1: any = {
ending: "utf8",
hasOwnProperty: "hasOwnProperty"
};
const options2 = Object.create(null);
new Blob([
"Hello World"
], options1);
new Blob([
"Hello World"
], options2);
} catch {
hasThrown = true;
}
assertEquals(hasThrown, false);
});
test(async function blobText() {
const blob = new Blob([
"Hello World"
]);
assertEquals(await blob.text(), "Hello World");
});
test(async function blobStream() {
const blob = new Blob([
"Hello World"
]);
const stream = blob.stream();
assert(stream instanceof ReadableStream);
const reader = stream.getReader();
let bytes = new Uint8Array();
const read = async (): Promise<void> =>{
const { done , value } = await reader.read();
if (!done && value) {
bytes = concat(bytes, value);
return read();
}
};
await read();
const decoder = new TextDecoder();
assertEquals(decoder.decode(bytes), "Hello World");
});
test(async function blobArrayBuffer() {
const uint = new Uint8Array([
102,
111,
111
]);
const blob = new Blob([
uint
]);
assertEquals(await blob.arrayBuffer(), uint.buffer);
});
test(function blobConstructorNameIsBlob() {
const blob = new Blob();
assertEquals(blob.constructor.name, "Blob");
});
test.ignore(function blobCustomInspectFunction() {
const blob = new Blob();
assertEquals(Deno.inspect(blob), `Blob { size: 0, type: "" }`);
assertStringIncludes(Deno.inspect(Blob.prototype), "Blob");
});