summaryrefslogtreecommitdiff
path: root/packages/cli/src/utils/userStartupWarnings.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/utils/userStartupWarnings.test.ts')
-rw-r--r--packages/cli/src/utils/userStartupWarnings.test.ts46
1 files changed, 46 insertions, 0 deletions
diff --git a/packages/cli/src/utils/userStartupWarnings.test.ts b/packages/cli/src/utils/userStartupWarnings.test.ts
index 61053029..8210d4e3 100644
--- a/packages/cli/src/utils/userStartupWarnings.test.ts
+++ b/packages/cli/src/utils/userStartupWarnings.test.ts
@@ -8,6 +8,7 @@ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
import { getUserStartupWarnings } from './userStartupWarnings.js';
import * as os from 'os';
import fs from 'fs/promises';
+import semver from 'semver';
vi.mock('os', () => ({
default: { homedir: vi.fn() },
@@ -18,6 +19,13 @@ vi.mock('fs/promises', () => ({
default: { realpath: vi.fn() },
}));
+vi.mock('semver', () => ({
+ default: {
+ major: vi.fn(),
+ },
+ major: vi.fn(),
+}));
+
describe('getUserStartupWarnings', () => {
const homeDir = '/home/user';
@@ -66,6 +74,44 @@ describe('getUserStartupWarnings', () => {
});
});
+ function setNodeVersionMajor(majorVersion: number) {
+ vi.mocked(semver.major).mockReturnValue(majorVersion);
+ }
+
+ describe('node version check', () => {
+ afterEach(() => {
+ setNodeVersionMajor(20);
+ });
+
+ it('should return a warning if Node.js version is less than minMajor', async () => {
+ setNodeVersionMajor(18);
+ const warnings = await getUserStartupWarnings('');
+ expect(warnings).toHaveLength(1);
+ expect(warnings[0]).toContain('Node.js');
+ expect(warnings[0]).toContain('requires Node.js 20 or higher');
+ });
+
+ it('should not return a warning if Node.js version is equal to minMajor', async () => {
+ setNodeVersionMajor(20);
+ const warnings = await getUserStartupWarnings('');
+ expect(warnings).toEqual([]);
+ });
+
+ it('should not return a warning if Node.js version is greater than minMajor', async () => {
+ setNodeVersionMajor(22);
+ const warnings = await getUserStartupWarnings('');
+ expect(warnings).toEqual([]);
+ });
+
+ it('should use default minMajor=20 if not provided', async () => {
+ setNodeVersionMajor(18);
+ const warnings = await getUserStartupWarnings('');
+ expect(warnings).toHaveLength(1);
+ expect(warnings[0]).toContain('Node.js');
+ expect(warnings[0]).toContain('requires Node.js 20 or higher');
+ });
+ });
+
// // Example of how to add a new check:
// describe('node version check', () => {
// // Tests for node version check would go here