feat: Created new getPullRequestGroupConfigs function.
Signed-off-by: Marley Powell <Marley.Powell@exclaimer.com>
This commit is contained in:
@@ -132,7 +132,7 @@ describe('getPullRequestGroups', () => {
|
||||
{ title: 'Other PRs', filter: (_: unknown) => true, simplified: true },
|
||||
];
|
||||
|
||||
const result = getPullRequestGroups(pullRequests, configs);
|
||||
const result = getPullRequestGroups(pullRequests, configs) ?? [];
|
||||
|
||||
expect(result.length).toBe(2);
|
||||
|
||||
|
||||
@@ -19,25 +19,13 @@ import {
|
||||
PullRequestVoteStatus,
|
||||
Reviewer,
|
||||
} from '@backstage/plugin-azure-devops-common';
|
||||
import { Filter, createFilter } from './filters';
|
||||
import {
|
||||
PullRequestFilter,
|
||||
PullRequestColumnConfig,
|
||||
PullRequestGroup,
|
||||
PullRequestGroupConfig,
|
||||
} from './types';
|
||||
|
||||
/**
|
||||
* Creates a filter that matches pull requests created by `userEmail`.
|
||||
* @param userEmail an email to filter by.
|
||||
* @returns a filter for pull requests created by `userEmail`.
|
||||
*/
|
||||
export function getCreatedByUserFilter(
|
||||
userEmail: string | undefined,
|
||||
): PullRequestFilter {
|
||||
return (pullRequest: DashboardPullRequest): boolean =>
|
||||
pullRequest.createdBy?.uniqueName?.toLocaleLowerCase() ===
|
||||
userEmail?.toLocaleLowerCase();
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters a reviewer based on vote status and if the reviewer is required.
|
||||
* @param reviewer a reviewer to filter.
|
||||
@@ -97,9 +85,13 @@ export function arrayExtract<T>(arr: T[], filter: (value: T) => unknown): T[] {
|
||||
* @returns a list of pull request groups.
|
||||
*/
|
||||
export function getPullRequestGroups(
|
||||
pullRequests: DashboardPullRequest[],
|
||||
pullRequests: DashboardPullRequest[] | undefined,
|
||||
configs: PullRequestGroupConfig[],
|
||||
): PullRequestGroup[] {
|
||||
): PullRequestGroup[] | undefined {
|
||||
if (!pullRequests) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const remainingPullRequests: DashboardPullRequest[] = [...pullRequests];
|
||||
const pullRequestGroups: PullRequestGroup[] = [];
|
||||
|
||||
@@ -115,3 +107,17 @@ export function getPullRequestGroups(
|
||||
|
||||
return pullRequestGroups;
|
||||
}
|
||||
|
||||
export function getPullRequestGroupConfigs(
|
||||
columnConfigs: PullRequestColumnConfig[],
|
||||
filterProcessor: (filters: Filter[]) => Filter[],
|
||||
): PullRequestGroupConfig[] {
|
||||
return columnConfigs.map(columnConfig => {
|
||||
const filters = filterProcessor(columnConfig.filters);
|
||||
return {
|
||||
title: columnConfig.title,
|
||||
filter: createFilter(filters),
|
||||
simplified: columnConfig.simplified,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user