mirror of
https://github.com/actions/stale.git
synced 2025-12-27 02:38:17 +00:00
* docs(only-labels): enhance the docs and fix duplicate (#341) * docs(only-labels): remove duplicated option and improve descriptions a bad rebase happend * docs(readme): use a multi-line array and remove the optional column the option column was not helpful since each value is optional the multi-line array will allow to have a better UI in small devices and basically in GitHub too due to the max-width * style(readme): break line for the statistics * docs(readme): add a better description for the ascending option * docs(action): add missing punctuation * build(deps-dev): bump @typescript-eslint/eslint-plugin (#342) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.15.2 to 4.16.1. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.16.1/packages/eslint-plugin) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump @octokit/rest from 18.3.0 to 18.3.2 (#350) Bumps [@octokit/rest](https://github.com/octokit/rest.js) from 18.3.0 to 18.3.2. - [Release notes](https://github.com/octokit/rest.js/releases) - [Commits](https://github.com/octokit/rest.js/compare/v18.3.0...v18.3.2) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * test: add more coverage for the stale label behaviour (#352) (#15) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * test: add more coverage for the stale label behaviour (#352) (#17) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * test: add more coverage for the stale label behaviour (#352) (#18) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat(logs): enhance the logs for assignees and milestones closes #381 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
799 lines
28 KiB
TypeScript
799 lines
28 KiB
TypeScript
import {DefaultProcessorOptions} from '../../__tests__/constants/default-processor-options';
|
|
import {generateIIssue} from '../../__tests__/functions/generate-iissue';
|
|
import {IIssue} from '../interfaces/issue';
|
|
import {IIssuesProcessorOptions} from '../interfaces/issues-processor-options';
|
|
import {Issue} from './issue';
|
|
import {Milestones} from './milestones';
|
|
|
|
describe('Milestones', (): void => {
|
|
let milestones: Milestones;
|
|
let optionsInterface: IIssuesProcessorOptions;
|
|
let issue: Issue;
|
|
let issueInterface: IIssue;
|
|
|
|
beforeEach((): void => {
|
|
optionsInterface = {...DefaultProcessorOptions, exemptAllMilestones: false};
|
|
issueInterface = generateIIssue();
|
|
});
|
|
|
|
describe('shouldExemptMilestones()', (): void => {
|
|
describe('when the given issue is not a pull request', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.pull_request = undefined;
|
|
});
|
|
|
|
describe('when the given options are not configured to exempt a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptMilestones = '';
|
|
});
|
|
|
|
describe('when the given options are not configured to exempt an issue milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptIssueMilestones = '';
|
|
});
|
|
|
|
describe('when the given issue does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-title'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given options are configured to exempt an issue milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptIssueMilestones =
|
|
'dummy-exempt-issue-milestone';
|
|
});
|
|
|
|
describe('when the given issue does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone different than the exempt issue milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-title'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone equaling the exempt issue milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-issue-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return true', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(true);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given options are configured to exempt a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptMilestones = 'dummy-exempt-milestone';
|
|
});
|
|
|
|
describe('when the given options are not configured to exempt an issue milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptIssueMilestones = '';
|
|
});
|
|
|
|
describe('when the given issue does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone different than the exempt milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-title'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone equaling the exempt milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return true', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(true);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given options are configured to exempt an issue milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptIssueMilestones =
|
|
'dummy-exempt-issue-milestone';
|
|
});
|
|
|
|
describe('when the given issue does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone different than the exempt issue milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-title'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone equaling the exempt issue milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-issue-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return true', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(true);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone different than the exempt milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-title'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone equaling the exempt milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given options are configured to exempt all milestones', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptAllMilestones = true;
|
|
});
|
|
|
|
describe('when the given issue does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-issue-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return true', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(true);
|
|
});
|
|
});
|
|
|
|
describe('when the given options are not configured to exempt all issue milestones', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptAllIssueMilestones = false;
|
|
});
|
|
|
|
describe('when the given issue does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given options are configured to exempt all issue milestones', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptAllIssueMilestones = true;
|
|
});
|
|
|
|
describe('when the given issue does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given issue does have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-issue-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return true', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(true);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given issue is a pull request', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.pull_request = {};
|
|
});
|
|
|
|
describe('when the given options are not configured to exempt a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptMilestones = '';
|
|
});
|
|
|
|
describe('when the given options are not configured to exempt a pull request milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptPrMilestones = '';
|
|
});
|
|
|
|
describe('when the given pull request does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-title'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given options are configured to exempt a pull request milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptPrMilestones = 'dummy-exempt-pr-milestone';
|
|
});
|
|
|
|
describe('when the given pull request does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone different than the exempt pull request milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-title'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone equaling the exempt pull request milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-pr-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return true', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(true);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given options are configured to exempt a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptMilestones = 'dummy-exempt-milestone';
|
|
});
|
|
|
|
describe('when the given options are not configured to exempt a pull request milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptPrMilestones = '';
|
|
});
|
|
|
|
describe('when the given pull request does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone different than the exempt milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-title'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone equaling the exempt milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return true', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(true);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given options are configured to exempt a pull request milestone', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptPrMilestones = 'dummy-exempt-pr-milestone';
|
|
});
|
|
|
|
describe('when the given pull request does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone different than the exempt pull request milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-title'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone equaling the exempt pull request milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-pr-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return true', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(true);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone different than the exempt milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-title'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone equaling the exempt milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given options are configured to exempt all milestones', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptAllMilestones = true;
|
|
});
|
|
|
|
describe('when the given pull request does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-pr-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return true', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(true);
|
|
});
|
|
});
|
|
|
|
describe('when the given options are not configured to exempt all pull request milestones', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptAllPrMilestones = false;
|
|
});
|
|
|
|
describe('when the given pull request does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('when the given options are configured to exempt all pull request milestones', (): void => {
|
|
beforeEach((): void => {
|
|
optionsInterface.exemptAllPrMilestones = true;
|
|
});
|
|
|
|
describe('when the given pull request does not have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = undefined;
|
|
});
|
|
|
|
it('should return false', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('when the given pull request does have a milestone', (): void => {
|
|
beforeEach((): void => {
|
|
issueInterface.milestone = {
|
|
title: 'dummy-exempt-pr-milestone'
|
|
};
|
|
});
|
|
|
|
it('should return true', (): void => {
|
|
expect.assertions(1);
|
|
issue = new Issue(optionsInterface, issueInterface);
|
|
milestones = new Milestones(optionsInterface, issue);
|
|
|
|
const result = milestones.shouldExemptMilestones();
|
|
|
|
expect(result).toStrictEqual(true);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|