import moment from 'moment' import {DefaultConfiguration} from '../src/configuration.js' import {PullRequestInfo} from '../src/pr-collector/pullRequests.js' import {GithubRepository} from '../src/repositories/GithubRepository.js' import {clear} from '../src/transform.js' import {buildChangelogTest, buildPullRequeset} from './utils.js' jest.setTimeout(180000) clear() const repositoryUtils = new GithubRepository(process.env.GITEA_TOKEN || '', undefined, '.') // test set of PRs with lables predefined const pullRequestsWithLabels: PullRequestInfo[] = [] pullRequestsWithLabels.push( buildPullRequeset(1, 'Core Feature Ticket', ['core', 'feature']), buildPullRequeset(2, 'Core Bug Ticket', ['core', 'bug']), buildPullRequeset(3, 'Mobile Feature Ticket', ['mobile', 'feature']), buildPullRequeset(4, 'Mobile Bug Ticket', ['mobile', 'bug']), buildPullRequeset(5, 'Mobile & Core Feature Ticket', ['core', 'mobile', 'feature']), buildPullRequeset(6, 'Mobile & Core Bug Ticket', ['core', 'mobile', 'bug']), buildPullRequeset(7, 'Mobile & Core Bug Bug Ticket', ['core', 'mobile', 'bug', 'fancy-bug']), buildPullRequeset(8, 'Core Ticket', ['core']) ) it('Match multiple labels exhaustive for category', async () => { const customConfig = Object.assign({}, DefaultConfiguration) customConfig.pr_template = '- #{{TITLE}}' customConfig.categories = [ { title: '## Core', labels: ['core'], consume: true, categories: [ { title: '### ๐Ÿš€ Features', labels: ['feature'] }, { title: '### ๐Ÿงช Bug', labels: ['bug'], categories: [ { title: '#### ๐Ÿงช Bug Bug', labels: ['fancy-bug'] } ] } ] }, { title: '## Mobile', labels: ['mobile'], consume: true, categories: [ { title: '### ๐Ÿš€ Features', labels: ['feature'] }, { title: '### ๐Ÿงช Bug', labels: ['bug'] } ] }, { title: '## Desktop', labels: ['desktop'], consume: true, categories: [ { title: '### ๐Ÿš€ Features', labels: ['feature'] }, { title: '### ๐Ÿงช Bug', labels: ['bug'] } ] } ] const built = buildChangelogTest(customConfig, pullRequestsWithLabels, repositoryUtils) expect(built).toStrictEqual( `## Core\n\n- Core Ticket\n\n### ๐Ÿš€ Features\n\n- Core Feature Ticket\n- Mobile & Core Feature Ticket\n\n### ๐Ÿงช Bug\n\n- Core Bug Ticket\n- Mobile & Core Bug Ticket\n\n#### ๐Ÿงช Bug Bug\n\n- Mobile & Core Bug Bug Ticket\n\n## Mobile\n\n\n### ๐Ÿš€ Features\n\n- Mobile Feature Ticket\n\n### ๐Ÿงช Bug\n\n- Mobile Bug Ticket\n\n` ) })