diff --git a/__tests__/main.test.js b/__tests__/main.test.js index f968ae6..5838d17 100644 --- a/__tests__/main.test.js +++ b/__tests__/main.test.js @@ -1,11 +1,11 @@ // main.test.js -const core = require('@actions/core'); -const fs = require('fs'); -const main = require('../src/main'); +const core = require("@actions/core"); +const fs = require("fs"); +const main = require("../src/main"); // Mocking fs.promises for the test -jest.mock('fs', () => { - const originalFs = jest.requireActual('fs'); +jest.mock("fs", () => { + const originalFs = jest.requireActual("fs"); return { ...originalFs, promises: { @@ -13,18 +13,18 @@ jest.mock('fs', () => { }, }; }); -const child_process = require('child_process'); +const child_process = require("child_process"); -jest.mock('@actions/core'); -jest.mock('child_process'); +jest.mock("@actions/core"); +jest.mock("child_process"); -describe('Inno Setup Action', () => { +describe("Inno Setup Action", () => { beforeEach(() => { jest.resetAllMocks(); }); - it('should execute Inno Setup command on Windows with existing workspace', () => { - process.platform = 'win32'; + it("should execute Inno Setup command on Windows with existing workspace", () => { + process.platform = "win32"; main(); expect(core.getInput).toHaveBeenCalledTimes(2); diff --git a/src/index.js b/src/index.js index 69d5712..ca52656 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,6 @@ /** * The entrypoint for the action. */ -const { run } = require('./main') +const { run } = require("./main"); -run() +run(); diff --git a/src/main.js b/src/main.js index 3680faf..6db5eea 100644 --- a/src/main.js +++ b/src/main.js @@ -1,46 +1,55 @@ // Importing necessary modules -const core = require('@actions/core') -const fs = require('fs') +const core = require("@actions/core"); +const fs = require("fs"); // Getting the path to the workspace from environment variables -const workspacePath = process.env.GITHUB_WORKSPACE +const workspacePath = process.env.GITHUB_WORKSPACE; // Getting inputs from the workflow -const options = core.getInput('options') -const path = core.getInput('path') +const options = core.getInput("options"); +const path = core.getInput("path"); // Importing the child_process module for executing shell commands -const exec = require('child_process').exec +const exec = require("child_process").exec; // Initializing error variables let repoError; let platformError; // Checking if the platform is Windows -if (process.platform === 'win32') { +if (process.platform === "win32") { // Checking if the GitHub workspace exists and is not empty - if (fs.existsSync(process.env.GITHUB_WORKSPACE) && fs.readdirSync(workspacePath).length > 0) { + if ( + fs.existsSync(process.env.GITHUB_WORKSPACE) && + fs.readdirSync(workspacePath).length > 0 + ) { // Building and executing the Inno Setup compiler command - exec(`"%PROGRAMFILES(X86)%\\Inno Setup 6\\iscc.exe" ${options} "${workspacePath}\\${path}"`, { stdio: 'ignore' }, function (execError, stdout, stderr) { - // Logging the standard output of the command - console.log(stdout) + exec( + `"%PROGRAMFILES(X86)%\\Inno Setup 6\\iscc.exe" ${options} "${workspacePath}\\${path}"`, + { stdio: "ignore" }, + function (execError, stdout, stderr) { + // Logging the standard output of the command + console.log(stdout); - // Handling errors, if any - if (execError) { - repoError = { code: execError.code || 1 }; - core.setFailed(stderr); - process.exit(repoError.code); - } - }); + // Handling errors, if any + if (execError) { + repoError = { code: execError.code || 1 }; + core.setFailed(stderr); + process.exit(repoError.code); + } + }, + ); } else { // Setting an error code and failing the workflow if the repository is not cloned - repoError = { code: 1 } - core.setFailed('The repository was not cloned. Please specify the actions/checkout action before this step.'); - process.exit(repoError.code) + repoError = { code: 1 }; + core.setFailed( + "The repository was not cloned. Please specify the actions/checkout action before this step.", + ); + process.exit(repoError.code); } } else { // Setting an error code and failing the workflow if the platform is not Windows platformError = { code: 1 }; - core.setFailed('This action is only supported on Windows!') - process.exit(platformError.code) + core.setFailed("This action is only supported on Windows!"); + process.exit(platformError.code); }