Download scripts/tests/generate-keybindings-doc.test.ts from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 2.23 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/scripts/tests/generate-keybindings-doc.test.ts
- Command line
-
hf download hf://SaylorTwift/gemini-cli/scripts/tests/generate-keybindings-doc.test.ts
-
curl -L -o generate-keybindings-doc.test.ts https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/scripts/tests/generate-keybindings-doc.test.ts
2.23 kB
| /** | |
| * @license | |
| * Copyright 2025 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import { describe, it, expect } from 'vitest'; | |
| import { | |
| main as generateKeybindingDocs, | |
| renderDocumentation, | |
| type KeybindingDocSection, | |
| } from '../generate-keybindings-doc.ts'; | |
| import { KeyBinding } from '../../packages/cli/src/ui/key/keyBindings.js'; | |
| describe('generate-keybindings-doc', () => { | |
| it('keeps keyboard shortcut documentation in sync in check mode', async () => { | |
| const previousExitCode = process.exitCode; | |
| try { | |
| process.exitCode = 0; | |
| await expect( | |
| generateKeybindingDocs(['--check']), | |
| ).resolves.toBeUndefined(); | |
| expect(process.exitCode).toBe(0); | |
| } finally { | |
| process.exitCode = previousExitCode; | |
| } | |
| }); | |
| it('renders provided sections into markdown tables', () => { | |
| const sections: KeybindingDocSection[] = [ | |
| { | |
| title: 'Custom Controls', | |
| commands: [ | |
| { | |
| command: 'custom.trigger', | |
| description: 'Trigger custom action.', | |
| bindings: [new KeyBinding('ctrl+x')], | |
| }, | |
| { | |
| command: 'custom.submit', | |
| description: 'Submit with Enter if no modifiers are held.', | |
| bindings: [new KeyBinding('enter')], | |
| }, | |
| ], | |
| }, | |
| { | |
| title: 'Navigation', | |
| commands: [ | |
| { | |
| command: 'nav.up', | |
| description: 'Move up through results.', | |
| bindings: [new KeyBinding('up'), new KeyBinding('ctrl+p')], | |
| }, | |
| ], | |
| }, | |
| ]; | |
| const markdown = renderDocumentation(sections); | |
| expect(markdown).toContain('#### Custom Controls'); | |
| expect(markdown).toContain('`custom.trigger`'); | |
| expect(markdown).toContain('Trigger custom action.'); | |
| expect(markdown).toContain('`Ctrl+X`'); | |
| expect(markdown).toContain('`custom.submit`'); | |
| expect(markdown).toContain('Submit with Enter if no modifiers are held.'); | |
| expect(markdown).toContain('`Enter`'); | |
| expect(markdown).toContain('#### Navigation'); | |
| expect(markdown).toContain('`nav.up`'); | |
| expect(markdown).toContain('Move up through results.'); | |
| expect(markdown).toContain('`Up`<br />`Ctrl+P`'); | |
| }); | |
| }); | |