test(dev-infra): extract commit message build function into testing util function (#41476)
Creates a testing utility function to build commit message strings. PR Close #41476
This commit is contained in:
parent
8b9d025b13
commit
7e6989ee4b
|
@ -7,9 +7,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {parseCommitMessage} from './parse';
|
import {parseCommitMessage} from './parse';
|
||||||
|
import {commitMessageBuilder, CommitMessageParts} from './test-util';
|
||||||
|
|
||||||
|
const commitValues: CommitMessageParts = {
|
||||||
const commitValues = {
|
|
||||||
prefix: '',
|
prefix: '',
|
||||||
type: 'fix',
|
type: 'fix',
|
||||||
npmScope: '',
|
npmScope: '',
|
||||||
|
@ -19,12 +19,7 @@ const commitValues = {
|
||||||
footer: 'Closes #1',
|
footer: 'Closes #1',
|
||||||
};
|
};
|
||||||
|
|
||||||
function buildCommitMessage(params: Partial<typeof commitValues> = {}) {
|
const buildCommitMessage = commitMessageBuilder(commitValues);
|
||||||
const {prefix, npmScope, type, scope, summary, body, footer} = {...commitValues, ...params};
|
|
||||||
const scopeSlug = npmScope ? `${npmScope}/${scope}` : scope;
|
|
||||||
return `${prefix}${type}${scopeSlug ? '(' + scopeSlug + ')' : ''}: ${summary}\n\n${body}\n\n${
|
|
||||||
footer}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
describe('commit message parsing:', () => {
|
describe('commit message parsing:', () => {
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright Google LLC All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
|
* found in the LICENSE file at https://angular.io/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** The parts that make up a commit message for creating a commit message string. */
|
||||||
|
export interface CommitMessageParts {
|
||||||
|
prefix: string;
|
||||||
|
type: string;
|
||||||
|
npmScope: string;
|
||||||
|
scope: string;
|
||||||
|
summary: string;
|
||||||
|
body: string;
|
||||||
|
footer: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a commit message builder function, using the provided defaults.
|
||||||
|
*/
|
||||||
|
export function commitMessageBuilder(defaults: CommitMessageParts) {
|
||||||
|
return (params: Partial<CommitMessageParts> = {}) => {
|
||||||
|
const {prefix, type, npmScope, scope, summary, body, footer} = {...defaults, ...params};
|
||||||
|
const scopeSlug = npmScope ? `${npmScope}/${scope}` : scope;
|
||||||
|
return `${prefix}${type}${scopeSlug ? '(' + scopeSlug + ')' : ''}: ${summary}\n\n${body}\n\n${
|
||||||
|
footer}`;
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue