From 751921c4436d6872c03199eee0edaa2ec83fb6b5 Mon Sep 17 00:00:00 2001 From: Adam Azarchs Date: Thu, 23 Mar 2023 02:47:14 -0700 Subject: [PATCH] fix: correct reading of sync-labels input. (#480) * fix: correct reading of sync-labels input. Contrary to the assumptions made in the unit tests, core.getInput always returns a string, and !!'false' is true. Also updates the unit test to reduce changes of regressions by ensuring that the mocked getInput returns a string, as it would in production. Fixes https://github.com/actions/labeler/issues/112 Make sure test catches regressions. * Rebuild dist/index.js. --- __tests__/main.test.ts | 14 ++++++++++++-- dist/index.js | 2 +- src/labeler.ts | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts index ab62eae37..426b1e822 100644 --- a/__tests__/main.test.ts +++ b/__tests__/main.test.ts @@ -51,12 +51,17 @@ describe('run', () => { const mockInput = { 'repo-token': 'foo', 'configuration-path': 'bar', - 'sync-labels': true + 'sync-labels': 'true' }; jest .spyOn(core, 'getInput') .mockImplementation((name: string, ...opts) => mockInput[name]); + jest + .spyOn(core, 'getBooleanInput') + .mockImplementation( + (name: string, ...opts) => mockInput[name] === 'true' + ); usingLabelerConfigYaml('only_pdfs.yml'); mockGitHubResponseChangedFiles('foo.txt'); @@ -82,12 +87,17 @@ describe('run', () => { const mockInput = { 'repo-token': 'foo', 'configuration-path': 'bar', - 'sync-labels': false + 'sync-labels': 'false' }; jest .spyOn(core, 'getInput') .mockImplementation((name: string, ...opts) => mockInput[name]); + jest + .spyOn(core, 'getBooleanInput') + .mockImplementation( + (name: string, ...opts) => mockInput[name] === 'true' + ); usingLabelerConfigYaml('only_pdfs.yml'); mockGitHubResponseChangedFiles('foo.txt'); diff --git a/dist/index.js b/dist/index.js index b3d5dbf2a..6d753d52f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -49,7 +49,7 @@ function run() { try { const token = core.getInput('repo-token'); const configPath = core.getInput('configuration-path', { required: true }); - const syncLabels = !!core.getInput('sync-labels', { required: false }); + const syncLabels = core.getBooleanInput('sync-labels'); const prNumber = getPrNumber(); if (!prNumber) { core.info('Could not get pull request number from context, exiting'); diff --git a/src/labeler.ts b/src/labeler.ts index dd89044f5..96e152bc3 100644 --- a/src/labeler.ts +++ b/src/labeler.ts @@ -15,7 +15,7 @@ export async function run() { try { const token = core.getInput('repo-token'); const configPath = core.getInput('configuration-path', {required: true}); - const syncLabels = !!core.getInput('sync-labels', {required: false}); + const syncLabels = core.getBooleanInput('sync-labels'); const prNumber = getPrNumber(); if (!prNumber) {