feat(issue-41): set and inherit labels (#48)

fix https://github.com/kiegroup/git-backporting/issues/41
This commit is contained in:
Andrea Lamparelli 2023-07-10 08:49:11 +02:00 committed by GitHub
parent f923f7f4c2
commit fcc01673f4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 962 additions and 140 deletions

View file

@ -1,5 +1,6 @@
import { parseArgs, readConfigFile } from "@bp/service/args/args-utils";
import { createTestFile, removeTestFile } from "../../support/utils";
import { getAsCleanedCommaSeparatedList, getAsCommaSeparatedList, getOrUndefined, parseArgs, readConfigFile } from "@bp/service/args/args-utils";
import { createTestFile, expectArrayEqual, removeTestFile, spyGetInput } from "../../support/utils";
import { getInput } from "@actions/core";
const RANDOM_CONFIG_FILE_CONTENT_PATHNAME = "./args-utils-test-random-config-file.json";
const RANDOM_CONFIG_FILE_CONTENT = {
@ -39,4 +40,39 @@ describe("args utils test suite", () => {
test("check readConfigFile function", () => {
expect(readConfigFile(RANDOM_CONFIG_FILE_CONTENT_PATHNAME)).toStrictEqual(RANDOM_CONFIG_FILE_CONTENT);
});
test("gha getOrUndefined", () => {
spyGetInput({
"present": "value",
"empty": "",
});
expect(getOrUndefined(getInput("empty"))).toStrictEqual(undefined);
expect(getOrUndefined(getInput("present"))).toStrictEqual("value");
});
test("gha getAsCleanedCommaSeparatedList", () => {
spyGetInput({
"present": "value1, value2 , value3",
"empty": "",
"blank": " ",
"inner": " inner spaces ",
});
expectArrayEqual(getAsCleanedCommaSeparatedList(getInput("present"))!, ["value1", "value2", "value3"]);
expect(getAsCleanedCommaSeparatedList(getInput("empty"))).toStrictEqual(undefined);
expect(getAsCleanedCommaSeparatedList(getInput("blank"))).toStrictEqual(undefined);
expect(getAsCleanedCommaSeparatedList(getInput("inner"))).toStrictEqual(["innerspaces"]);
});
test("gha getAsCommaSeparatedList", () => {
spyGetInput({
"present": "value1, value2 , value3",
"empty": "",
"blank": " ",
"inner": " inner spaces ",
});
expectArrayEqual(getAsCommaSeparatedList(getInput("present"))!, ["value1", "value2", "value3"]);
expect(getAsCommaSeparatedList(getInput("empty"))).toStrictEqual(undefined);
expect(getAsCommaSeparatedList(getInput("blank"))).toStrictEqual(undefined);
expectArrayEqual(getAsCommaSeparatedList(getInput("inner"))!, ["inner spaces"]);
});
});

View file

@ -24,6 +24,8 @@ const RANDOM_CONFIG_FILE_CONTENT = {
"reviewers": ["reviewer1", "reviewer2"],
"assignees": ["assignee1", "assignee2"],
"inheritReviewers": true,
"labels": ["cherry-pick :cherries:"],
"inheritLabels": true,
};
describe("cli args parser", () => {
@ -72,6 +74,8 @@ describe("cli args parser", () => {
expect(args.reviewers).toEqual([]);
expect(args.assignees).toEqual([]);
expect(args.inheritReviewers).toEqual(true);
expect(args.labels).toEqual([]);
expect(args.inheritLabels).toEqual(false);
});
test("with config file [default, short]", () => {
@ -95,6 +99,8 @@ describe("cli args parser", () => {
expect(args.reviewers).toEqual([]);
expect(args.assignees).toEqual([]);
expect(args.inheritReviewers).toEqual(true);
expect(args.labels).toEqual([]);
expect(args.inheritLabels).toEqual(false);
});
test("valid execution [default, long]", () => {
@ -120,6 +126,8 @@ describe("cli args parser", () => {
expect(args.reviewers).toEqual([]);
expect(args.assignees).toEqual([]);
expect(args.inheritReviewers).toEqual(true);
expect(args.labels).toEqual([]);
expect(args.inheritLabels).toEqual(false);
});
test("with config file [default, long]", () => {
@ -143,6 +151,8 @@ describe("cli args parser", () => {
expect(args.reviewers).toEqual([]);
expect(args.assignees).toEqual([]);
expect(args.inheritReviewers).toEqual(true);
expect(args.labels).toEqual([]);
expect(args.inheritLabels).toEqual(false);
});
test("valid execution [override, short]", () => {
@ -175,6 +185,8 @@ describe("cli args parser", () => {
expect(args.reviewers).toEqual([]);
expect(args.assignees).toEqual([]);
expect(args.inheritReviewers).toEqual(true);
expect(args.labels).toEqual([]);
expect(args.inheritLabels).toEqual(false);
});
test("valid execution [override, long]", () => {
@ -203,6 +215,9 @@ describe("cli args parser", () => {
"--assignees",
" pippo,pluto, paperino",
"--no-inherit-reviewers",
"--labels",
"cherry-pick :cherries:, another spaced label",
"--inherit-labels",
]);
const args: Args = parser.parse();
@ -220,6 +235,8 @@ describe("cli args parser", () => {
expectArrayEqual(args.reviewers!, ["al", "john", "jack"]);
expectArrayEqual(args.assignees!, ["pippo", "pluto", "paperino"]);
expect(args.inheritReviewers).toEqual(false);
expectArrayEqual(args.labels!, ["cherry-pick :cherries:", "another spaced label"]);
expect(args.inheritLabels).toEqual(true);
});
test("override using config file", () => {
@ -243,6 +260,8 @@ describe("cli args parser", () => {
expectArrayEqual(args.reviewers!, ["reviewer1", "reviewer2"]);
expectArrayEqual(args.assignees!,["assignee1", "assignee2"]);
expect(args.inheritReviewers).toEqual(true);
expectArrayEqual(args.labels!, ["cherry-pick :cherries:"]);
expect(args.inheritLabels).toEqual(true);
});
test("ignore custom option when config file is set", () => {
@ -273,6 +292,9 @@ describe("cli args parser", () => {
"--assignees",
" pippo,pluto, paperino",
"--no-inherit-reviewers",
"--labels",
"cherry-pick :cherries:, another spaced label",
"--inherit-labels",
]);
const args: Args = parser.parse();
@ -290,5 +312,7 @@ describe("cli args parser", () => {
expectArrayEqual(args.reviewers!, ["reviewer1", "reviewer2"]);
expectArrayEqual(args.assignees!,["assignee1", "assignee2"]);
expect(args.inheritReviewers).toEqual(true);
expectArrayEqual(args.labels!, ["cherry-pick :cherries:"]);
expect(args.inheritLabels).toEqual(true);
});
});

View file

@ -24,6 +24,8 @@ const RANDOM_CONFIG_FILE_CONTENT = {
"reviewers": ["reviewer1", "reviewer2"],
"assignees": ["assignee1", "assignee2"],
"inheritReviewers": true,
"labels": ["cherry-pick :cherries:"],
"inheritLabels": true,
};
describe("gha args parser", () => {
@ -50,26 +52,6 @@ describe("gha args parser", () => {
jest.clearAllMocks();
});
test("getOrUndefined", () => {
spyGetInput({
"present": "value",
"empty": "",
});
expect(parser.getOrUndefined("empty")).toStrictEqual(undefined);
expect(parser.getOrUndefined("present")).toStrictEqual("value");
});
test("getAsCommaSeparatedList", () => {
spyGetInput({
"present": "value1, value2 , value3",
"empty": "",
"blank": " ",
});
expectArrayEqual(parser.getAsCommaSeparatedList("present")!, ["value1", "value2", "value3"]);
expect(parser.getAsCommaSeparatedList("empty")).toStrictEqual(undefined);
expect(parser.getAsCommaSeparatedList("blank")).toStrictEqual(undefined);
});
test("valid execution [default]", () => {
spyGetInput({
"target-branch": "target",
@ -89,6 +71,8 @@ describe("gha args parser", () => {
expect(args.reviewers).toEqual([]);
expect(args.assignees).toEqual([]);
expect(args.inheritReviewers).toEqual(true);
expect(args.labels).toEqual([]);
expect(args.inheritLabels).toEqual(false);
});
test("valid execution [override]", () => {
@ -106,6 +90,8 @@ describe("gha args parser", () => {
"reviewers": "al , john, jack",
"assignees": " pippo,pluto, paperino",
"no-inherit-reviewers": "true",
"labels": "cherry-pick :cherries:, another spaced label",
"inherit-labels": "true"
});
const args: Args = parser.parse();
@ -123,6 +109,8 @@ describe("gha args parser", () => {
expectArrayEqual(args.reviewers!, ["al", "john", "jack"]);
expectArrayEqual(args.assignees!, ["pippo", "pluto", "paperino"]);
expect(args.inheritReviewers).toEqual(false);
expectArrayEqual(args.labels!, ["cherry-pick :cherries:", "another spaced label"]);
expect(args.inheritLabels).toEqual(true);
});
test("using config file", () => {
@ -145,6 +133,8 @@ describe("gha args parser", () => {
expect(args.reviewers).toEqual([]);
expect(args.assignees).toEqual([]);
expect(args.inheritReviewers).toEqual(true);
expectArrayEqual(args.labels!, []);
expect(args.inheritLabels).toEqual(false);
});
test("ignore custom options when using config file", () => {
@ -163,6 +153,8 @@ describe("gha args parser", () => {
"reviewers": "al , john, jack",
"assignees": " pippo,pluto, paperino",
"no-inherit-reviewers": "true",
"labels": "cherry-pick :cherries:, another spaced label",
"inherit-labels": "false"
});
const args: Args = parser.parse();
@ -180,5 +172,7 @@ describe("gha args parser", () => {
expectArrayEqual(args.reviewers!, ["reviewer1", "reviewer2"]);
expectArrayEqual(args.assignees!,["assignee1", "assignee2"]);
expect(args.inheritReviewers).toEqual(true);
expectArrayEqual(args.labels!, ["cherry-pick :cherries:"]);
expect(args.inheritLabels).toEqual(true);
});
});