@google/gemini-cli 0.19.0-nightly.20251123.dadd606c0 → 0.19.0-nightly.20251125.f6d97d448

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/google-gemini-cli-0.19.0-nightly.20251124.e177314a4.tgz +0 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +0 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/package.json +2 -2
  6. package/dist/src/commands/extensions.test.d.ts +6 -0
  7. package/dist/src/commands/extensions.test.js +67 -0
  8. package/dist/src/commands/extensions.test.js.map +1 -0
  9. package/dist/src/commands/utils.test.d.ts +6 -0
  10. package/dist/src/commands/utils.test.js +35 -0
  11. package/dist/src/commands/utils.test.js.map +1 -0
  12. package/dist/src/core/auth.test.d.ts +6 -0
  13. package/dist/src/core/auth.test.js +43 -0
  14. package/dist/src/core/auth.test.js.map +1 -0
  15. package/dist/src/core/initializer.test.d.ts +6 -0
  16. package/dist/src/core/initializer.test.js +101 -0
  17. package/dist/src/core/initializer.test.js.map +1 -0
  18. package/dist/src/core/theme.test.d.ts +6 -0
  19. package/dist/src/core/theme.test.js +46 -0
  20. package/dist/src/core/theme.test.js.map +1 -0
  21. package/dist/src/gemini.d.ts +1 -0
  22. package/dist/src/gemini.js +7 -2
  23. package/dist/src/gemini.js.map +1 -1
  24. package/dist/src/gemini.test.js +621 -1
  25. package/dist/src/gemini.test.js.map +1 -1
  26. package/dist/src/gemini_cleanup.test.d.ts +6 -0
  27. package/dist/src/gemini_cleanup.test.js +201 -0
  28. package/dist/src/gemini_cleanup.test.js.map +1 -0
  29. package/dist/src/generated/git-commit.d.ts +2 -2
  30. package/dist/src/generated/git-commit.js +2 -2
  31. package/dist/src/nonInteractiveCli.test.js +336 -0
  32. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  33. package/dist/src/ui/App.test.js +28 -14
  34. package/dist/src/ui/App.test.js.map +1 -1
  35. package/dist/src/ui/IdeIntegrationNudge.test.d.ts +6 -0
  36. package/dist/src/ui/IdeIntegrationNudge.test.js +147 -0
  37. package/dist/src/ui/IdeIntegrationNudge.test.js.map +1 -0
  38. package/dist/src/ui/auth/ApiAuthDialog.test.js +12 -17
  39. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
  40. package/dist/src/ui/auth/AuthDialog.test.js +120 -74
  41. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  42. package/dist/src/ui/auth/AuthInProgress.test.d.ts +6 -0
  43. package/dist/src/ui/auth/AuthInProgress.test.js +71 -0
  44. package/dist/src/ui/auth/AuthInProgress.test.js.map +1 -0
  45. package/dist/src/ui/auth/useAuth.test.d.ts +6 -0
  46. package/dist/src/ui/auth/useAuth.test.js +178 -0
  47. package/dist/src/ui/auth/useAuth.test.js.map +1 -0
  48. package/dist/src/ui/commands/extensionsCommand.js +28 -6
  49. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  50. package/dist/src/ui/commands/extensionsCommand.test.js +32 -0
  51. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  52. package/dist/src/ui/commands/statsCommand.js +27 -16
  53. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  54. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js +62 -11
  55. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js.map +1 -1
  56. package/dist/src/ui/components/AnsiOutput.test.js +18 -23
  57. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
  58. package/dist/src/ui/hooks/useSlashCompletion.test.js +4 -4
  59. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  60. package/dist/src/ui/hooks/useToolScheduler.test.js +5 -1
  61. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  62. package/dist/src/ui/state/extensions.test.js +208 -51
  63. package/dist/src/ui/state/extensions.test.js.map +1 -1
  64. package/dist/src/ui/utils/kittyProtocolDetector.test.d.ts +6 -0
  65. package/dist/src/ui/utils/kittyProtocolDetector.test.js +113 -0
  66. package/dist/src/ui/utils/kittyProtocolDetector.test.js.map +1 -0
  67. package/dist/src/ui/utils/terminalSetup.js +39 -38
  68. package/dist/src/ui/utils/terminalSetup.js.map +1 -1
  69. package/dist/src/ui/utils/terminalSetup.test.d.ts +6 -0
  70. package/dist/src/ui/utils/terminalSetup.test.js +131 -0
  71. package/dist/src/ui/utils/terminalSetup.test.js.map +1 -0
  72. package/dist/src/ui/utils/ui-sizing.test.d.ts +6 -0
  73. package/dist/src/ui/utils/ui-sizing.test.js +56 -0
  74. package/dist/src/ui/utils/ui-sizing.test.js.map +1 -0
  75. package/dist/src/utils/checks.test.d.ts +6 -0
  76. package/dist/src/utils/checks.test.js +29 -0
  77. package/dist/src/utils/checks.test.js.map +1 -0
  78. package/dist/src/utils/cleanup.test.js +69 -16
  79. package/dist/src/utils/cleanup.test.js.map +1 -1
  80. package/dist/src/utils/dialogScopeUtils.test.d.ts +6 -0
  81. package/dist/src/utils/dialogScopeUtils.test.js +81 -0
  82. package/dist/src/utils/dialogScopeUtils.test.js.map +1 -0
  83. package/dist/src/utils/errors.test.js +62 -0
  84. package/dist/src/utils/errors.test.js.map +1 -1
  85. package/dist/src/utils/events.test.d.ts +6 -0
  86. package/dist/src/utils/events.test.js +24 -0
  87. package/dist/src/utils/events.test.js.map +1 -0
  88. package/dist/src/utils/handleAutoUpdate.test.js +103 -24
  89. package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  90. package/dist/src/utils/math.test.d.ts +6 -0
  91. package/dist/src/utils/math.test.js +23 -0
  92. package/dist/src/utils/math.test.js.map +1 -0
  93. package/dist/src/utils/persistentState.test.d.ts +6 -0
  94. package/dist/src/utils/persistentState.test.js +68 -0
  95. package/dist/src/utils/persistentState.test.js.map +1 -0
  96. package/dist/src/utils/readStdin.js +1 -0
  97. package/dist/src/utils/readStdin.js.map +1 -1
  98. package/dist/src/utils/readStdin.test.js +25 -0
  99. package/dist/src/utils/readStdin.test.js.map +1 -1
  100. package/dist/src/utils/resolvePath.test.d.ts +6 -0
  101. package/dist/src/utils/resolvePath.test.js +31 -0
  102. package/dist/src/utils/resolvePath.test.js.map +1 -0
  103. package/dist/src/utils/sandbox.js +6 -137
  104. package/dist/src/utils/sandbox.js.map +1 -1
  105. package/dist/src/utils/sandbox.test.d.ts +6 -0
  106. package/dist/src/utils/sandbox.test.js +302 -0
  107. package/dist/src/utils/sandbox.test.js.map +1 -0
  108. package/dist/src/utils/sandboxUtils.d.ts +14 -0
  109. package/dist/src/utils/sandboxUtils.js +120 -0
  110. package/dist/src/utils/sandboxUtils.js.map +1 -0
  111. package/dist/src/utils/sandboxUtils.test.d.ts +6 -0
  112. package/dist/src/utils/sandboxUtils.test.js +119 -0
  113. package/dist/src/utils/sandboxUtils.test.js.map +1 -0
  114. package/dist/src/utils/updateEventEmitter.test.d.ts +6 -0
  115. package/dist/src/utils/updateEventEmitter.test.js +18 -0
  116. package/dist/src/utils/updateEventEmitter.test.js.map +1 -0
  117. package/dist/src/utils/version.test.d.ts +6 -0
  118. package/dist/src/utils/version.test.js +39 -0
  119. package/dist/src/utils/version.test.js.map +1 -0
  120. package/dist/tsconfig.tsbuildinfo +1 -1
  121. package/package.json +3 -3
  122. package/dist/google-gemini-cli-0.19.0-nightly.20251122.42c2e1b21.tgz +0 -0
