@applicaster/zapplicaster-cli
Version:
CLI Tool for the zapp app and Quick Brick project
51 lines (39 loc) • 1.19 kB
JavaScript
const { updatePackageJson } = require("../updatePackageJson");
jest.mock("path", () => ({
resolve: jest.fn(() => "./__tests__/testPackage.json"),
}));
jest.mock("../../../file", () => ({
writeJsonToFile: jest.fn((path, packageJson) => {
if (packageJson.name === "fail") {
console.log("throwing writeJsonToFile");
throw new Error("writeJsonToFile failed");
}
return Promise.resolve();
}),
}));
const cwd = "path/to/cwd";
const name = "module-name";
const main = "./export.js";
const config = {
cwd,
name,
};
const { resolve } = require("path");
const { writeJsonToFile } = require("../../../file");
const testPackageJson = require("./testPackage.json");
describe("updatePackageJson", () => {
it("update the packageJson name & main properties", async () => {
await updatePackageJson(config);
expect(writeJsonToFile).toHaveBeenCalledWith(resolve(cwd, "package.json"), {
...testPackageJson,
name,
main,
});
expect.assertions(1);
});
it("throws if writeJsonToFileThrows", async () => {
await expect(
updatePackageJson({ cwd, name: "fail" })
).rejects.toThrowErrorMatchingSnapshot();
});
});