2019-06-20 19:37:28 +07:00
|
|
|
import { packageMeta } from '../../jest/unit/components/store/packageMeta';
|
2019-04-05 02:23:40 +07:00
|
|
|
|
2019-10-27 21:49:30 +07:00
|
|
|
import {
|
|
|
|
formatLicense,
|
|
|
|
formatRepository,
|
|
|
|
formatDate,
|
|
|
|
formatDateDistance,
|
|
|
|
getLastUpdatedPackageTime,
|
|
|
|
getRecentReleases,
|
|
|
|
} from './package';
|
2019-10-08 03:19:18 +07:00
|
|
|
|
2019-06-20 19:37:28 +07:00
|
|
|
describe('formatLicense', (): void => {
|
|
|
|
test('should check license field different values', (): void => {
|
2019-04-05 02:23:40 +07:00
|
|
|
expect(formatLicense('MIT')).toEqual('MIT');
|
|
|
|
});
|
2019-06-20 19:37:28 +07:00
|
|
|
|
|
|
|
test('should check license field for object value', (): void => {
|
2019-04-05 02:23:40 +07:00
|
|
|
const license = { type: 'ISC', url: 'https://opensource.org/licenses/ISC' };
|
|
|
|
expect(formatLicense(license)).toEqual('ISC');
|
|
|
|
});
|
2019-06-20 19:37:28 +07:00
|
|
|
|
|
|
|
test('should check license field for other value', (): void => {
|
2019-07-07 17:17:22 +07:00
|
|
|
expect(formatLicense(null)).toBeUndefined();
|
|
|
|
expect(formatLicense({})).toBeUndefined();
|
|
|
|
expect(formatLicense([])).toBeUndefined();
|
2019-04-05 02:23:40 +07:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2019-06-20 19:37:28 +07:00
|
|
|
describe('formatRepository', (): void => {
|
|
|
|
test('should check repository field different values', (): void => {
|
2019-04-05 02:23:40 +07:00
|
|
|
const repository = 'https://github.com/verdaccio/verdaccio';
|
|
|
|
expect(formatRepository(repository)).toEqual(repository);
|
|
|
|
});
|
2019-06-20 19:37:28 +07:00
|
|
|
|
|
|
|
test('should check repository field for object value', (): void => {
|
2019-04-05 02:23:40 +07:00
|
|
|
const license = {
|
|
|
|
type: 'git',
|
2019-06-20 19:37:28 +07:00
|
|
|
url: 'https://github.com/verdaccio/verdaccio',
|
2019-04-05 02:23:40 +07:00
|
|
|
};
|
|
|
|
expect(formatRepository(license)).toEqual(license.url);
|
|
|
|
});
|
2019-06-20 19:37:28 +07:00
|
|
|
|
|
|
|
test('should check repository field for other value', (): void => {
|
2019-04-05 02:23:40 +07:00
|
|
|
expect(formatRepository(null)).toBeNull();
|
|
|
|
expect(formatRepository({})).toBeNull();
|
|
|
|
expect(formatRepository([])).toBeNull();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2019-06-20 19:37:28 +07:00
|
|
|
describe('formatDate', (): void => {
|
|
|
|
test('should format the date', (): void => {
|
2019-04-05 02:23:40 +07:00
|
|
|
const date = 1532211072138;
|
|
|
|
expect(formatDate(date)).toEqual('21.07.2018, 22:11:12');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2019-06-20 19:37:28 +07:00
|
|
|
describe('formatDateDistance', (): void => {
|
|
|
|
test('should calculate the distance', (): void => {
|
2019-05-16 21:25:40 +07:00
|
|
|
// const dateAboutTwoMonthsAgo = () => {
|
|
|
|
// const date = new Date();
|
|
|
|
// date.setMonth(date.getMonth() - 1);
|
|
|
|
// date.setDate(date.getDay() - 20);
|
|
|
|
// return date;
|
|
|
|
// };
|
2019-06-20 19:37:28 +07:00
|
|
|
const dateTwoMonthsAgo = (): Date => {
|
2019-04-05 02:23:40 +07:00
|
|
|
const date = new Date();
|
|
|
|
date.setMonth(date.getMonth() - 2);
|
|
|
|
return date;
|
|
|
|
};
|
2019-05-16 21:25:40 +07:00
|
|
|
// const date1 = dateAboutTwoMonthsAgo();
|
2019-05-03 01:57:42 +07:00
|
|
|
const date2 = dateTwoMonthsAgo();
|
2019-05-16 21:25:40 +07:00
|
|
|
// FIXME: we need to review this expect, fails every x time.
|
|
|
|
// expect(formatDateDistance(date1)).toEqual('about 2 months');
|
2019-05-03 01:57:42 +07:00
|
|
|
expect(formatDateDistance(date2)).toEqual('2 months');
|
2019-04-05 02:23:40 +07:00
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2019-06-20 19:37:28 +07:00
|
|
|
describe('getLastUpdatedPackageTime', (): void => {
|
|
|
|
test('should get the last update time', (): void => {
|
2019-04-05 02:23:40 +07:00
|
|
|
const lastUpdated = packageMeta._uplinks;
|
2019-06-20 19:37:28 +07:00
|
|
|
expect(getLastUpdatedPackageTime(lastUpdated)).toEqual('22.07.2018, 22:11:12');
|
2019-04-05 02:23:40 +07:00
|
|
|
});
|
2019-06-20 19:37:28 +07:00
|
|
|
|
|
|
|
test('should get the last update time for blank uplink', (): void => {
|
2019-04-05 02:23:40 +07:00
|
|
|
const lastUpdated = {};
|
|
|
|
expect(getLastUpdatedPackageTime(lastUpdated)).toEqual('');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2019-06-20 19:37:28 +07:00
|
|
|
describe('getRecentReleases', (): void => {
|
|
|
|
test('should get the recent releases', (): void => {
|
2019-04-05 02:23:40 +07:00
|
|
|
const { time } = packageMeta;
|
|
|
|
const result = [
|
|
|
|
{ time: '14.12.2017, 15:43:27', version: '2.7.1' },
|
|
|
|
{ time: '05.12.2017, 23:25:06', version: '2.7.0' },
|
2019-06-20 19:37:28 +07:00
|
|
|
{ time: '08.11.2017, 22:47:16', version: '2.6.6' },
|
2019-04-05 02:23:40 +07:00
|
|
|
];
|
|
|
|
expect(getRecentReleases(time)).toEqual(result);
|
|
|
|
expect(getRecentReleases()).toEqual([]);
|
|
|
|
});
|
|
|
|
});
|