Skip to content

Commit 4da7b79

Browse files
committed
fix: ensure slider always displays valid value (min 2) for concurrent file reads
- Fix issue where slider could display values below minimum when enabled with maxConcurrentFileReads <= 1 - Add test cases for edge cases (value 0 and 1) - Ensure UI always shows at least the minimum value of 2
1 parent 105aef7 commit 4da7b79

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

webview-ui/src/components/settings/ConcurrentFileReadsExperiment.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ export const ConcurrentFileReadsExperiment = ({
5555
min={2}
5656
max={100}
5757
step={1}
58-
value={[maxConcurrentFileReads]}
58+
value={[Math.max(2, maxConcurrentFileReads)]}
5959
onValueChange={([value]) => onMaxConcurrentFileReadsChange(value)}
6060
data-testid="max-concurrent-file-reads-slider"
6161
/>
62-
<span className="w-10 text-sm">{maxConcurrentFileReads}</span>
62+
<span className="w-10 text-sm">{Math.max(2, maxConcurrentFileReads)}</span>
6363
</div>
6464
</div>
6565
</div>

webview-ui/src/components/settings/__tests__/ConcurrentFileReadsExperiment.test.tsx

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,4 +138,35 @@ describe("ConcurrentFileReadsExperiment", () => {
138138
// Verify new value is displayed
139139
expect(screen.getByText("50")).toBeInTheDocument()
140140
})
141+
142+
it("should display minimum value of 2 when maxConcurrentFileReads is less than 2", () => {
143+
render(
144+
<ConcurrentFileReadsExperiment
145+
enabled={true}
146+
onEnabledChange={mockOnEnabledChange}
147+
maxConcurrentFileReads={1}
148+
onMaxConcurrentFileReadsChange={mockOnMaxConcurrentFileReadsChange}
149+
/>,
150+
)
151+
152+
// Should display 2 (minimum value) instead of 1
153+
expect(screen.getByText("2")).toBeInTheDocument()
154+
})
155+
156+
it("should set maxConcurrentFileReads to 15 when enabling with value of 0", () => {
157+
render(
158+
<ConcurrentFileReadsExperiment
159+
enabled={false}
160+
onEnabledChange={mockOnEnabledChange}
161+
maxConcurrentFileReads={0}
162+
onMaxConcurrentFileReadsChange={mockOnMaxConcurrentFileReadsChange}
163+
/>,
164+
)
165+
166+
const checkbox = screen.getByTestId("concurrent-file-reads-checkbox")
167+
fireEvent.click(checkbox)
168+
169+
expect(mockOnEnabledChange).toHaveBeenCalledWith(true)
170+
expect(mockOnMaxConcurrentFileReadsChange).toHaveBeenCalledWith(15)
171+
})
141172
})

0 commit comments

Comments
 (0)