change: remove path.sep, add unit tests, dist

Remove path.sep during comparison with repositoryPath
(did not take in account root folders)
Updated and added more unit tests
Updated dist/index.js
This commit is contained in:
Marco Accorinti 2023-09-20 21:02:10 +02:00
parent faa95350fe
commit 53a4183dea
4 changed files with 26 additions and 6 deletions

View File

@ -821,7 +821,6 @@ async function setup(testName: string): Promise<void> {
workflowOrganizationId: 123456, workflowOrganizationId: 123456,
setSafeDirectory: true, setSafeDirectory: true,
githubServerUrl: githubServerUrl, githubServerUrl: githubServerUrl,
workingDirectory: undefined
} }
} }

View File

@ -143,4 +143,25 @@ describe('input-helper tests', () => {
const settings: IGitSourceSettings = await inputHelper.getInputs() const settings: IGitSourceSettings = await inputHelper.getInputs()
expect(settings.workflowOrganizationId).toBe(123456) expect(settings.workflowOrganizationId).toBe(123456)
}) })
it('sets a different working directory', async() => {
inputs['working-directory'] = '/home/user/test'
inputs['path'] = 'path/to/repo'
const settings: IGitSourceSettings = await inputHelper.getInputs()
expect(settings.repositoryPath).toBe(path.resolve('/home/user/test/path/to/repo'))
})
it('sets a working directory on root', async() => {
inputs['working-directory'] = '/'
inputs['path'] = 'path/to/repo'
const settings: IGitSourceSettings = await inputHelper.getInputs()
expect(settings.repositoryPath).toBe(path.resolve('/path/to/repo'))
})
it('sets a working directory on root and repository path is set to empty', async() => {
inputs['working-directory'] = '/'
inputs['path'] = ''
const settings: IGitSourceSettings = await inputHelper.getInputs()
expect(settings.repositoryPath).toBe(path.resolve('/'))
})
}) })

6
dist/index.js vendored
View File

@ -1672,7 +1672,7 @@ function getInputs() {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
const result = {}; const result = {};
// Working directory // Working directory
let workingDirectory = core.getInput('workingDirectory') || process.env['GITHUB_WORKSPACE']; let workingDirectory = core.getInput('working-directory') || process.env['GITHUB_WORKSPACE'];
if (!workingDirectory) { if (!workingDirectory) {
throw new Error('working dir not defined'); throw new Error('working dir not defined');
} }
@ -1694,8 +1694,8 @@ function getInputs() {
// Repository path // Repository path
result.repositoryPath = core.getInput('path') || '.'; result.repositoryPath = core.getInput('path') || '.';
result.repositoryPath = path.resolve(workingDirectory, result.repositoryPath); result.repositoryPath = path.resolve(workingDirectory, result.repositoryPath);
if (!(result.repositoryPath + path.sep).startsWith(workingDirectory + path.sep)) { if (!(result.repositoryPath + path.sep).startsWith(workingDirectory)) {
throw new Error(`Repository path '${result.repositoryPath}' is not under '${workingDirectory}'`); throw new Error(`Repository path '${result.repositoryPath + path.sep}' is not under '${workingDirectory}'`);
} }
// Workflow repository? // Workflow repository?
const isWorkflowRepository = qualifiedRepository.toUpperCase() === const isWorkflowRepository = qualifiedRepository.toUpperCase() ===

View File

@ -43,11 +43,11 @@ export async function getInputs(): Promise<IGitSourceSettings> {
) )
if ( if (
!(result.repositoryPath + path.sep).startsWith( !(result.repositoryPath + path.sep).startsWith(
workingDirectory + path.sep workingDirectory
) )
) { ) {
throw new Error( throw new Error(
`Repository path '${result.repositoryPath}' is not under '${workingDirectory}'` `Repository path '${result.repositoryPath + path.sep}' is not under '${workingDirectory}'`
) )
} }