UNPKG

multi-clasp2

Version:

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

36 lines (35 loc) 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const multiClaspMocks_1 = require("./_mocks/multiClaspMocks"); const common_1 = require("../src/common"); describe.each(['open-script', 'open-web-app', 'open-container'])("multi-clasp %s -> execShellCommand", (openCommand) => { const realArgv = process.argv.slice(); beforeEach(() => { process.argv = ["node", "multi-clasp", openCommand]; 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 ${openCommand}`, 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 ${openCommand} `); expect(multiClaspMocks_1.execMock.mock.calls[1][0]).toBe(`npx clasp ${openCommand} `); }); it("exits(1) if clasp fails", async () => { const tasks = (0, multiClaspMocks_1.mockForeach)(["AAA"]); const exitSpy = jest.spyOn(process, "exit").mockImplementation((() => undefined)); 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(); }); });