UNPKG

@inett/semantic-release-unsquash

Version:

Forked version of semantic-release-unsquash w/o release-notes-generator

46 lines (39 loc) 1.69 kB
const parser = require('conventional-commits-parser'); const { defaultCommitAnalyzerConfig, defaultNotesGeneratorConfig, } = require('./defaults'); describe('default noteKeywords ordering', () => { it.each([ ['defaultCommitAnalyzerConfig', defaultCommitAnalyzerConfig], ['defaultNotesGeneratorConfig', defaultNotesGeneratorConfig], ])('%s lists longer keywords before shorter ones', (_name, config) => { const kws = config.parserOpts.noteKeywords; const breakingIdx = kws.indexOf('BREAKING'); const breakingChangeIdx = kws.indexOf('BREAKING CHANGE'); const breakingChangesIdx = kws.indexOf('BREAKING CHANGES'); expect(breakingIdx).toBeGreaterThan(-1); expect(breakingChangeIdx).toBeGreaterThan(-1); expect(breakingChangesIdx).toBeGreaterThan(-1); expect(breakingChangesIdx).toBeLessThan(breakingChangeIdx); expect(breakingChangeIdx).toBeLessThan(breakingIdx); }); }); describe('BREAKING note parsing with default keywords', () => { const configs = [ ['analyzer', defaultCommitAnalyzerConfig], ['notes', defaultNotesGeneratorConfig], ]; const keywords = ['BREAKING', 'BREAKING CHANGE', 'BREAKING CHANGES']; configs.forEach(([label, config]) => { keywords.forEach((keyword) => { it(`${label} parses "${keyword}:" cleanly without phantom prefix`, () => { const message = `feat(release)!: test\n\n${keyword}: This is the note content.`; const parsed = parser.sync(message, config.parserOpts); expect(parsed.notes).toHaveLength(1); expect(parsed.notes[0].title).toBe(keyword); expect(parsed.notes[0].text).toBe('This is the note content.'); }); }); }); });