Skip to content

Commit 850b3dd

Browse files
sjwilczynskiStanislaw Wilczynski
andauthored
feat(nova/react-test-utils): make types for referenceEntries stronger (#169)
* add stronger reference entries * Change files --------- Co-authored-by: Stanislaw Wilczynski <stwilczy@microsoft.com>
1 parent ad1b630 commit 850b3dd

14 files changed

+333
-28
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "patch",
3+
"comment": "use stronger typing for reference entries",
4+
"packageName": "@nova/examples",
5+
"email": "stwilczy@microsoft.com",
6+
"dependentChangeType": "patch"
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "minor",
3+
"comment": "add stronger referece entries types",
4+
"packageName": "@nova/react-test-utils",
5+
"email": "stwilczy@microsoft.com",
6+
"dependentChangeType": "patch"
7+
}

packages/examples/src/apollo/Feedback/Feedback.stories.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ import type { withErrorBoundaryParameters } from "../../testing-utils/decorators
1818
import { schema } from "../../testing-utils/schema";
1919
import { defaultNodeResolver } from "../../testing-utils/resolvers";
2020

21-
type NovaParameters = WithNovaEnvironment<FeedbackStoryQuery, TypeMap>;
21+
type NovaParameters = WithNovaEnvironment<
22+
FeedbackStoryQuery,
23+
TypeMap,
24+
typeof FeedbackComponent
25+
>;
2226

