Skip to content

Commit 3183f97

Browse files
committed
address claude code review points
1 parent f9dd352 commit 3183f97

File tree

4 files changed

+32
-14
lines changed

4 files changed

+32
-14
lines changed

docs/mocks.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ interface AutoAPIMockInstance<T> {
9898
scenario(name: string, fn: (instance: AutoAPIMockInstance<T>) => AutoAPIMockInstance<T>): this;
9999

100100
// Activate a named scenario for the current test
101-
useScenario(name: string): this;
101+
activateScenario(name: string): this;
102102

103103
// Reset to default behavior (called automatically before each test)
104104
reset(): this;
@@ -229,14 +229,14 @@ import { mockedGetRegistryV01Servers } from "@mocks/fixtures/registry_v0_1_serve
229229

230230
describe("getServers", () => {
231231
it("returns empty array when API returns no servers", async () => {
232-
mockedGetRegistryV01Servers.useScenario(MockScenarios.EmptyServers);
232+
mockedGetRegistryV01Servers.activateScenario(MockScenarios.EmptyServers);
233233

234234
const servers = await getServers();
235235
expect(servers).toEqual([]);
236236
});
237237

238238
it("throws on 500 server error", async () => {
239-
mockedGetRegistryV01Servers.useScenario(MockScenarios.ServerError);
239+
mockedGetRegistryV01Servers.activateScenario(MockScenarios.ServerError);
240240

241241
await expect(getServers()).rejects.toBeDefined();
242242
});

src/app/catalog/actions.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,18 @@ describe("getServers", () => {
2626
expect(servers[0].name).toBe("awslabs/aws-nova-canvas");
2727
});
2828

29-
// Demo: using .useScenario() for reusable test scenarios
29+
// Demo: using .activateScenario() for reusable test scenarios
3030
it("returns empty array when using empty-servers scenario", async () => {
31-
mockedGetRegistryV01Servers.useScenario("empty-servers");
31+
mockedGetRegistryV01Servers.activateScenario("empty-servers");
3232

3333
const servers = await getServers();
3434

3535
expect(servers).toEqual([]);
3636
});
3737

38-
// Demo: using .useScenario() for error scenarios
38+
// Demo: using .activateScenario() for error scenarios
3939
it("throws on server error scenario", async () => {
40-
mockedGetRegistryV01Servers.useScenario("server-error");
40+
mockedGetRegistryV01Servers.activateScenario("server-error");
4141

4242
await expect(getServers()).rejects.toBeDefined();
4343
});

src/mocks/autoAPIMock.ts

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,37 @@ type ScenarioFn<T> = (
1212
instance: AutoAPIMockInstance<T>,
1313
) => AutoAPIMockInstance<T>;
1414

15-
export interface UseScenarioOptions {
15+
export interface ActivateScenarioOptions {
1616
/** If true, silently falls back to default when scenario doesn't exist. Default: false (throws) */
1717
fallbackToDefault?: boolean;
1818
}
1919

2020
export interface AutoAPIMockInstance<T> {
21+
/** Internal MSW handler - don't call directly */
2122
generatedHandler: HttpResponseResolver;
23+
24+
/** Override response data with type safety. Preferred for simple data changes. */
2225
override: (fn: OverrideFn<T>) => AutoAPIMockInstance<T>;
26+
27+
/** Override the full handler. Use for errors, network failures, or invalid data. */
2328
overrideHandler: (fn: OverrideHandlerFn<T>) => AutoAPIMockInstance<T>;
29+
30+
/** Define a reusable named scenario for this mock. */
2431
scenario: (
2532
name: MockScenarioName,
2633
fn: ScenarioFn<T>,
2734
) => AutoAPIMockInstance<T>;
28-
useScenario: (
35+
36+
/** Activate a named scenario for the current test. */
37+
activateScenario: (
2938
name: MockScenarioName,
30-
options?: UseScenarioOptions,
39+
options?: ActivateScenarioOptions,
3140
) => AutoAPIMockInstance<T>;
41+
42+
/** Reset to default behavior. Called automatically before each test. */
3243
reset: () => AutoAPIMockInstance<T>;
44+
45+
/** The default fixture data. */
3346
defaultValue: T;
3447
}
3548

@@ -83,7 +96,10 @@ export function AutoAPIMock<T>(defaultValue: T): AutoAPIMockInstance<T> {
8396
return instance;
8497
},
8598

86-
useScenario(name: MockScenarioName, options?: UseScenarioOptions) {
99+
activateScenario(
100+
name: MockScenarioName,
101+
options?: ActivateScenarioOptions,
102+
) {
87103
const scenarioFn = scenarios.get(name);
88104
if (!scenarioFn) {
89105
if (options?.fallbackToDefault) {
@@ -119,7 +135,6 @@ export function resetAllAutoAPIMocks(): void {
119135
*/
120136
export function activateMockScenario(name: MockScenarioName): void {
121137
for (const instance of registry) {
122-
// biome-ignore lint/correctness/useHookAtTopLevel: useScenario is not a React hook
123-
instance.useScenario(name, { fallbackToDefault: true });
138+
instance.activateScenario(name, { fallbackToDefault: true });
124139
}
125140
}

src/mocks/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
export type { AutoAPIMockInstance, UseScenarioOptions } from "./autoAPIMock";
1+
export type {
2+
ActivateScenarioOptions,
3+
AutoAPIMockInstance,
4+
} from "./autoAPIMock";
25
export {
36
AutoAPIMock,
47
activateMockScenario,

0 commit comments

Comments
 (0)