bundler/server.test.ts

74 lines
1.9 KiB
TypeScript
Raw Normal View History

2020-05-14 09:24:38 +00:00
import {
expect,
2020-12-02 21:06:45 +00:00
it,
2020-05-14 09:24:38 +00:00
mockfn,
2020-12-02 21:06:45 +00:00
} from "https://code.thunderk.net/typescript/devtools/raw/1.2.2/testing.ts";
2020-05-14 09:24:38 +00:00
import { processRequest } from "./server.ts";
2020-12-02 21:06:45 +00:00
it("serveBundles standard", async () => {
2020-05-14 09:24:38 +00:00
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",
});
});
2020-12-02 21:06:45 +00:00
it("serveBundles bad path", async () => {
2020-05-14 09:24:38 +00:00
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);
});
2020-12-02 21:06:45 +00:00
it("serveBundles bundle fail", async () => {
2020-05-14 09:24:38 +00:00
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");',
},
);
});