multi-clasp2
Version:
Google Clasp wrapper to push changes to multiple Apps Script projects at once.
46 lines (45 loc) • 2.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const multiClaspMocks_1 = require("./_mocks/multiClaspMocks");
const common_1 = require("../src/common");
describe("multi-clasp version -> execShellCommand", () => {
const realArgv = process.argv.slice();
beforeEach(() => {
process.argv = ["node", "multi-clasp", "version"];
multiClaspMocks_1.foreachMock.mockReset();
multiClaspMocks_1.execMock.mockReset();
multiClaspMocks_1.getOptionsMock.mockReset();
multiClaspMocks_1.execMock.mockResolvedValue({ error: null, stdout: "ok", stderr: "" });
});
afterEach(() => {
process.argv = realArgv;
});
it("no description: executes npx clasp version", async () => {
const tasks = (0, multiClaspMocks_1.mockForeach)(["AAA", "BBB"]);
multiClaspMocks_1.getOptionsMock.mockReturnValue("");
await (0, common_1.genericAction)();
await Promise.all(tasks);
expect(multiClaspMocks_1.execMock).toHaveBeenCalledTimes(2);
expect(multiClaspMocks_1.execMock.mock.calls[0][0]).toBe("npx clasp version ");
expect(multiClaspMocks_1.execMock.mock.calls[1][0]).toBe("npx clasp version ");
});
it("with description: executes npx clasp version mydesc", async () => {
const tasks = (0, multiClaspMocks_1.mockForeach)(["AAA", "BBB"]);
multiClaspMocks_1.getOptionsMock.mockReturnValue("mydesc");
await (0, common_1.genericAction)();
await Promise.all(tasks);
expect(multiClaspMocks_1.execMock).toHaveBeenCalledTimes(2);
expect(multiClaspMocks_1.execMock.mock.calls[0][0]).toBe("npx clasp version mydesc");
expect(multiClaspMocks_1.execMock.mock.calls[1][0]).toBe("npx clasp version mydesc");
});
it("exits(1) if clasp fails", async () => {
const tasks = (0, multiClaspMocks_1.mockForeach)(["AAA"]);
const exitSpy = jest.spyOn(process, "exit").mockImplementation((() => undefined));
multiClaspMocks_1.getOptionsMock.mockReturnValue("");
multiClaspMocks_1.execMock.mockResolvedValue({ error: new Error("boom"), stdout: "", stderr: "fail" });
await (0, common_1.genericAction)();
await Promise.all(tasks);
expect(exitSpy).toHaveBeenCalledWith(1);
exitSpy.mockRestore();
});
});