mirror of
https://github.com/Minionguyjpro/Inno-Setup-Action
synced 2026-02-18 17:41:18 +01:00
Update main.test.js
This commit is contained in:
@@ -1,31 +1,39 @@
|
|||||||
|
// main.js
|
||||||
|
|
||||||
|
const main = require("../src/main");
|
||||||
const core = require("@actions/core");
|
const core = require("@actions/core");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
|
|
||||||
// Mocking specific methods of @actions/core
|
function main() {
|
||||||
core.getInput = jest.fn().mockReturnValueOnce("options").mockReturnValueOnce("path");
|
const workspacePath = process.env.GITHUB_WORKSPACE;
|
||||||
core.setFailed = jest.fn();
|
|
||||||
|
|
||||||
// Mocking fs module with promises property
|
const options = core.getInput("options");
|
||||||
jest.mock("fs", () => ({
|
const path = core.getInput("path");
|
||||||
existsSync: jest.fn(() => true),
|
|
||||||
readdirSync: jest.fn(() => ['file1', 'file2']),
|
|
||||||
promises: {
|
|
||||||
access: jest.fn(),
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
|
|
||||||
// Importing the main module after the mocks are set
|
let repoError;
|
||||||
const main = require("../src/main");
|
let platformError;
|
||||||
|
|
||||||
describe("Inno Setup Action", () => {
|
if (process.platform === "win32") {
|
||||||
it("should execute Inno Setup command on Windows with existing workspace", () => {
|
if (fs.existsSync(workspacePath) && fs.readdirSync(workspacePath).length > 0) {
|
||||||
process.platform = "win32";
|
exec(`"%PROGRAMFILES(X86)%\\Inno Setup 6\\iscc.exe" ${options} "${workspacePath}\\${path}"`, { stdio: "ignore" }, function (execError, stdout, stderr) {
|
||||||
main();
|
console.log(stdout);
|
||||||
expect(core.getInput).toHaveBeenCalledTimes(2);
|
|
||||||
expect(fs.existsSync).toHaveBeenCalled();
|
|
||||||
expect(fs.promises.access).toHaveBeenCalled(); // Testing promises property
|
|
||||||
expect(core.setFailed).not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add more test cases as needed
|
if (execError) {
|
||||||
});
|
repoError = { code: execError.code || 1 };
|
||||||
|
core.setFailed(stderr);
|
||||||
|
process.exit(repoError.code);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
repoError = { code: 1 };
|
||||||
|
core.setFailed("The repository was not cloned. Please specify the actions/checkout action before this step.");
|
||||||
|
process.exit(repoError.code);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
platformError = { code: 1 };
|
||||||
|
core.setFailed("This action is only supported on Windows!");
|
||||||
|
process.exit(platformError.code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = main;
|
||||||
|
|||||||
Reference in New Issue
Block a user