UNPKG

commit-and-tag-version

Version:

replacement for `npm version` with automatic CHANGELOG generation

49 lines (42 loc) 1.39 kB
const gitSemverTags = require('git-semver-tags'); const conventionalChangelog = require('conventional-changelog'); const conventionalRecommendedBump = require('conventional-recommended-bump'); const { Readable } = require('stream'); jest.mock('conventional-changelog'); jest.mock('conventional-recommended-bump'); jest.mock('git-semver-tags'); const mockGitSemverTags = ({ tags = [] }) => { gitSemverTags.mockImplementation((opts, cb) => { if (tags instanceof Error) cb(tags); else cb(null, tags); }); }; const mockConventionalChangelog = ({ changelog }) => { conventionalChangelog.mockImplementation( (opt) => new Readable({ read(_size) { const next = changelog.shift(); if (next instanceof Error) { this.destroy(next); } else if (typeof next === 'function') { this.push(next(opt)); } else { this.push(next ? Buffer.from(next, 'utf8') : null); } }, }), ); }; const mockRecommendedBump = ({ bump }) => { conventionalRecommendedBump.mockImplementation((opt, parserOpts, cb) => { if (typeof bump === 'function') bump(opt, parserOpts, cb); else if (bump instanceof Error) cb(bump); else cb(null, bump ? { releaseType: bump } : {}); }); }; module.exports = { mockGitSemverTags, mockConventionalChangelog, mockRecommendedBump, };