@applicaster/zapplicaster-cli
Version:
CLI Tool for the zapp app and Quick Brick project
58 lines (45 loc) • 1.46 kB
JavaScript
const { createPluginEntryPoint } = require("../createPluginEntryPoint");
jest.mock("path", () => ({
resolve: jest.fn((...args) => args.join("/")),
}));
jest.mock("../../../render", () => ({
renderFile: jest.fn((source, target, { entryPoint }) => {
if (entryPoint === "fail") {
throw new Error("renderFile failed");
}
return Promise.resolve();
}),
}));
const { resolve } = require("path");
const actualPath = jest.requireActual("path");
const { renderFile } = require("../../../render");
const cwd = "/path/to/cwd";
const entryPoint = "./src/App";
const config = {
cwd,
entryPoint,
};
const modulePath = actualPath.resolve(__dirname, "..");
const exportFileTemplateName = "./export.js.ejs";
const exportFileTargetName = "export.js";
describe("createPluginEntryPoint", () => {
it("renders the export.js from the template", async () => {
await createPluginEntryPoint(config);
expect(resolve).toHaveBeenNthCalledWith(
1,
modulePath,
exportFileTemplateName
);
expect(resolve).toHaveBeenNthCalledWith(2, cwd, exportFileTargetName);
expect(renderFile).toHaveBeenCalledWith(
resolve(modulePath, exportFileTemplateName),
resolve(cwd, exportFileTargetName),
{ entryPoint }
);
});
it("throws when renderFile throws", async () => {
await expect(
createPluginEntryPoint({ cwd, entryPoint: "fail" })
).rejects.toThrowErrorMatchingSnapshot();
});
});