Skip to content

Commit ba13a9d

Browse files
committed
refactor: improve mock implementation for ApiConfigManager in tests
1 parent d70170f commit ba13a9d

File tree

1 file changed

+42
-40
lines changed

1 file changed

+42
-40
lines changed

webview-ui/src/components/settings/__tests__/SettingsView.spec.tsx

Lines changed: 42 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -9,49 +9,51 @@ import SettingsView from "../SettingsView"
99

1010
vi.mock("@src/utils/vscode", () => ({ vscode: { postMessage: vi.fn() } }))
1111

12-
vi.mock("../ApiConfigManager", () => ({
13-
__esModule: true,
14-
default: ({ currentApiConfigName, onRenameConfig }: any) => {
15-
const [isRenaming, setIsRenaming] = React.useState(false)
16-
const [newName, setNewName] = React.useState("")
17-
18-
const handleRename = () => {
19-
if (isRenaming && newName.trim() && onRenameConfig) {
20-
onRenameConfig(currentApiConfigName || "defaultProfile", newName.trim())
21-
setIsRenaming(false)
22-
setNewName("")
23-
} else {
24-
setIsRenaming(true)
25-
setNewName(currentApiConfigName || "defaultProfile")
26-
}
12+
const MockApiConfigManager = ({ currentApiConfigName, onRenameConfig }: any) => {
13+
const [isRenaming, setIsRenaming] = React.useState(false)
14+
const [newName, setNewName] = React.useState("")
15+
16+
const handleRename = () => {
17+
if (isRenaming && newName.trim() && onRenameConfig) {
18+
onRenameConfig(currentApiConfigName || "defaultProfile", newName.trim())
19+
setIsRenaming(false)
20+
setNewName("")
21+
} else {
22+
setIsRenaming(true)
23+
setNewName(currentApiConfigName || "defaultProfile")
2724
}
25+
}
2826

29-
return (
30-
<div data-testid="api-config-management">
31-
<span>Current config: {currentApiConfigName}</span>
32-
{isRenaming ? (
33-
<div>
34-
<input
35-
data-testid="rename-input"
36-
value={newName}
37-
onChange={(e) => setNewName(e.target.value)}
38-
placeholder="Enter new profile name"
39-
/>
40-
<button data-testid="confirm-rename-button" onClick={handleRename}>
41-
Confirm
42-
</button>
43-
<button data-testid="cancel-rename-button" onClick={() => setIsRenaming(false)}>
44-
Cancel
45-
</button>
46-
</div>
47-
) : (
48-
<button data-testid="rename-profile-button" onClick={handleRename}>
49-
Rename Profile
27+
return (
28+
<div data-testid="api-config-management">
29+
<span>Current config: {currentApiConfigName}</span>
30+
{isRenaming ? (
31+
<div>
32+
<input
33+
data-testid="rename-input"
34+
value={newName}
35+
onChange={(e) => setNewName(e.target.value)}
36+
placeholder="Enter new profile name"
37+
/>
38+
<button data-testid="confirm-rename-button" onClick={handleRename}>
39+
Confirm
5040
</button>
51-
)}
52-
</div>
53-
)
54-
},
41+
<button data-testid="cancel-rename-button" onClick={() => setIsRenaming(false)}>
42+
Cancel
43+
</button>
44+
</div>
45+
) : (
46+
<button data-testid="rename-profile-button" onClick={handleRename}>
47+
Rename Profile
48+
</button>
49+
)}
50+
</div>
51+
)
52+
}
53+
54+
vi.mock("../ApiConfigManager", () => ({
55+
__esModule: true,
56+
default: MockApiConfigManager,
5557
}))
5658

5759
vi.mock("@vscode/webview-ui-toolkit/react", () => ({

0 commit comments

Comments
 (0)