mirror of
https://code.forgejo.org/actions/git-backporting.git
synced 2025-05-15 10:09:12 -04:00
feat(issue-41): set and inherit labels (#48)
fix https://github.com/kiegroup/git-backporting/issues/41
This commit is contained in:
parent
f923f7f4c2
commit
fcc01673f4
28 changed files with 962 additions and 140 deletions
|
@ -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"]);
|
||||
});
|
||||
});
|
|
@ -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);
|
||||
});
|
||||
});
|
|
@ -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);
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue