multi-clasp2
Version:
Google Clasp wrapper to push changes to multiple Apps Script projects at once.
48 lines (47 loc) • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getOptionsMock = exports.execMock = exports.foreachMock = void 0;
exports.mockForeach = mockForeach;
jest.mock("fs", () => {
const actual = jest.requireActual("fs");
return {
...actual,
writeFile: jest.fn((_p, _d, _e, cb) => cb === null || cb === void 0 ? void 0 : cb(null)),
unlink: jest.fn((_p, cb) => cb === null || cb === void 0 ? void 0 : cb(null)),
};
});
jest.mock("../../src/utils", () => ({
execShellCommand: jest.fn(),
getOptions: jest.fn(() => ""),
}));
jest.mock("../../src/common", () => {
const actual = jest.requireActual("../../src/common");
const utils = jest.requireMock("../../src/utils");
const foreachClasp = jest.fn();
return {
...actual,
foreachClasp,
genericAction: jest.fn(async () => {
await foreachClasp(async (claspConfig) => {
const retVal = await actual.runClasp(claspConfig, process.argv[2], utils.getOptions());
if (!retVal) {
process.exit(1);
}
});
}),
};
});
const common = jest.requireMock("../../src/common");
const utils = jest.requireMock("../../src/utils");
exports.foreachMock = common.foreachClasp;
exports.execMock = utils.execShellCommand;
exports.getOptionsMock = utils.getOptions;
function mockForeach(scriptIds) {
const tasks = [];
exports.foreachMock.mockImplementation((fn) => {
for (const scriptId of scriptIds) {
tasks.push(fn({ scriptId }));
}
});
return tasks;
}