mirror of
https://github.com/renovatebot/renovate.git
synced 2026-10-31 17:51:49 +00:00
05e1271376
Enables the vitest/prefer-expect-resolves oxlint rule and applies its autofix across the spec suite.
142 lines
3.5 KiB
TypeScript
142 lines
3.5 KiB
TypeScript
import { fs } from '~test/util.ts';
|
|
import { Lazy } from '../../../../util/lazy.ts';
|
|
import {
|
|
getNodeConstraint,
|
|
getNodeToolConstraint,
|
|
getNodeUpdate,
|
|
} from './node-version.ts';
|
|
|
|
vi.mock('../../../../util/fs/index.ts');
|
|
|
|
describe('modules/manager/npm/post-update/node-version', () => {
|
|
const config = {
|
|
packageFile: 'package.json',
|
|
constraints: { node: '^12.16.0' },
|
|
};
|
|
|
|
describe('getNodeConstraint()', () => {
|
|
it('returns from user constraints', async () => {
|
|
const res = await getNodeConstraint(
|
|
config,
|
|
[],
|
|
'',
|
|
new Lazy(() => Promise.resolve({})),
|
|
);
|
|
expect(res).toBe('^12.16.0');
|
|
expect(fs.readLocalFile).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it('returns .node-version value', async () => {
|
|
fs.readLocalFile.mockResolvedValueOnce(null);
|
|
fs.readLocalFile.mockResolvedValueOnce('12.16.1\n');
|
|
const res = await getNodeConstraint(
|
|
{},
|
|
[],
|
|
'',
|
|
new Lazy(() => Promise.resolve({})),
|
|
);
|
|
expect(res).toBe('12.16.1');
|
|
});
|
|
|
|
it('returns .nvmrc value', async () => {
|
|
fs.readLocalFile.mockResolvedValueOnce('12.16.2\n');
|
|
const res = await getNodeConstraint(
|
|
{},
|
|
[],
|
|
'',
|
|
new Lazy(() => Promise.resolve({})),
|
|
);
|
|
expect(res).toBe('12.16.2');
|
|
});
|
|
|
|
it('ignores unusable ranges in dotfiles', async () => {
|
|
fs.readLocalFile.mockResolvedValueOnce('latest');
|
|
fs.readLocalFile.mockResolvedValueOnce('lts');
|
|
const res = await getNodeConstraint(
|
|
{},
|
|
[],
|
|
'',
|
|
new Lazy(() => Promise.resolve({})),
|
|
);
|
|
expect(res).toBeNull();
|
|
});
|
|
|
|
it('returns from package.json', async () => {
|
|
const res = await getNodeConstraint(
|
|
{},
|
|
[],
|
|
'',
|
|
new Lazy(() => Promise.resolve({ engines: { node: '^12.16.3' } })),
|
|
);
|
|
expect(res).toBe('^12.16.3');
|
|
});
|
|
|
|
it('returns from package.json volta', async () => {
|
|
const res = await getNodeConstraint(
|
|
{},
|
|
[],
|
|
'',
|
|
new Lazy(() => Promise.resolve({ volta: { node: '14.17.0' } })),
|
|
);
|
|
expect(res).toBe('14.17.0');
|
|
});
|
|
|
|
it('prefers volta over engines', async () => {
|
|
const res = await getNodeConstraint(
|
|
{},
|
|
[],
|
|
'',
|
|
new Lazy(() =>
|
|
Promise.resolve({
|
|
volta: { node: '14.17.0' },
|
|
engines: { node: '^12.16.3' },
|
|
}),
|
|
),
|
|
);
|
|
expect(res).toBe('14.17.0');
|
|
});
|
|
});
|
|
|
|
describe('getNodeUpdate()', () => {
|
|
it('returns version', () => {
|
|
expect(getNodeUpdate([{ depName: 'node', newValue: '16.15.0' }])).toBe(
|
|
'16.15.0',
|
|
);
|
|
});
|
|
|
|
it('returns undefined', () => {
|
|
expect(getNodeUpdate([])).toBeUndefined();
|
|
});
|
|
});
|
|
|
|
describe('getNodeToolConstraint()', () => {
|
|
it('returns getNodeUpdate', async () => {
|
|
await expect(
|
|
getNodeToolConstraint(
|
|
config,
|
|
[{ depName: 'node', newValue: '16.15.0' }],
|
|
'',
|
|
new Lazy(() => Promise.resolve({})),
|
|
),
|
|
).resolves.toEqual({
|
|
toolName: 'node',
|
|
constraint: '16.15.0',
|
|
});
|
|
});
|
|
|
|
it('returns getNodeConstraint', async () => {
|
|
await expect(
|
|
getNodeToolConstraint(
|
|
config,
|
|
[],
|
|
'',
|
|
new Lazy(() => Promise.resolve({})),
|
|
),
|
|
).resolves.toEqual({
|
|
toolName: 'node',
|
|
constraint: '^12.16.0',
|
|
});
|
|
});
|
|
});
|
|
});
|