Disallow and suppress misused spread operator. (#23294)

This commit is contained in:
Christian Gunderman
2026-03-21 05:21:53 +00:00
committed by GitHub
parent e7b6326cfa
commit 8f391585ab
25 changed files with 59 additions and 0 deletions
@@ -38,6 +38,7 @@ vi.mock('@google/gemini-cli-core', async (importOriginal) => {
return {
...actual,
coreEvents: {
// eslint-disable-next-line @typescript-eslint/no-misused-spread
...actual.coreEvents,
emitFeedback: vi.fn(),
},
@@ -163,6 +163,7 @@ describe('ToolConfirmationQueue', () => {
</Box>,
{
config: {
// eslint-disable-next-line @typescript-eslint/no-misused-spread
...mockConfig,
getUseAlternateBuffer: () => true,
} as unknown as Config,
@@ -674,6 +674,7 @@ describe('useAtCompletion', () => {
multiDirTmpDirs.push(addedDir);
const multiDirConfig = {
// eslint-disable-next-line @typescript-eslint/no-misused-spread
...mockConfig,
getWorkspaceContext: vi.fn().mockReturnValue({
getDirectories: () => [cwdDir, addedDir],
@@ -706,6 +707,7 @@ describe('useAtCompletion', () => {
const directories = [cwdDir];
const dynamicConfig = {
// eslint-disable-next-line @typescript-eslint/no-misused-spread
...mockConfig,
getWorkspaceContext: vi.fn().mockReturnValue({
getDirectories: () => [...directories],
@@ -750,6 +752,7 @@ describe('useAtCompletion', () => {
multiDirTmpDirs.push(dir2);
const multiDirConfig = {
// eslint-disable-next-line @typescript-eslint/no-misused-spread
...mockConfig,
getWorkspaceContext: vi.fn().mockReturnValue({
getDirectories: () => [dir1, dir2],
@@ -1069,6 +1069,7 @@ describe('useGeminiStream', () => {
} as unknown as TrackedCompletedToolCall,
];
const lowVerbositySettings = {
// eslint-disable-next-line @typescript-eslint/no-misused-spread
...mockLoadedSettings,
merged: {
...mockLoadedSettings.merged,
@@ -2023,6 +2024,7 @@ describe('useGeminiStream', () => {
);
const testConfig = {
// eslint-disable-next-line @typescript-eslint/no-misused-spread
...mockConfig,
getContentGenerator: vi.fn(),
getContentGeneratorConfig: vi.fn(() => ({
@@ -2826,6 +2828,7 @@ describe('useGeminiStream', () => {
describe('Thought Reset', () => {
it('should keep full thinking entries in history when mode is full', async () => {
const fullThinkingSettings: LoadedSettings = {
// eslint-disable-next-line @typescript-eslint/no-misused-spread
...mockLoadedSettings,
merged: {
...mockLoadedSettings.merged,
+1
View File
@@ -194,6 +194,7 @@ export class KeyBinding {
const key = remains;
// eslint-disable-next-line @typescript-eslint/no-misused-spread
const isSingleChar = [...key].length === 1;
if (!isSingleChar && !KeyBinding.VALID_LONG_KEYS.has(key.toLowerCase())) {