add test combining number and status

This commit is contained in:
Federico M. Facca
2023-05-03 16:55:49 +02:00
parent aa0c892e1d
commit fa8d0100dc
+93 -16
View File
@@ -310,6 +310,46 @@ pullRequestsWithLabels.push(
} }
) )
const openPullRequestsWithLabels: PullRequestInfo[] = []
openPullRequestsWithLabels.push(
{
number: 6,
title: 'Still pending open pull request (Current)',
htmlURL: '',
baseBranch: '',
createdAt: moment(),
mergedAt: moment(),
mergeCommitSha: 'sha1',
author: 'Mike',
repoName: 'test-repo',
labels: new Set<string>().add('feature'),
milestone: '',
body: 'Some fancy body message',
assignees: [],
requestedReviewers: [],
approvedReviewers: [],
status: 'open'
},
{
number: 7,
title: 'Still pending open pull request',
htmlURL: '',
baseBranch: '',
createdAt: moment(),
mergedAt: moment(),
mergeCommitSha: 'sha1',
author: 'Mike',
repoName: 'test-repo',
labels: new Set<string>().add('feature'),
milestone: '',
body: 'Some fancy body message',
assignees: [],
requestedReviewers: [],
approvedReviewers: [],
status: 'open'
}
)
it('Match multiple labels exhaustive for category', async () => { it('Match multiple labels exhaustive for category', async () => {
const customConfig = Object.assign({}, DefaultConfiguration) const customConfig = Object.assign({}, DefaultConfiguration)
customConfig.categories = [ customConfig.categories = [
@@ -417,9 +457,7 @@ it('Release Diff', async () => {
configuration: customConfig configuration: customConfig
}) })
expect(resultChangelog).toStrictEqual( expect(resultChangelog).toStrictEqual(`https://github.com/mikepenz/release-changelog-builder-action/compare/v2.8.0...v2.8.1\n`)
`https://github.com/mikepenz/release-changelog-builder-action/compare/v2.8.0...v2.8.1\n`
)
}) })
it('Use exclude labels to not include a PR within a category.', async () => { it('Use exclude labels to not include a PR within a category.', async () => {
@@ -492,7 +530,6 @@ it('Extract custom placeholder from PR body and replace in global template', asy
) )
}) })
it('Use Rules to include a PR within a Category.', async () => { it('Use Rules to include a PR within a Category.', async () => {
const customConfig = Object.assign({}, DefaultConfiguration) const customConfig = Object.assign({}, DefaultConfiguration)
customConfig.categories = [ customConfig.categories = [
@@ -502,12 +539,12 @@ it('Use Rules to include a PR within a Category.', async () => {
exclude_labels: ['Fix'], exclude_labels: ['Fix'],
rules: [ rules: [
{ {
pattern: "\[ABC-1234\]", pattern: '[ABC-1234]',
on_property: "title" on_property: 'title'
}, },
{ {
pattern: "merged", pattern: 'merged',
on_property: "status" on_property: 'status'
} }
], ],
exhaustive: true exhaustive: true
@@ -528,14 +565,53 @@ it('Use Rules to get all open PRs in a Category.', async () => {
title: '## Open PRs only', title: '## Open PRs only',
rules: [ rules: [
{ {
pattern: "open", pattern: 'open',
on_property: "status" on_property: 'status'
} }
] ]
} }
] ]
expect(buildChangelogTest(customConfig, prs)).toStrictEqual(`## Open PRs only\n\n- Still pending open pull request\n - PR: #6\n\n`)
})
it('Use Rules to get current open PR and merged categorised.', async () => {
let prs = Array.from(pullRequestsWithLabels)
prs.concat(Array.from(openPullRequestsWithLabels))
const customConfig = Object.assign({}, DefaultConfiguration)
customConfig.categories = [
{
title: '## 🚀 Features',
labels: ['Feature'],
rules: [
{
pattern: '6',
on_property: 'number'
},
{
pattern: 'merged',
on_property: 'status'
}
],
exhaustive: true
},{
title: '## 🐛 Issues',
labels: ['Issue'],
rules: [
{
pattern: 'merged',
on_property: 'status'
}
],
exhaustive: true
}
]
console.log(buildChangelogTest(customConfig, prs))
expect(buildChangelogTest(customConfig, prs)).toStrictEqual( expect(buildChangelogTest(customConfig, prs)).toStrictEqual(
`## Open PRs only\n\n- Still pending open pull request\n - PR: #6\n\n` `## 🚀 Features\n\n- [ABC-1234] - this is a PR 1 title message\n - PR: #1\n- [ABC-1234] - this is a PR 3 title message\n - PR: #3\n- Still pending open pull request\n - PR: #6\n\n## 🐛 Issues\n\n- [ABC-4321] - this is a PR 2 title message\n - PR: #2\n- [ABC-1234] - this is a PR 3 title message\n - PR: #3\n\n`
) )
}) })
@@ -549,8 +625,8 @@ it('Use Rules to get all open PRs in one Category and merged categorised.', asyn
title: '## Open PRs only', title: '## Open PRs only',
rules: [ rules: [
{ {
pattern: "open", pattern: 'open',
on_property: "status" on_property: 'status'
} }
] ]
}, },
@@ -559,11 +635,11 @@ it('Use Rules to get all open PRs in one Category and merged categorised.', asyn
labels: ['Feature', 'Issue'], labels: ['Feature', 'Issue'],
rules: [ rules: [
{ {
pattern: "merged", pattern: 'merged',
on_property: "status" on_property: 'status'
} }
], ],
exhaustive: true, exhaustive: true
} }
] ]
expect(buildChangelogTest(customConfig, prs)).toStrictEqual( expect(buildChangelogTest(customConfig, prs)).toStrictEqual(
@@ -571,6 +647,7 @@ it('Use Rules to get all open PRs in one Category and merged categorised.', asyn
) )
}) })
function buildChangelogTest(config: Configuration, prs: PullRequestInfo[]): string { function buildChangelogTest(config: Configuration, prs: PullRequestInfo[]): string {
return buildChangelog(DefaultDiffInfo, prs, { return buildChangelog(DefaultDiffInfo, prs, {
owner: 'mikepenz', owner: 'mikepenz',