mirror of
https://github.com/actions/stale.git
synced 2025-12-11 04:32:53 +00:00
Remove the stale label when labeled with an exempt one (#268)
* refactor(issue): create a dedicated function to remove the stale label * refactor: prefix private methods with _ to make it consistent with others methods * feat(label): remove the stale label when labeled with an exempt one closes #136 * chore: fix logger issues due to rebase @hross I think there is a room for improvement regarding the class creation of the issue logger (code duplication) but I do not see how to do it without changing a lot of stuff; do you have an idea? * test: use strict equal and move the new test in a more logical position * docs(readme): fix parsing error of the default values in the table prettier was not liking the previous syntax
This commit is contained in:
committed by
GitHub
parent
3f95874437
commit
7f340a46f3
@@ -797,6 +797,7 @@ test('stale locked prs will not be closed', async () => {
|
||||
});
|
||||
|
||||
test('exempt issue labels will not be marked stale', async () => {
|
||||
expect.assertions(3);
|
||||
const TestIssueList: Issue[] = [
|
||||
generateIssue(1, 'My first issue', '2020-01-01T17:00:00Z', false, [
|
||||
'Exempt'
|
||||
@@ -817,8 +818,9 @@ test('exempt issue labels will not be marked stale', async () => {
|
||||
// process our fake issue list
|
||||
await processor.processIssues(1);
|
||||
|
||||
expect(processor.staleIssues.length).toEqual(0);
|
||||
expect(processor.closedIssues.length).toEqual(0);
|
||||
expect(processor.staleIssues.length).toStrictEqual(0);
|
||||
expect(processor.closedIssues.length).toStrictEqual(0);
|
||||
expect(processor.removedLabelIssues.length).toStrictEqual(0);
|
||||
});
|
||||
|
||||
test('exempt issue labels will not be marked stale (multi issue label with spaces)', async () => {
|
||||
@@ -892,6 +894,42 @@ test('exempt pr labels will not be marked stale', async () => {
|
||||
expect(processor.staleIssues.length).toEqual(2); // PR should get processed even though it has an exempt **issue** label
|
||||
});
|
||||
|
||||
test('exempt issue labels will not be marked stale and will remove the existing stale label', async () => {
|
||||
expect.assertions(3);
|
||||
|
||||
const TestIssueList: Issue[] = [
|
||||
generateIssue(1, 'My first issue', '2020-01-01T17:00:00Z', false, [
|
||||
'Exempt',
|
||||
'Stale'
|
||||
])
|
||||
];
|
||||
|
||||
const opts = {...DefaultProcessorOptions};
|
||||
opts.exemptIssueLabels = 'Exempt';
|
||||
|
||||
const processor = new IssueProcessor(
|
||||
opts,
|
||||
async () => 'abot',
|
||||
async p => (p == 1 ? TestIssueList : []),
|
||||
async (num: number, dt: string) => [
|
||||
{
|
||||
user: {
|
||||
login: 'notme',
|
||||
type: 'User'
|
||||
}
|
||||
}
|
||||
], // return a fake comment to indicate there was an update
|
||||
async (issue: Issue, label: string) => new Date().toDateString()
|
||||
);
|
||||
|
||||
// process our fake issue list
|
||||
await processor.processIssues(1);
|
||||
|
||||
expect(processor.staleIssues.length).toStrictEqual(0);
|
||||
expect(processor.closedIssues.length).toStrictEqual(0);
|
||||
expect(processor.removedLabelIssues.length).toStrictEqual(1);
|
||||
});
|
||||
|
||||
test('stale issues should not be closed if days is set to -1', async () => {
|
||||
const TestIssueList: Issue[] = [
|
||||
generateIssue(1, 'My first issue', '2020-01-01T17:00:00Z', false, [
|
||||
@@ -1150,7 +1188,7 @@ test('skips stale message on issues when skip-stale-issue-message is set', async
|
||||
);
|
||||
|
||||
// for sake of testing, mocking private function
|
||||
const markSpy = jest.spyOn(processor as any, 'markStale');
|
||||
const markSpy = jest.spyOn(processor as any, '_markStale');
|
||||
|
||||
await processor.processIssues(1);
|
||||
|
||||
@@ -1195,7 +1233,7 @@ test('skips stale message on prs when skip-stale-pr-message is set', async () =>
|
||||
);
|
||||
|
||||
// for sake of testing, mocking private function
|
||||
const markSpy = jest.spyOn(processor as any, 'markStale');
|
||||
const markSpy = jest.spyOn(processor as any, '_markStale');
|
||||
|
||||
await processor.processIssues(1);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user