mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-21 11:30:38 -07:00
64 lines
1.7 KiB
TypeScript
64 lines
1.7 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import { describe, expect, it } from 'vitest';
|
|
import { detectOmissionPlaceholders } from './omissionPlaceholderDetector.js';
|
|
|
|
describe('detectOmissionPlaceholders', () => {
|
|
it('detects standalone placeholder lines', () => {
|
|
expect(detectOmissionPlaceholders('(rest of methods ...)')).toEqual([
|
|
'rest of methods ...',
|
|
]);
|
|
expect(detectOmissionPlaceholders('(rest of code ...)')).toEqual([
|
|
'rest of code ...',
|
|
]);
|
|
expect(detectOmissionPlaceholders('(unchanged code ...)')).toEqual([
|
|
'unchanged code ...',
|
|
]);
|
|
expect(detectOmissionPlaceholders('// rest of methods ...')).toEqual([
|
|
'rest of methods ...',
|
|
]);
|
|
});
|
|
|
|
it('detects case-insensitive placeholders', () => {
|
|
expect(detectOmissionPlaceholders('(Rest Of Methods ...)')).toEqual([
|
|
'rest of methods ...',
|
|
]);
|
|
});
|
|
|
|
it('detects multiple placeholder lines in one input', () => {
|
|
const text = `class Example {
|
|
run() {}
|
|
(rest of methods ...)
|
|
(unchanged code ...)
|
|
}`;
|
|
expect(detectOmissionPlaceholders(text)).toEqual([
|
|
'rest of methods ...',
|
|
'unchanged code ...',
|
|
]);
|
|
});
|
|
|
|
it('does not detect placeholders embedded in normal code', () => {
|
|
expect(
|
|
detectOmissionPlaceholders(
|
|
'const note = "(rest of methods ...)";\nconsole.log(note);',
|
|
),
|
|
).toEqual([]);
|
|
});
|
|
|
|
it('does not detect omission phrase when inline in a comment', () => {
|
|
expect(
|
|
detectOmissionPlaceholders('return value; // rest of methods ...'),
|
|
).toEqual([]);
|
|
});
|
|
|
|
it('does not detect unrelated ellipsis text', () => {
|
|
expect(detectOmissionPlaceholders('const message = "loading...";')).toEqual(
|
|
[],
|
|
);
|
|
});
|
|
});
|