@@ -0,0 +1,147 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { describe, it, expect, vi, afterEach } from 'vitest';
8
+ import { render } from 'ink-testing-library';
9
+ import { act } from 'react';
10
+ import { IdeIntegrationNudge } from './IdeIntegrationNudge.js';
11
+ import { KeypressProvider } from './contexts/KeypressContext.js';
12
+ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
13
+ describe('IdeIntegrationNudge', () => {
14
+ const defaultProps = {
15
+ ide: {
16
+ name: 'vscode',
17
+ displayName: 'VS Code',
18
+ },
19
+ onComplete: vi.fn(),
20
+ };
21
+ const originalError = console.error;
22
+ afterEach(() => {
23
+ console.error = originalError;
24
+ vi.restoreAllMocks();
25
+ vi.unstubAllEnvs();
26
+ });
27
+ beforeEach(() => {
28
+ console.error = (...args) => {
29
+ if (typeof args[0] === 'string' &&
30
+ /was not wrapped in act/.test(args[0])) {
31
+ return;
32
+ }
33
+ originalError.call(console, ...args);
34
+ };
35
+ vi.stubEnv('GEMINI_CLI_IDE_SERVER_PORT', '');
36
+ vi.stubEnv('GEMINI_CLI_IDE_WORKSPACE_PATH', '');
37
+ });
38
+ it('renders correctly with default options', async () => {
39
+ const { lastFrame } = render(_jsx(KeypressProvider, { children: _jsx(IdeIntegrationNudge, { ...defaultProps }) }));
40
+ await act(async () => {
41
+ await delay(100);
42
+ });
43
+ const frame = lastFrame();
44
+ expect(frame).toContain('Do you want to connect VS Code to Gemini CLI?');
45
+ expect(frame).toContain('Yes');
46
+ expect(frame).toContain('No (esc)');
47
+ expect(frame).toContain("No, don't ask again");
48
+ });
49
+ it('handles "Yes" selection', async () => {
50
+ const onComplete = vi.fn();
51
+ const { stdin } = render(_jsx(KeypressProvider, { children: _jsx(IdeIntegrationNudge, { ...defaultProps, onComplete: onComplete }) }));
52
+ await act(async () => {
53
+ await delay(100);
54
+ });
55
+ // "Yes" is the first option and selected by default usually.
56
+ await act(async () => {
57
+ stdin.write('\r');
58
+ await delay(100);
59
+ });
60
+ expect(onComplete).toHaveBeenCalledWith({
61
+ userSelection: 'yes',
62
+ isExtensionPreInstalled: false,
63
+ });
64
+ });
65
+ it('handles "No" selection', async () => {
66
+ const onComplete = vi.fn();
67
+ const { stdin } = render(_jsx(KeypressProvider, { children: _jsx(IdeIntegrationNudge, { ...defaultProps, onComplete: onComplete }) }));
68
+ await act(async () => {
69
+ await delay(100);
70
+ });
71
+ // Navigate down to "No (esc)"
72
+ await act(async () => {
73
+ stdin.write('\u001B[B'); // Down arrow
74
+ await delay(100);
75
+ });
76
+ await act(async () => {
77
+ stdin.write('\r'); // Enter
78
+ await delay(100);
79
+ });
80
+ expect(onComplete).toHaveBeenCalledWith({
81
+ userSelection: 'no',
82
+ isExtensionPreInstalled: false,
83
+ });
84
+ });
85
+ it('handles "Dismiss" selection', async () => {
86
+ const onComplete = vi.fn();
87
+ const { stdin } = render(_jsx(KeypressProvider, { children: _jsx(IdeIntegrationNudge, { ...defaultProps, onComplete: onComplete }) }));
88
+ await act(async () => {
89
+ await delay(100);
90
+ });
91
+ // Navigate down to "No, don't ask again"
92
+ await act(async () => {
93
+ stdin.write('\u001B[B'); // Down arrow
94
+ await delay(100);
95
+ });
96
+ await act(async () => {
97
+ stdin.write('\u001B[B'); // Down arrow
98
+ await delay(100);
99
+ });
100
+ await act(async () => {
101
+ stdin.write('\r'); // Enter
102
+ await delay(100);
103
+ });
104
+ expect(onComplete).toHaveBeenCalledWith({
105
+ userSelection: 'dismiss',
106
+ isExtensionPreInstalled: false,
107
+ });
108
+ });
109
+ it('handles Escape key press', async () => {
110
+ const onComplete = vi.fn();
111
+ const { stdin } = render(_jsx(KeypressProvider, { children: _jsx(IdeIntegrationNudge, { ...defaultProps, onComplete: onComplete }) }));
112
+ await act(async () => {
113
+ await delay(100);
114
+ });
115
+ // Press Escape
116
+ await act(async () => {
117
+ stdin.write('\u001B');
118
+ await delay(100);
119
+ });
120
+ expect(onComplete).toHaveBeenCalledWith({
121
+ userSelection: 'no',
122
+ isExtensionPreInstalled: false,
123
+ });
124
+ });
125
+ it('displays correct text and handles selection when extension is pre-installed', async () => {
126
+ vi.stubEnv('GEMINI_CLI_IDE_SERVER_PORT', '1234');
127
+ vi.stubEnv('GEMINI_CLI_IDE_WORKSPACE_PATH', '/tmp');
128
+ const onComplete = vi.fn();
129
+ const { lastFrame, stdin } = render(_jsx(KeypressProvider, { children: _jsx(IdeIntegrationNudge, { ...defaultProps, onComplete: onComplete }) }));
130
+ await act(async () => {
131
+ await delay(100);
132
+ });
133
+ const frame = lastFrame();
134
+ expect(frame).toContain('If you select Yes, the CLI will have access to your open files');
135
+ expect(frame).not.toContain("we'll install an extension");
136
+ // Select "Yes"
137
+ await act(async () => {
138
+ stdin.write('\r');
139
+ await delay(100);
140
+ });
141
+ expect(onComplete).toHaveBeenCalledWith({
142
+ userSelection: 'yes',
143
+ isExtensionPreInstalled: true,
144
+ });
145
+ });
146
+ });
147
+ //# sourceMappingURL=IdeIntegrationNudge.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdeIntegrationNudge.test.js","sourceRoot":"","sources":["../../../src/ui/IdeIntegrationNudge.test.tsx"],"names":[],"mappings":"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"}
@@ -56,32 +56,27 @@ describe('ApiAuthDialog', () => {
56
56
  }),
