mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-23 04:21:31 -07:00
45 lines
1.8 KiB
TypeScript
45 lines
1.8 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import { describe, it, expect } from 'vitest';
|
|
import { getLanguageFromFilePath } from './language-detection.js';
|
|
|
|
describe('language-detection', () => {
|
|
it('should return correct LSP identifiers for various extensions', () => {
|
|
expect(getLanguageFromFilePath('test.ts')).toBe('typescript');
|
|
expect(getLanguageFromFilePath('test.js')).toBe('javascript');
|
|
expect(getLanguageFromFilePath('test.py')).toBe('python');
|
|
expect(getLanguageFromFilePath('test.java')).toBe('java');
|
|
expect(getLanguageFromFilePath('test.go')).toBe('go');
|
|
expect(getLanguageFromFilePath('test.cs')).toBe('csharp');
|
|
expect(getLanguageFromFilePath('test.cpp')).toBe('cpp');
|
|
expect(getLanguageFromFilePath('test.sh')).toBe('shellscript');
|
|
expect(getLanguageFromFilePath('test.bat')).toBe('bat');
|
|
expect(getLanguageFromFilePath('test.json')).toBe('json');
|
|
expect(getLanguageFromFilePath('test.md')).toBe('markdown');
|
|
expect(getLanguageFromFilePath('test.tsx')).toBe('typescriptreact');
|
|
expect(getLanguageFromFilePath('test.jsx')).toBe('javascriptreact');
|
|
});
|
|
|
|
it('should handle uppercase extensions', () => {
|
|
expect(getLanguageFromFilePath('TEST.TS')).toBe('typescript');
|
|
});
|
|
|
|
it('should handle filenames without extensions but in map', () => {
|
|
expect(getLanguageFromFilePath('.gitignore')).toBe('ignore');
|
|
expect(getLanguageFromFilePath('.dockerfile')).toBe('dockerfile');
|
|
expect(getLanguageFromFilePath('Dockerfile')).toBe('dockerfile');
|
|
});
|
|
|
|
it('should return undefined for unknown extensions', () => {
|
|
expect(getLanguageFromFilePath('test.unknown')).toBeUndefined();
|
|
});
|
|
|
|
it('should return undefined for files without extension or known filename', () => {
|
|
expect(getLanguageFromFilePath('just_a_file')).toBeUndefined();
|
|
});
|
|
});
|