multi-clasp2
Version:
Google Clasp wrapper to push changes to multiple Apps Script projects at once.
37 lines (36 loc) • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const multiClaspMocks_1 = require("./_mocks/multiClaspMocks");
const common_1 = require("../src/common");
describe("multi-clasp list-deployments -> execShellCommand", () => {
const realArgv = process.argv.slice();
beforeEach(() => {
process.argv = ["node", "multi-clasp", "list-deployments"];
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("executes npx clasp list-deployments", 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 list-deployments ");
expect(multiClaspMocks_1.execMock.mock.calls[1][0]).toBe("npx clasp list-deployments ");
});
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();
});
});