mirror of
https://github.com/renovatebot/renovate.git
synced 2026-10-27 07:50:47 +00:00
80 lines
2.4 KiB
TypeScript
80 lines
2.4 KiB
TypeScript
import * as _dateUtil from './date.ts';
|
|
import { checkMinimumReleaseAge } from './minimum-release-age.ts';
|
|
import { toMs } from './pretty-time.ts';
|
|
import type { Timestamp } from './timestamp.ts';
|
|
|
|
vi.mock('./date.ts');
|
|
const dateUtil = vi.mocked(_dateUtil);
|
|
|
|
describe('util/minimum-release-age', () => {
|
|
describe('.checkMinimumReleaseAge()', () => {
|
|
it('is not pending if minimumReleaseAge is not set', () => {
|
|
const res = checkMinimumReleaseAge(
|
|
{},
|
|
'2021-01-01T00:00:00.000Z' as Timestamp,
|
|
);
|
|
expect(res).toEqual({
|
|
isPending: false,
|
|
minimumReleaseAgeMs: 0,
|
|
hasTimestamp: true,
|
|
});
|
|
});
|
|
|
|
it('is pending if the release is younger than minimumReleaseAge', () => {
|
|
dateUtil.getElapsedMs.mockReturnValueOnce(toMs('1 day') ?? 0);
|
|
const res = checkMinimumReleaseAge(
|
|
{ minimumReleaseAge: '3 days' },
|
|
'2021-01-01T00:00:00.000Z' as Timestamp,
|
|
);
|
|
expect(res).toEqual({
|
|
isPending: true,
|
|
minimumReleaseAgeMs: toMs('3 days'),
|
|
hasTimestamp: true,
|
|
});
|
|
});
|
|
|
|
it('is not pending if the release is older than minimumReleaseAge', () => {
|
|
dateUtil.getElapsedMs.mockReturnValueOnce(toMs('5 days') ?? 0);
|
|
const res = checkMinimumReleaseAge(
|
|
{ minimumReleaseAge: '3 days' },
|
|
'2021-01-01T00:00:00.000Z' as Timestamp,
|
|
);
|
|
expect(res).toEqual({
|
|
isPending: false,
|
|
minimumReleaseAgeMs: toMs('3 days'),
|
|
hasTimestamp: true,
|
|
});
|
|
});
|
|
|
|
it('is pending with a missing timestamp if minimumReleaseAgeBehaviour=timestamp-required', () => {
|
|
const res = checkMinimumReleaseAge(
|
|
{
|
|
minimumReleaseAge: '3 days',
|
|
minimumReleaseAgeBehaviour: 'timestamp-required',
|
|
},
|
|
undefined,
|
|
);
|
|
expect(res).toEqual({
|
|
isPending: true,
|
|
minimumReleaseAgeMs: toMs('3 days'),
|
|
hasTimestamp: false,
|
|
});
|
|
});
|
|
|
|
it('is not pending with a missing timestamp if minimumReleaseAgeBehaviour=timestamp-optional', () => {
|
|
const res = checkMinimumReleaseAge(
|
|
{
|
|
minimumReleaseAge: '3 days',
|
|
minimumReleaseAgeBehaviour: 'timestamp-optional',
|
|
},
|
|
undefined,
|
|
);
|
|
expect(res).toEqual({
|
|
isPending: false,
|
|
minimumReleaseAgeMs: toMs('3 days'),
|
|
hasTimestamp: false,
|
|
});
|
|
});
|
|
});
|
|
});
|