the reminder not showing content on the card at dashboard view and the quizes are hardcoded must move to the db make api's for it
83 lines
2.3 KiB
TypeScript
83 lines
2.3 KiB
TypeScript
import hasNewVersion from './hasNewVersion';
|
|
import { getLastUpdate } from './cache';
|
|
import getDistVersion from './getDistVersion';
|
|
|
|
jest.mock('./getDistVersion', () => jest.fn().mockReturnValue('1.0.0'));
|
|
jest.mock('./cache', () => ({
|
|
getLastUpdate: jest.fn().mockReturnValue(undefined),
|
|
createConfigDir: jest.fn(),
|
|
saveLastUpdate: jest.fn(),
|
|
}));
|
|
|
|
const pkg = { name: 'test', version: '1.0.0' };
|
|
|
|
afterEach(() => jest.clearAllMocks());
|
|
|
|
const defaultArgs = {
|
|
pkg,
|
|
shouldNotifyInNpmScript: true,
|
|
alwaysRun: true,
|
|
};
|
|
|
|
test('it should not trigger update for same version', async () => {
|
|
const newVersion = await hasNewVersion(defaultArgs);
|
|
|
|
expect(newVersion).toBe(false);
|
|
});
|
|
|
|
test('it should trigger update for patch version bump', async () => {
|
|
(getDistVersion as jest.Mock).mockReturnValue('1.0.1');
|
|
|
|
const newVersion = await hasNewVersion(defaultArgs);
|
|
|
|
expect(newVersion).toBe('1.0.1');
|
|
});
|
|
|
|
test('it should trigger update for minor version bump', async () => {
|
|
(getDistVersion as jest.Mock).mockReturnValue('1.1.0');
|
|
|
|
const newVersion = await hasNewVersion(defaultArgs);
|
|
|
|
expect(newVersion).toBe('1.1.0');
|
|
});
|
|
|
|
test('it should trigger update for major version bump', async () => {
|
|
(getDistVersion as jest.Mock).mockReturnValue('2.0.0');
|
|
|
|
const newVersion = await hasNewVersion(defaultArgs);
|
|
|
|
expect(newVersion).toBe('2.0.0');
|
|
});
|
|
|
|
test('it should not trigger update if version is lower', async () => {
|
|
(getDistVersion as jest.Mock).mockReturnValue('0.0.9');
|
|
|
|
const newVersion = await hasNewVersion(defaultArgs);
|
|
|
|
expect(newVersion).toBe(false);
|
|
});
|
|
|
|
it('should trigger update check if last update older than config', async () => {
|
|
const TWO_WEEKS = new Date().getTime() - 1000 * 60 * 60 * 24 * 14;
|
|
(getLastUpdate as jest.Mock).mockReturnValue(TWO_WEEKS);
|
|
const newVersion = await hasNewVersion({
|
|
pkg,
|
|
shouldNotifyInNpmScript: true,
|
|
});
|
|
|
|
expect(newVersion).toBe(false);
|
|
expect(getDistVersion).toHaveBeenCalled();
|
|
});
|
|
|
|
it('should not trigger update check if last update is too recent', async () => {
|
|
const TWELVE_HOURS = new Date().getTime() - 1000 * 60 * 60 * 12;
|
|
(getLastUpdate as jest.Mock).mockReturnValue(TWELVE_HOURS);
|
|
const newVersion = await hasNewVersion({
|
|
pkg,
|
|
shouldNotifyInNpmScript: true,
|
|
});
|
|
|
|
expect(newVersion).toBe(false);
|
|
expect(getDistVersion).not.toHaveBeenCalled();
|
|
});
|