From 89b50f3221b82bb4fb7820be7558332c32ee31df Mon Sep 17 00:00:00 2001 From: Dan Allen Date: Fri, 9 Aug 2024 01:38:47 -0600 Subject: [PATCH] resolves #32 exclude env property when exporting playbook to json or yaml --- CHANGELOG.adoc | 4 ++++ packages/collector-extension/lib/index.js | 2 ++ .../collector-extension/test/collector-extension-test.js | 9 ++++++++- .../test/fixtures/test-at-root/.gen-using-env.js | 3 +++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 788d079..4b27ab5 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -6,6 +6,10 @@ For a detailed view of what's changed, refer to the {url-repo}/commits[commit hi == Unreleased +=== Changed + +* exclude `env` property when exporting playbook to json or yaml (#32) + === Fixed * account for null value on env key or env entry diff --git a/packages/collector-extension/lib/index.js b/packages/collector-extension/lib/index.js index 22fad0d..ecaef8a 100644 --- a/packages/collector-extension/lib/index.js +++ b/packages/collector-extension/lib/index.js @@ -73,6 +73,8 @@ module.exports.register = function ({ config: { createWorktrees = 'auto', keepWo let envModified = !('NODE' in playbookEnv) let env = envModified ? Object.assign({ NODE: process.execPath }, playbookEnv) : playbookEnv let envConfig = run.env + Object.isFrozen(playbook) && + Object.defineProperty((playbook = Object.assign({}, playbook)), 'env', { enumerable: false }) const contextVars = { origin, playbook, env } if (envConfig && typeof envConfig === 'object') { if (!Array.isArray(envConfig)) { diff --git a/packages/collector-extension/test/collector-extension-test.js b/packages/collector-extension/test/collector-extension-test.js index aa8a501..9b4c48a 100644 --- a/packages/collector-extension/test/collector-extension-test.js +++ b/packages/collector-extension/test/collector-extension-test.js @@ -1196,6 +1196,10 @@ describe('collector extension', () => { { command: '$NODE .gen-using-env.js', env: [ + { + name: 'ANTORA_PLAYBOOK', + value: '$' + '{{ playbook as json }}', + }, { name: 'ANTORA_COLLECTOR_ORIGIN', value: '$' + '{{ origin as json }}', @@ -1217,7 +1221,8 @@ describe('collector extension', () => { repoName: 'test-at-root', collectorConfig, before: (contentAggregate, playbook) => { - playbook.site = { title: 'My Site' } + playbook.site = { title: 'My Site', url: 'https://docs.example.org' } + Object.freeze(playbook) expect(contentAggregate).to.have.lengthOf(1) }, after: (contentAggregate) => { @@ -1229,6 +1234,8 @@ describe('collector extension', () => { refname:: main worktree:: ${expectedWorktree} site title:: My Site (test) + site url:: https://docs.example.org + env in playbook:: false ` expect(bucket.files).to.have.lengthOf(1) expect(bucket.files[0].path).to.equal('modules/ROOT/pages/index.adoc') diff --git a/packages/collector-extension/test/fixtures/test-at-root/.gen-using-env.js b/packages/collector-extension/test/fixtures/test-at-root/.gen-using-env.js index 999bc27..b9a2539 100644 --- a/packages/collector-extension/test/fixtures/test-at-root/.gen-using-env.js +++ b/packages/collector-extension/test/fixtures/test-at-root/.gen-using-env.js @@ -12,6 +12,7 @@ const fsp = require('node:fs/promises') contents = `= Refname\n\n${process.env.refname}` } else { const origin = JSON.parse(process.env.ANTORA_COLLECTOR_ORIGIN || '{}') + const playbook = JSON.parse(process.env.ANTORA_PLAYBOOK || '{}') contents = [ '= Origin Info', '', @@ -19,6 +20,8 @@ const fsp = require('node:fs/promises') 'refname:: ' + origin.refname, 'worktree:: ' + process.env.ANTORA_COLLECTOR_WORKTREE, 'site title:: ' + process.env.ANTORA_COLLECTOR_SITE_TITLE, + 'site url:: ' + playbook.site.url, + 'env in playbook:: ' + ('env' in playbook), ].join('\n') } await fsp.writeFile('build/modules/ROOT/pages/index.adoc', contents, 'utf8') -- GitLab