74 lines
1.9 KiB
TypeScript
74 lines
1.9 KiB
TypeScript
import {
|
|
expect,
|
|
mockfn,
|
|
test,
|
|
} from "https://code.thunderk.net/typescript/devtools/raw/1.0.1/testing.ts";
|
|
import { processRequest } from "./server.ts";
|
|
|
|
test("serveBundles standard", async () => {
|
|
const mock_run = mockfn(() => {
|
|
return {
|
|
output: () => Promise.resolve(new TextEncoder().encode("abc")),
|
|
status: () => Promise.resolve({ code: 0, success: true }),
|
|
} as any;
|
|
});
|
|
|
|
const response = await processRequest(
|
|
{ url: "/greatlib/1.0.0/reader/" } as any,
|
|
mock_run,
|
|
);
|
|
expect(response).toEqual({ body: new TextEncoder().encode("abc") });
|
|
expect(mock_run).toHaveBeenCalledTimes(1);
|
|
expect(mock_run).toHaveBeenCalledWith({
|
|
cmd: [
|
|
"deno",
|
|
"bundle",
|
|
"https://code.thunderk.net/typescript/greatlib/raw/1.0.0/reader.ts",
|
|
],
|
|
stdout: "piped",
|
|
});
|
|
});
|
|
|
|
test("serveBundles bad path", async () => {
|
|
const mock_run = mockfn(() => {
|
|
return {
|
|
output: () => Promise.resolve(new TextEncoder().encode("abc")),
|
|
status: () => Promise.resolve({ code: 0, success: true }),
|
|
} as any;
|
|
});
|
|
|
|
const response = await processRequest(
|
|
{ url: "/greatlib/1.0.0/reader{}/" } as any,
|
|
mock_run,
|
|
);
|
|
expect(response).toEqual(
|
|
{
|
|
status: 400,
|
|
body:
|
|
'console.error("bundler error - Invalid path https://code.thunderk.net/typescript/greatlib/raw/1.0.0/reader{}.ts");',
|
|
},
|
|
);
|
|
expect(mock_run).toHaveBeenCalledTimes(0);
|
|
});
|
|
|
|
test("serveBundles bundle fail", async () => {
|
|
const mock_run = mockfn(() => {
|
|
return {
|
|
output: () => Promise.resolve(undefined),
|
|
status: () => Promise.resolve({ code: 1, success: false }),
|
|
} as any;
|
|
});
|
|
|
|
const response = await processRequest(
|
|
{ url: "/great_lib/1.0.0-dev1/reader/" } as any,
|
|
mock_run,
|
|
);
|
|
expect(response).toEqual(
|
|
{
|
|
status: 500,
|
|
body:
|
|
'console.error("bundler error - Failed to bundle https://code.thunderk.net/typescript/great_lib/raw/1.0.0-dev1/reader.ts");',
|
|
},
|
|
);
|
|
});
|