57
57
  }));
58
58
  });
59
- it('calls onSubmit when the text input is submitted', () => {
60
- mockBuffer.text = 'submitted-key';
61
- render(_jsx(ApiAuthDialog, { onSubmit: onSubmit, onCancel: onCancel }));
62
- const keypressHandler = mockedUseKeypress.mock.calls[0][0];
63
- keypressHandler({
64
- name: 'return',
59
+ it.each([
60
+ {
61
+ keyName: 'return',
65
62
  sequence: '\r',
66
- ctrl: false,
67
- meta: false,
68
- shift: false,
69
- paste: false,
70
- });
71
- expect(onSubmit).toHaveBeenCalledWith('submitted-key');
72
- });
73
- it('calls onCancel when the text input is cancelled', () => {
63
+ expectedCall: onSubmit,
64
+ args: ['submitted-key'],
65
+ },
66
+ { keyName: 'escape', sequence: '\u001b', expectedCall: onCancel, args: [] },
67
+ ])('calls $expectedCall.name when $keyName is pressed', ({ keyName, sequence, expectedCall, args }) => {
68
+ mockBuffer.text = 'submitted-key'; // Set for the onSubmit case
74
69
  render(_jsx(ApiAuthDialog, { onSubmit: onSubmit, onCancel: onCancel }));
75
70
  const keypressHandler = mockedUseKeypress.mock.calls[0][0];
76
71
  keypressHandler({
77
- name: 'escape',
78
- sequence: '\u001b',
72
+ name: keyName,
73
+ sequence,
79
74
  ctrl: false,
80
75
  meta: false,
81
76
  shift: false,
82
77
  paste: false,
83
78
  });
84
- expect(onCancel).toHaveBeenCalled();
79
+ expect(expectedCall).toHaveBeenCalledWith(...args);
85
80
  });
86
81
  it('displays an error message', () => {
87
82
  const { lastFrame } = render(_jsx(ApiAuthDialog, { onSubmit: onSubmit, onCancel: onCancel, error: "Invalid API Key" }));
@@ -1 +1 @@
1
- {"version":3,"file":"ApiAuthDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/auth/ApiAuthDialog.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAa,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACL,aAAa,GAEd,MAAM,qCAAqC,CAAC;AAE7C,QAAQ;AACR,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;CACrB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpD,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;CACvB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QACvB,aAAa,EAAE,EAAE;KAClB,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAEJ,MAAM,iBAAiB,GAAG,WAAmB,CAAC;AAC9C,MAAM,mBAAmB,GAAG,aAAqB,CAAC;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACzB,IAAI,UAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,UAAU,GAAG;YACX,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,CAAC,EAAE,CAAC;YACX,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACd,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACpB,mBAAmB,EAAE,CAAC,EAAE,CAAC;YACzB,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;YACpB,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;gBACzB,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC1B,UAAU,CAAC,mBAAmB,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC,CAAC;SACsB,CAAC;QAC3B,mBAAmB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAC1D,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CACJ,KAAC,aAAa,IACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAC,UAAU,GACvB,CACH,CAAC;QACF,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C,MAAM,CAAC,gBAAgB,CAAC;YACtB,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC;gBAChC,MAAM,EAAE,CAAC;aACV,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,UAAU,CAAC,IAAI,GAAG,eAAe,CAAC;QAClC,MAAM,CAAC,KAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,eAAe,CAAC;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,KAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,eAAe,CAAC;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,KAAC,aAAa,IACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAC,iBAAiB,GACvB,CACH,CAAC;QAEF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ApiAuthDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/auth/ApiAuthDialog.test.tsx"],"names":[],"mappings":"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"}
@@ -68,44 +68,46 @@ describe('AuthDialog', () => {
68
68
  afterEach(() => {
69
69
  process.env = originalEnv;
70
70
  });
71
- it('shows Cloud Shell option when in Cloud Shell environment', () => {
72
- process.env['CLOUD_SHELL'] = 'true';
73
- renderWithProviders(_jsx(AuthDialog, { ...props }));
74
- const items = mockedRadioButtonSelect.mock.calls[0][0].items;
75
- expect(items).toContainEqual({
76
- label: 'Use Cloud Shell user credentials',
77
- value: AuthType.COMPUTE_ADC,
78
- key: AuthType.COMPUTE_ADC,
79
- });
80
- });
81
- it('does not show metadata server application default credentials option in Cloud Shell environment', () => {
82
- process.env['CLOUD_SHELL'] = 'true';
83
- renderWithProviders(_jsx(AuthDialog, { ...props }));
84
- const items = mockedRadioButtonSelect.mock.calls[0][0].items;
85
- expect(items).not.toContainEqual({
86
- label: 'Use metadata server application default credentials',
71
+ describe('Environment Variable Effects on Auth Options', () => {
72
+ const cloudShellLabel = 'Use Cloud Shell user credentials';
73
+ const metadataServerLabel = 'Use metadata server application default credentials';
74
+ const computeAdcItem = (label) => ({
75
+ label,
87
76
  value: AuthType.COMPUTE_ADC,
88
77
  key: AuthType.COMPUTE_ADC,
89
78
  });
90
- });
91
- it('shows metadata server application default credentials option when GEMINI_CLI_USE_COMPUTE_ADC env var is true', () => {
92
- process.env['GEMINI_CLI_USE_COMPUTE_ADC'] = 'true';
93
- renderWithProviders(_jsx(AuthDialog, { ...props }));
94
- const items = mockedRadioButtonSelect.mock.calls[0][0].items;
95
- expect(items).toContainEqual({
96
- label: 'Use metadata server application default credentials',
97
- value: AuthType.COMPUTE_ADC,
98
- key: AuthType.COMPUTE_ADC,
99
- });
100
- });
101
- it('does not show Cloud Shell option when when GEMINI_CLI_USE_COMPUTE_ADC env var is true', () => {
102
- process.env['GEMINI_CLI_USE_COMPUTE_ADC'] = 'true';
103
- renderWithProviders(_jsx(AuthDialog, { ...props }));
104
- const items = mockedRadioButtonSelect.mock.calls[0][0].items;
105
- expect(items).not.toContainEqual({
106
- label: 'Use Cloud Shell user credentials',
107
- value: AuthType.COMPUTE_ADC,
108
- key: AuthType.COMPUTE_ADC,
79
+ it.each([
80
+ {
81
+ env: { CLOUD_SHELL: 'true' },
82
+ shouldContain: [computeAdcItem(cloudShellLabel)],
83
+ shouldNotContain: [computeAdcItem(metadataServerLabel)],
84
+ desc: 'in Cloud Shell',
85
+ },
86
+ {
87
+ env: { GEMINI_CLI_USE_COMPUTE_ADC: 'true' },
88
+ shouldContain: [computeAdcItem(metadataServerLabel)],
89
+ shouldNotContain: [computeAdcItem(cloudShellLabel)],
90
+ desc: 'with GEMINI_CLI_USE_COMPUTE_ADC',
91
+ },
92
+ {
93
+ env: {},
94
+ shouldContain: [],
95
+ shouldNotContain: [
96
+ computeAdcItem(cloudShellLabel),
97
+ computeAdcItem(metadataServerLabel),
98
+ ],
99
+ desc: 'by default',
100
+ },
101
+ ])('correctly shows/hides COMPUTE_ADC options $desc', ({ env, shouldContain, shouldNotContain }) => {
102
+ process.env = { ...env };
103
+ renderWithProviders(_jsx(AuthDialog, { ...props }));
104
+ const items = mockedRadioButtonSelect.mock.calls[0][0].items;
105
+ for (const item of shouldContain) {
106
+ expect(items).toContainEqual(item);
107
+ }
108
+ for (const item of shouldNotContain) {
109
+ expect(items).not.toContainEqual(item);
110
+ }
109
111
  });
110
112
  });
111
113
  it('filters auth types when enforcedType is set', () => {
@@ -121,28 +123,41 @@ describe('AuthDialog', () => {
121
123
  const { initialIndex } = mockedRadioButtonSelect.mock.calls[0][0];
122
124
  expect(initialIndex).toBe(0);
123
125
  });
124
- it('selects initial auth type from settings', () => {
125
- props.settings.merged.security.auth.selectedType = AuthType.USE_VERTEX_AI;
126
- renderWithProviders(_jsx(AuthDialog, { ...props }));
127
- const { items, initialIndex } = mockedRadioButtonSelect.mock.calls[0][0];
128
- expect(items[initialIndex].value).toBe(AuthType.USE_VERTEX_AI);
129
- });
130
- it('selects initial auth type from GEMINI_DEFAULT_AUTH_TYPE env var', () => {
131
- process.env['GEMINI_DEFAULT_AUTH_TYPE'] = AuthType.USE_GEMINI;
132
- renderWithProviders(_jsx(AuthDialog, { ...props }));
133
- const { items, initialIndex } = mockedRadioButtonSelect.mock.calls[0][0];
134
- expect(items[initialIndex].value).toBe(AuthType.USE_GEMINI);
135
- });
136
- it('selects initial auth type from GEMINI_API_KEY env var', () => {
137
- process.env['GEMINI_API_KEY'] = 'test-key';
138
- renderWithProviders(_jsx(AuthDialog, { ...props }));
139
- const { items, initialIndex } = mockedRadioButtonSelect.mock.calls[0][0];
140
- expect(items[initialIndex].value).toBe(AuthType.USE_GEMINI);
141
- });
142
- it('defaults to Login with Google', () => {
143
- renderWithProviders(_jsx(AuthDialog, { ...props }));
144
- const { items, initialIndex } = mockedRadioButtonSelect.mock.calls[0][0];
145
- expect(items[initialIndex].value).toBe(AuthType.LOGIN_WITH_GOOGLE);
126
+ describe('Initial Auth Type Selection', () => {
127
+ it.each([
128
+ {
129
+ setup: () => {
130
+ props.settings.merged.security.auth.selectedType =
131
+ AuthType.USE_VERTEX_AI;
132
+ },
133
+ expected: AuthType.USE_VERTEX_AI,
134
+ desc: 'from settings',
135
+ },
136
+ {
137
+ setup: () => {
138
+ process.env['GEMINI_DEFAULT_AUTH_TYPE'] = AuthType.USE_GEMINI;
139
+ },
140
+ expected: AuthType.USE_GEMINI,
141
+ desc: 'from GEMINI_DEFAULT_AUTH_TYPE env var',
142
+ },
143
+ {
144
+ setup: () => {
145
+ process.env['GEMINI_API_KEY'] = 'test-key';
146
+ },
147
+ expected: AuthType.USE_GEMINI,
148
+ desc: 'from GEMINI_API_KEY env var',
149
+ },
150
+ {
151
+ setup: () => { },
152
+ expected: AuthType.LOGIN_WITH_GOOGLE,
153
+ desc: 'defaults to Login with Google',
154
+ },
155
+ ])('selects initial auth type $desc', ({ setup, expected }) => {
156
+ setup();
157
+ renderWithProviders(_jsx(AuthDialog, { ...props }));
158
+ const { items, initialIndex } = mockedRadioButtonSelect.mock.calls[0][0];
159
+ expect(items[initialIndex].value).toBe(expected);
160
+ });
146
161
  });
147
162
  describe('handleAuthSelect', () => {
148
163
  it('calls onAuthError if validation fails', () => {
@@ -190,28 +205,59 @@ describe('AuthDialog', () => {
190
205
  expect(lastFrame()).toContain('Something went wrong');
191
206
  });
192
207
  describe('useKeypress', () => {
193
- it('does nothing on escape if authError is present', () => {
194
- props.authError = 'Some error';
208
+ it.each([
209
+ {
210
+ desc: 'does nothing on escape if authError is present',
211
+ setup: () => {
212
+ props.authError = 'Some error';
213
+ },
214
+ expectations: (p) => {
215
+ expect(p.onAuthError).not.toHaveBeenCalled();
216
+ expect(p.setAuthState).not.toHaveBeenCalled();
217
+ },
218
+ },
219
+ {
220
+ desc: 'calls onAuthError on escape if no auth method is set',
221
+ setup: () => {
222
+ props.settings.merged.security.auth.selectedType = undefined;
223
+ },
224
+ expectations: (p) => {
225
+ expect(p.onAuthError).toHaveBeenCalledWith('You must select an auth method to proceed. Press Ctrl+C twice to exit.');
226
+ },
227
+ },
228
+ {
229
+ desc: 'calls setAuthState(Unauthenticated) on escape if auth method is set',
230
+ setup: () => {
231
+ props.settings.merged.security.auth.selectedType =
232
+ AuthType.USE_GEMINI;
233
+ },
234
+ expectations: (p) => {
235
+ expect(p.setAuthState).toHaveBeenCalledWith(AuthState.Unauthenticated);
236
+ expect(p.settings.setValue).not.toHaveBeenCalled();
237
+ },
238
+ },
239
+ ])('$desc', ({ setup, expectations }) => {
240
+ setup();
195
241
  renderWithProviders(_jsx(AuthDialog, { ...props }));
196
242
  const keypressHandler = mockedUseKeypress.mock.calls[0][0];
197
243
  keypressHandler({ name: 'escape' });
198
- expect(props.onAuthError).not.toHaveBeenCalled();
199
- expect(props.setAuthState).not.toHaveBeenCalled();
244
+ expectations(props);
200
245
  });
201
- it('calls onAuthError on escape if no auth method is set', () => {
202
- props.settings.merged.security.auth.selectedType = undefined;
203
- renderWithProviders(_jsx(AuthDialog, { ...props }));
204
- const keypressHandler = mockedUseKeypress.mock.calls[0][0];
205
- keypressHandler({ name: 'escape' });
206
- expect(props.onAuthError).toHaveBeenCalledWith('You must select an auth method to proceed. Press Ctrl+C twice to exit.');
246
+ });
247
+ describe('Snapshots', () => {
248
+ it('renders correctly with default props', () => {
249
+ const { lastFrame } = renderWithProviders(_jsx(AuthDialog, { ...props }));
250
+ expect(lastFrame()).toMatchSnapshot();
207
251
  });
208
- it('calls onSelect(undefined) on escape if auth method is set', () => {
209
- props.settings.merged.security.auth.selectedType = AuthType.USE_GEMINI;
210
- renderWithProviders(_jsx(AuthDialog, { ...props }));
211
- const keypressHandler = mockedUseKeypress.mock.calls[0][0];
212
- keypressHandler({ name: 'escape' });
213
- expect(props.setAuthState).toHaveBeenCalledWith(AuthState.Unauthenticated);
214
- expect(props.settings.setValue).not.toHaveBeenCalled();
252
+ it('renders correctly with auth error', () => {
253
+ props.authError = 'Something went wrong';
254
+ const { lastFrame } = renderWithProviders(_jsx(AuthDialog, { ...props }));
255
+ expect(lastFrame()).toMatchSnapshot();
256
+ });
257
+ it('renders correctly with enforced auth type', () => {
258
+ props.settings.merged.security.auth.enforcedType = AuthType.USE_GEMINI;
259
+ const { lastFrame } = renderWithProviders(_jsx(AuthDialog, { ...props }));
260
+ expect(lastFrame()).toMatchSnapshot();
215
261
  });
216
262
  });
217
263
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AuthDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/auth/AuthDialog.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/auth/AuthDialog.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,71 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
8
+ import { render } from 'ink-testing-library';
9
+ import { act } from 'react';
10
+ import { AuthInProgress } from './AuthInProgress.js';
11
+ import { useKeypress } from '../hooks/useKeypress.js';
12
+ // Mock dependencies
13
+ vi.mock('../hooks/useKeypress.js', () => ({
14
+ useKeypress: vi.fn(),
15
+ }));
16
+ vi.mock('../components/CliSpinner.js', () => ({
17
+ CliSpinner: () => '[Spinner]',
18
+ }));
19
+ describe('AuthInProgress', () => {
20
+ const onTimeout = vi.fn();
21
+ const originalError = console.error;
22
+ beforeEach(() => {
23
+ vi.clearAllMocks();
24
+ vi.useFakeTimers();
25
+ console.error = (...args) => {
26
+ if (typeof args[0] === 'string' &&
27
+ args[0].includes('was not wrapped in act')) {
28
+ return;
29
+ }
30
+ originalError.call(console, ...args);
31
+ };
32
+ });
33
+ afterEach(() => {
34
+ console.error = originalError;
35
+ vi.useRealTimers();
36
+ });
37
+ it('renders initial state with spinner', () => {
38
+ const { lastFrame } = render(_jsx(AuthInProgress, { onTimeout: onTimeout }));
39
+ expect(lastFrame()).toContain('[Spinner] Waiting for auth...');
40
+ expect(lastFrame()).toContain('Press ESC or CTRL+C to cancel');
41
+ });
42
+ it('calls onTimeout when ESC is pressed', () => {
43
+ render(_jsx(AuthInProgress, { onTimeout: onTimeout }));
44
+ const keypressHandler = vi.mocked(useKeypress).mock.calls[0][0];
45
+ keypressHandler({ name: 'escape' });
46
+ expect(onTimeout).toHaveBeenCalled();
47
+ });
48
+ it('calls onTimeout when Ctrl+C is pressed', () => {
49
+ render(_jsx(AuthInProgress, { onTimeout: onTimeout }));
50
+ const keypressHandler = vi.mocked(useKeypress).mock.calls[0][0];
51
+ keypressHandler({ name: 'c', ctrl: true });
52
+ expect(onTimeout).toHaveBeenCalled();
53
+ });
54
+ it('calls onTimeout and shows timeout message after 3 minutes', async () => {
55
+ const { lastFrame } = render(_jsx(AuthInProgress, { onTimeout: onTimeout }));
56
+ await act(async () => {
57
+ vi.advanceTimersByTime(180000);
58
+ });
59
+ expect(onTimeout).toHaveBeenCalled();
60
+ await vi.waitUntil(() => lastFrame()?.includes('Authentication timed out'), { timeout: 1000 });
61
+ });
62
+ it('clears timer on unmount', () => {
63
+ const { unmount } = render(_jsx(AuthInProgress, { onTimeout: onTimeout }));
64
+ act(() => {
65
+ unmount();
66
+ });
67
+ vi.advanceTimersByTime(180000);
68
+ expect(onTimeout).not.toHaveBeenCalled();
69
+ });
70
+ });
71
+ //# sourceMappingURL=AuthInProgress.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthInProgress.test.js","sourceRoot":"","sources":["../../../../src/ui/auth/AuthInProgress.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};