mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-27 13:34:15 -07:00
feat(core): Add support for listing experiments (#12495)
This commit is contained in:
@@ -5,7 +5,14 @@
|
||||
*/
|
||||
|
||||
import { vi, describe, it, expect, beforeEach } from 'vitest';
|
||||
import { isNightly, isPreview, isStable, _clearCache } from './channel.js';
|
||||
import {
|
||||
ReleaseChannel,
|
||||
getReleaseChannel,
|
||||
isNightly,
|
||||
isPreview,
|
||||
isStable,
|
||||
_clearCache,
|
||||
} from './channel.js';
|
||||
import * as packageJson from './package.js';
|
||||
|
||||
vi.mock('./package.js', () => ({
|
||||
@@ -132,6 +139,54 @@ describe('channel', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('getReleaseChannel', () => {
|
||||
it('should return STABLE for a stable version', async () => {
|
||||
vi.spyOn(packageJson, 'getPackageJson').mockResolvedValue({
|
||||
name: 'test',
|
||||
version: '1.0.0',
|
||||
});
|
||||
await expect(getReleaseChannel('/test/dir')).resolves.toBe(
|
||||
ReleaseChannel.STABLE,
|
||||
);
|
||||
});
|
||||
|
||||
it('should return NIGHTLY for a nightly version', async () => {
|
||||
vi.spyOn(packageJson, 'getPackageJson').mockResolvedValue({
|
||||
name: 'test',
|
||||
version: '1.0.0-nightly.1',
|
||||
});
|
||||
await expect(getReleaseChannel('/test/dir')).resolves.toBe(
|
||||
ReleaseChannel.NIGHTLY,
|
||||
);
|
||||
});
|
||||
|
||||
it('should return PREVIEW for a preview version', async () => {
|
||||
vi.spyOn(packageJson, 'getPackageJson').mockResolvedValue({
|
||||
name: 'test',
|
||||
version: '1.0.0-preview.1',
|
||||
});
|
||||
await expect(getReleaseChannel('/test/dir')).resolves.toBe(
|
||||
ReleaseChannel.PREVIEW,
|
||||
);
|
||||
});
|
||||
|
||||
it('should return NIGHTLY if package.json is not found', async () => {
|
||||
vi.spyOn(packageJson, 'getPackageJson').mockResolvedValue(undefined);
|
||||
await expect(getReleaseChannel('/test/dir')).resolves.toBe(
|
||||
ReleaseChannel.NIGHTLY,
|
||||
);
|
||||
});
|
||||
|
||||
it('should return NIGHTLY if version is not defined', async () => {
|
||||
vi.spyOn(packageJson, 'getPackageJson').mockResolvedValue({
|
||||
name: 'test',
|
||||
});
|
||||
await expect(getReleaseChannel('/test/dir')).resolves.toBe(
|
||||
ReleaseChannel.NIGHTLY,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('memoization', () => {
|
||||
it('should only call getPackageJson once for the same cwd', async () => {
|
||||
const spy = vi
|
||||
@@ -141,6 +196,9 @@ describe('channel', () => {
|
||||
await expect(isStable('/test/dir')).resolves.toBe(true);
|
||||
await expect(isNightly('/test/dir')).resolves.toBe(false);
|
||||
await expect(isPreview('/test/dir')).resolves.toBe(false);
|
||||
await expect(getReleaseChannel('/test/dir')).resolves.toBe(
|
||||
ReleaseChannel.STABLE,
|
||||
);
|
||||
|
||||
expect(spy).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user