diff --git a/packages/shipjs/src/step/prepare/__tests__/updateChangelog.spec.js b/packages/shipjs/src/step/prepare/__tests__/updateChangelog.spec.js new file mode 100644 index 00000000..5a8f2166 --- /dev/null +++ b/packages/shipjs/src/step/prepare/__tests__/updateChangelog.spec.js @@ -0,0 +1,26 @@ +const path = require('path'); +import { prepareParams } from '../updateChangelog'; +import { parseArgs } from '../../../util'; +import tempWrite from 'temp-write'; + +describe('prepareParams', () => { + it('loads configuration from --config option', () => { + parseArgs.mockImplementation(jest.requireActual('../../../util').parseArgs); + const config = { + writerOpts: { + headerPartial: '## {{version}}', + }, + }; + const configString = `module.exports = ${JSON.stringify(config)};`; + const configPath = tempWrite.sync(configString); + const configDir = path.basename(path.dirname(configPath)); + + const { args } = prepareParams({ + dir: configDir, + conventionalChangelogArgs: `-i CHANGELOG.md -s --config ${configPath}`, + revisionRange: '1.0.0..1.0.1', + reject: () => {}, + }); + expect(args.config).toEqual(config); + }); +}); diff --git a/packages/shipjs/src/step/prepare/updateChangelog.js b/packages/shipjs/src/step/prepare/updateChangelog.js index 93a223d0..25353c12 100644 --- a/packages/shipjs/src/step/prepare/updateChangelog.js +++ b/packages/shipjs/src/step/prepare/updateChangelog.js @@ -78,7 +78,7 @@ const argSpec = { '-t': '--tag-prefix', }; -function prepareParams({ +export function prepareParams({ dir, conventionalChangelogArgs, releaseCount, @@ -118,6 +118,9 @@ function prepareParams({ } const templateContext = args.context && require(path.resolve(dir, args.context)); + if (args.config) { + args.config = require(path.resolve(dir, args.config)); + } return { args, gitRawCommitsOpts, templateContext }; }