@nodecg/types
Version:
Dynamic broadcast graphics rendered in a browser
36 lines (30 loc) • 1.16 kB
text/typescript
import { expect, test } from "vitest";
import { parseMounts } from "./mounts";
test("returns an empty array if a bundle has no mounts", () => {
expect(parseMounts({ name: "test-bundle" })).toEqual([]);
expect(parseMounts({ name: "test-bundle", mount: [] })).toEqual([]);
});
test("throws if a bundle's `nodecg.mount` property is defined, not an array", () => {
expect(() => {
// @ts-expect-error
parseMounts({ name: "test-bundle", mount: "foo" });
}).toThrowErrorMatchingInlineSnapshot(
`[Error: test-bundle has an invalid "nodecg.mount" property in its package.json, it must be an array]`,
);
});
test("throws when required properties are missing from a mount declaration", () => {
expect(() => {
// @ts-expect-error
parseMounts({ name: "test-bundle", mount: [{}] });
}).toThrowErrorMatchingInlineSnapshot(
`[Error: Mount #0 could not be parsed as it is missing the following properties: directory, endpoint]`,
);
});
test("removes trailing slashes from endpoints", () => {
expect(
parseMounts({
name: "test-bundle",
mount: [{ directory: "foo", endpoint: "foo/" }],
}),
).toEqual([{ directory: "foo", endpoint: "foo" }]);
});