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:
Joey Perrott 2021-04-06 12:37:55 -07:00 committed by Zach Arend
parent 8b9d025b13
commit 7e6989ee4b
2 changed files with 33 additions and 8 deletions

View File

@ -7,9 +7,9 @@
*/
import {parseCommitMessage} from './parse';
import {commitMessageBuilder, CommitMessageParts} from './test-util';
const commitValues = {
const commitValues: CommitMessageParts = {
prefix: '',
type: 'fix',
npmScope: '',
@ -19,12 +19,7 @@ const commitValues = {
footer: 'Closes #1',
};
function buildCommitMessage(params: Partial<typeof 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}`;
}
const buildCommitMessage = commitMessageBuilder(commitValues);
describe('commit message parsing:', () => {

View File

@ -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}`;
};
}