UNPKG

multi-clasp2

Version:

Google Clasp wrapper to push changes to multiple Apps Script projects at once.

46 lines (45 loc) 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const multiClaspMocks_1 = require("./_mocks/multiClaspMocks"); const common_1 = require("../src/common"); describe("multi-clasp undeploy -> execShellCommand", () => { const realArgv = process.argv.slice(); beforeEach(() => { process.argv = ["node", "multi-clasp", "undeploy"]; 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 options: executes npx clasp undeploy", 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 undeploy "); expect(multiClaspMocks_1.execMock.mock.calls[1][0]).toBe("npx clasp undeploy "); }); it("--all: executes npx clasp undeploy --all", async () => { const tasks = (0, multiClaspMocks_1.mockForeach)(["AAA", "BBB"]); multiClaspMocks_1.getOptionsMock.mockReturnValue("--all"); 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 undeploy --all"); expect(multiClaspMocks_1.execMock.mock.calls[1][0]).toBe("npx clasp undeploy --all"); }); 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("--all"); 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(); }); });