summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/commands
diff options
context:
space:
mode:
authorHarold Mciver <[email protected]>2025-07-16 20:27:36 -0400
committerGitHub <[email protected]>2025-07-17 00:27:36 +0000
commitfbe09cd35e6c043ea2dc69281b758e5ad9f3896c (patch)
tree481b16f1e56ae7fc0eea04de11f60fcd04e0e961 /packages/cli/src/ui/commands
parentab9eb9377fdfe7823be8ea0c7c394c5368b28951 (diff)
update `/editor` to new slash command arch (#4153)
Co-authored-by: Abhi <[email protected]>
Diffstat (limited to 'packages/cli/src/ui/commands')
-rw-r--r--packages/cli/src/ui/commands/editorCommand.test.ts30
-rw-r--r--packages/cli/src/ui/commands/editorCommand.ts16
-rw-r--r--packages/cli/src/ui/commands/types.ts3
3 files changed, 47 insertions, 2 deletions
diff --git a/packages/cli/src/ui/commands/editorCommand.test.ts b/packages/cli/src/ui/commands/editorCommand.test.ts
new file mode 100644
index 00000000..9b5e84d3
--- /dev/null
+++ b/packages/cli/src/ui/commands/editorCommand.test.ts
@@ -0,0 +1,30 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import { describe, it, expect } from 'vitest';
+import { editorCommand } from './editorCommand.js';
+// 1. Import the mock context utility
+import { createMockCommandContext } from '../../test-utils/mockCommandContext.js';
+
+describe('editorCommand', () => {
+ it('should return a dialog action to open the editor dialog', () => {
+ if (!editorCommand.action) {
+ throw new Error('The editor command must have an action.');
+ }
+ const mockContext = createMockCommandContext();
+ const result = editorCommand.action(mockContext, '');
+
+ expect(result).toEqual({
+ type: 'dialog',
+ dialog: 'editor',
+ });
+ });
+
+ it('should have the correct name and description', () => {
+ expect(editorCommand.name).toBe('editor');
+ expect(editorCommand.description).toBe('set external editor preference');
+ });
+});
diff --git a/packages/cli/src/ui/commands/editorCommand.ts b/packages/cli/src/ui/commands/editorCommand.ts
new file mode 100644
index 00000000..dbfafa51
--- /dev/null
+++ b/packages/cli/src/ui/commands/editorCommand.ts
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import { type OpenDialogActionReturn, type SlashCommand } from './types.js';
+
+export const editorCommand: SlashCommand = {
+ name: 'editor',
+ description: 'set external editor preference',
+ action: (): OpenDialogActionReturn => ({
+ type: 'dialog',
+ dialog: 'editor',
+ }),
+};
diff --git a/packages/cli/src/ui/commands/types.ts b/packages/cli/src/ui/commands/types.ts
index 85a85abe..a61a29f2 100644
--- a/packages/cli/src/ui/commands/types.ts
+++ b/packages/cli/src/ui/commands/types.ts
@@ -71,8 +71,7 @@ export interface MessageActionReturn {
*/
export interface OpenDialogActionReturn {
type: 'dialog';
- // TODO: Add 'theme' | 'auth' | 'editor' | 'privacy' as migration happens.
- dialog: 'help' | 'auth' | 'theme' | 'privacy';
+ dialog: 'help' | 'auth' | 'theme' | 'editor' | 'privacy';
}
/**