2327
const meta = {
2428
component: FeedbackComponent,

packages/examples/src/apollo/Feedback/FeedbackContainer.stories.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ import { defaultNodeResolver } from "../../testing-utils/resolvers";
2626
const telemetryEventMock =
2727
fn<[{ event: FeedbackTelemetryEvent; source: unknown }]>();
2828

29-
type NovaParams = WithNovaEnvironment<UnknownOperation, TypeMap>;
29+
type NovaParams = WithNovaEnvironment<
30+
UnknownOperation,
31+
TypeMap,
32+
typeof FeedbackContainer
33+
>;
3034

3135
const meta = {
3236
component: FeedbackContainer,

packages/examples/src/relay/Feedback/Feedback.stories.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ import type { events } from "../../events/events";
1818
import { fn } from "@storybook/test";
1919
import { type withErrorBoundaryParameters } from "../../testing-utils/decorators";
2020

21-
type NovaParameters = WithNovaEnvironment<FeedbackStoryQuery, TypeMap>;
21+
type NovaParameters = WithNovaEnvironment<
22+
FeedbackStoryQuery,
23+
TypeMap,
24+
typeof FeedbackComponent
25+
>;
2226

2327
const MockPayloadGenerator = new PayloadGenerator(schema);
2428

@@ -42,7 +46,7 @@ const meta = {
4246
`,
4347
variables: { id: "42" },
4448
referenceEntries: {
45-
feedback: (data) => data?.feedback,
49+
feedback: (data) => data.feedback,
4650
},
4751
},
4852
} satisfies NovaParameters,
@@ -65,7 +69,7 @@ export const Primary: Story = {
6569
const container = within(context.canvasElement);
6670
// Verify that value from relay resolvers come through
6771
await container.findByText("Feedback from resolvers: Feedback title");
68-
}
72+
},
6973
};
7074

7175
export const Liked: Story = {

packages/examples/src/relay/Feedback/FeedbackContainer.stories.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,12 @@ import { FeedbackContainer } from "./FeedbackContainer";
2222
import { type events, type FeedbackTelemetryEvent } from "../../events/events";
2323
import * as React from "react";
2424
import { schema } from "../../testing-utils/schema";
25-
import { displayLabel } from "../resolvers/feedback-resolvers";
2625

27-
type NovaParameters = WithNovaEnvironment<UnknownOperation, TypeMap>;
26+
type NovaParameters = WithNovaEnvironment<
27+
UnknownOperation,
28+
TypeMap,
29+
typeof FeedbackContainer
30+
>;
2831

2932
const MockPayloadGenerator = new PayloadGenerator(schema);
3033

packages/examples/src/relay/pure-relay/Feedback.stories.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ import * as React from "react";
1919
import type { events } from "../../events/events";
2020
import { type withErrorBoundaryParameters } from "../../testing-utils/decorators";
2121

22-
type NovaParameters = WithNovaEnvironment<FeedbackStoryRelayQuery, TypeMap>;
22+
type NovaParameters = WithNovaEnvironment<
23+
FeedbackStoryRelayQuery,
24+
TypeMap,
25+
typeof FeedbackComponent
26+
>;
2327

2428
const novaDecorator = getNovaDecorator(schema, {
2529
getEnvironmentOptions: () => ({

packages/examples/src/relay/pure-relay/SuggestedFriends/SuggestedFriends.stories.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@ import type { TypeMap } from "../../../__generated__/schema.all.interface";
1111
import { SuggestedFriendsComponent } from "./SuggestedFriends";
1212
import type { SuggestedFriendsStoryQuery } from "./__generated__/SuggestedFriendsStoryQuery.graphql";
1313

14-
type NovaParameters = WithNovaEnvironment<SuggestedFriendsStoryQuery, TypeMap>;
14+
type NovaParameters = WithNovaEnvironment<
15+
SuggestedFriendsStoryQuery,
16+
TypeMap,
17+
typeof SuggestedFriendsComponent
18+
>;
1519

1620
const novaDecorator = getNovaDecorator(schema, {
1721
getEnvironmentOptions: () => ({
@@ -45,7 +49,7 @@ const meta = {
4549
},
4650
},
4751
{
48-
id: "friend-2",
52+
id: "friend-2",
4953
name: {
5054
firstName: "Bob",
5155
lastName: "Smith",
@@ -68,15 +72,14 @@ const meta = {
6872
export default meta;
6973
type Story = StoryObjWithoutFragmentRefs<typeof meta>;
7074

71-
7275
export const WithDefaultFriends: Story = {
7376
play: async (context) => {
7477
const container = within(context.canvasElement);
7578
// Verify that custom names from resolvers come through
7679
await container.findByText("Alice Johnson");
7780
await container.findByText("Bob Smith");
7881
await container.findByText("Carol Williams");
79-
}
82+
},
8083
};
8184

8285
export const EmptyState: Story = {
@@ -92,7 +95,7 @@ export const EmptyState: Story = {
9295
play: async (context) => {
9396
const container = within(context.canvasElement);
9497
await container.findByText("No suggested friends available.");
95-
}
98+
},
9699
};
97100

98101
export const WithManyFriends: Story = {
@@ -116,9 +119,9 @@ export const WithManyFriends: Story = {
116119
// Verify we have 10 friends
117120
await container.findByText("Friend1 TestUser1");
118121
await container.findByText("Friend10 TestUser10");
119-
122+
120123
// Count the list items
121124
const listItems = container.getAllByRole("listitem");
122125
expect(listItems).toHaveLength(10);
123-
}
126+
},
124127
};

packages/examples/src/relay/pure-relay/extensions/ServerWithExtension.stories.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import type { ServerWithExtensionStoryRelayQuery } from "./__generated__/ServerW
1212
import { within, expect } from "@storybook/test";
1313
import { schema } from "../../../testing-utils/schema";
1414

15-
1615
const novaDecorator = getNovaDecorator(schema, {
1716
generateFunction: (operation, mockResolvers) => {
1817
const result = MockPayloadGenerator.generate(
@@ -48,7 +47,11 @@ const meta = {
4847
}),
4948
},
5049
},
51-
} satisfies WithNovaEnvironment<ServerWithExtensionStoryRelayQuery, TypeMap>,
50+
} satisfies WithNovaEnvironment<
51+
ServerWithExtensionStoryRelayQuery,
52+
TypeMap,
53+
typeof ServerWithExtension
54+
>,
5255
} satisfies Meta<typeof ServerWithExtension>;
5356

5457
export default meta;

packages/examples/src/relay/pure-relay/extensions/ViewDataOnly.stories.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ import { fn, within, expect, waitFor } from "@storybook/test";
1313
import { type withErrorBoundaryParameters } from "../../../testing-utils/decorators";
1414
import { ViewDataOnly } from "./ViewDataOnly";
1515

16-
type NovaParameters = WithNovaEnvironment<ViewDataOnlyStoryRelayQuery, TypeMap>;
16+
type NovaParameters = WithNovaEnvironment<
17+
ViewDataOnlyStoryRelayQuery,
18+
TypeMap,
19+
typeof ViewDataOnly
20+
>;
1721

1822
const mockOnError = fn<[Error]>();
1923

0 commit comments

Comments
 (0)