diff --git a/src/utils/substitute.ts b/src/utils/substitute.ts index 7a6d51d..85a2bb3 100644 --- a/src/utils/substitute.ts +++ b/src/utils/substitute.ts @@ -54,6 +54,10 @@ export function substituteString( if (replacement !== undefined) { return replacement } + const evaluated = staticExpression(expr, values) + if (evaluated) { + return evaluated.value + } const simplified = printExpression(expr, values) const staticValue = staticExpression(parseExpression(simplified), values) return staticValue ? staticValue.value : `\${{ ${simplified} }}` diff --git a/tests/index.test.ts b/tests/index.test.ts index f0f4082..fca1a48 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -91,6 +91,21 @@ describe('actionspack', () => { ).toBe( "${{ (contains(github.ref_name, 'alpha') && 'alpha' || contains(github.ref_name, 'beta') && 'beta' || contains(github.ref_name, 'rc') && 'rc' || '') || 'latest' }}", ) + expect( + substituteValue( + { + run: "pnpm dlx pkg-pr-new@0.0 publish --pnpm ${{ inputs.compact && '--compact' || '' }} ${{ inputs.packages }} ${{ inputs['comment-package-manager'] && format('--packageManager={0}', inputs['comment-package-manager']) || '' }} ${{ inputs['comment-with-dev'] && '--commentWithDev' || '' }}", + }, + { + 'inputs.comment-package-manager': 'pnpm,npm,yarn', + 'inputs.comment-with-dev': true, + 'inputs.compact': true, + 'inputs.packages': ". './packages/*'", + }, + ), + ).toEqual({ + run: "pnpm dlx pkg-pr-new@0.0 publish --pnpm --compact . './packages/*' --packageManager=pnpm,npm,yarn --commentWithDev", + }) }) it('reports when pack has no source workflows', async () => {