1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
import { it, describe, expect } from "bun:test";
it("extendable", () => {
const classes = [Blob, TextDecoder, TextEncoder, Request, Response, Headers, HTMLRewriter, Bun.Transpiler, Buffer];
// None of these should error
for (let Class of classes) {
var Foo = class extends Class {};
var bar = new Foo();
expect(bar instanceof Class).toBe(true);
expect(!!Class.prototype).toBe(true);
expect(typeof Class.prototype).toBe("object");
}
expect(true).toBe(true);
});
it("writable", () => {
const classes = [
// ["Blob", Blob],
["TextDecoder", TextDecoder],
// ["TextEncoder", TextEncoder],
["Request", Request],
["Response", Response],
["Headers", Headers],
["Buffer", Buffer],
// ["HTMLRewriter", HTMLRewriter],
// ["Transpiler", Bun.Transpiler],
];
for (let [name, Class] of classes) {
globalThis[name] = 123;
expect(globalThis[name]).toBe(123);
globalThis[name] = Class;
expect(globalThis[name]).toBe(Class);
}
});
it("name", () => {
const classes = [
["Blob", Blob],
["TextDecoder", TextDecoder],
["TextEncoder", TextEncoder],
["Request", Request],
["Response", Response],
["Headers", Headers],
["HTMLRewriter", HTMLRewriter],
["Transpiler", Bun.Transpiler],
["Buffer", Buffer],
];
for (let [name, Class] of classes) {
expect(Class.name).toBe(name);
}
});
|