Skip to content

Commit be456c6

Browse files
Mock connection via subpath imports
1 parent 96da234 commit be456c6

File tree

9 files changed

+71
-72
lines changed

9 files changed

+71
-72
lines changed

packages/keychain/.storybook/preview.tsx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ import type { Preview, ReactRenderer } from "@storybook/react";
33
import { withThemeByClassName } from "@storybook/addon-themes";
44
import { SonnerToaster } from "@cartridge/ui-next";
55

6-
import { StoryParameters } from "./mock";
7-
import { Provider } from "./provider";
6+
import {
7+
StoryParameters,
8+
ParametersProvider,
9+
} from "#components/provider/parameters";
10+
import { Provider } from "#components/provider";
811

912
import "../src/index.css";
1013

@@ -42,10 +45,12 @@ const preview: Preview = {
4245
defaultTheme: "dark",
4346
}),
4447
(Story, { parameters }) => (
45-
<Provider parameters={parameters as StoryParameters}>
46-
<Story />
47-
<SonnerToaster />
48-
</Provider>
48+
<ParametersProvider parameters={parameters as StoryParameters}>
49+
<Provider>
50+
<Story />
51+
<SonnerToaster />
52+
</Provider>
53+
</ParametersProvider>
4954
),
5055
],
5156
};

packages/keychain/.storybook/provider.tsx

Lines changed: 0 additions & 39 deletions
This file was deleted.

packages/keychain/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
"test:storybook": "start-server-and-test 'pnpm storybook:serve' 6001 'pnpm test-storybook -u'"
2222
},
2323
"imports": {
24+
"#hooks/connection": {
25+
"storybook": "./src/hooks/connection.mock.ts",
26+
"default": "./src/hooks/connection.ts"
27+
},
2428
"#*": [
2529
"./src/*",
2630
"./src/*.ts",

packages/keychain/src/components/connect/CreateSession.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Upgrade } from "#components/connect/Upgrade";
44
import { UnverifiedSessionSummary } from "#components/session/UnverifiedSessionSummary";
55
import { VerifiedSessionSummary } from "#components/session/VerifiedSessionSummary";
66
import { NOW } from "#const";
7-
import { CreateSessionProvider } from "#context/session";
7+
import { CreateSessionProvider } from "#components/provider/session";
88
import { useConnection } from "#hooks/connection";
99
import {
1010
type ContractType,

packages/keychain/src/components/connect/RegisterSession.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { SessionConsent } from "#components/connect";
33
import { UnverifiedSessionSummary } from "#components/session/UnverifiedSessionSummary";
44
import { VerifiedSessionSummary } from "#components/session/VerifiedSessionSummary";
55
import { NOW } from "#const";
6-
import { CreateSessionProvider } from "#context/session";
6+
import { CreateSessionProvider } from "#components/provider/session";
77
import { useConnection } from "#hooks/connection";
88
import {
99
type ContractType,
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { PropsWithChildren } from "react";
2+
import { ParametersContext, StoryParameters } from "#hooks/parameters";
3+
4+
export function ParametersProvider({
5+
parameters,
6+
children,
7+
}: { parameters: StoryParameters } & PropsWithChildren) {
8+
return (
9+
<ParametersContext.Provider value={parameters}>
10+
{children}
11+
</ParametersContext.Provider>
12+
);
13+
}
File renamed without changes.
Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,18 @@
1-
import { constants, RpcProvider } from "starknet";
2-
import { controllerConfigs, SessionPolicies } from "@cartridge/presets";
3-
import { Parameters } from "@storybook/react";
4-
import { ConnectionContextValue } from "../src/components/provider/connection";
5-
import { UpgradeInterface } from "../src/hooks/upgrade";
6-
import { ConnectCtx, ConnectionCtx } from "../src/utils/connection/types";
7-
import { defaultTheme } from "@cartridge/presets";
1+
import { ConnectionContextValue } from "#components/provider/connection";
2+
import { ConnectCtx } from "#utils/connection/types";
3+
import { controllerConfigs, defaultTheme } from "@cartridge/controller";
84
import { useThemeEffect } from "@cartridge/ui-next";
9-
import Controller from "../src/utils/controller";
5+
import { fn, Mock } from "@storybook/test";
6+
import { useParameters } from "./parameters";
7+
import { constants, RpcProvider } from "starknet";
8+
import { ParsedSessionPolicies } from "./session";
9+
import { UpgradeInterface } from "./upgrade";
10+
import Controller from "#utils/controller";
1011

11-
export interface StoryParameters extends Parameters {
12-
connection?: {
13-
context?: ConnectionCtx;
14-
controller?: Controller;
15-
chainId?: string;
16-
upgrade?: UpgradeInterface;
17-
};
18-
preset?: string;
19-
policies?: SessionPolicies;
20-
}
12+
export * from "./connection";
2113

22-
export function useMockedConnection(
23-
parameters: StoryParameters = {},
24-
): ConnectionContextValue {
14+
export const useConnectionValue: Mock<() => ConnectionContextValue> = fn(() => {
15+
const parameters = useParameters();
2516
const {
2617
chainId = constants.StarknetChainId.SN_MAIN,
2718
context = {
@@ -53,11 +44,13 @@ export function useMockedConnection(
5344
provider: new RpcProvider({
5445
nodeUrl: "https://api.cartridge.gg/x/starknet/sepolia",
5546
}),
47+
classHash: () =>
48+
"0x0000000000000000000000000000000000000000000000000000000000000000",
5649
...controller,
57-
},
50+
} as Controller,
5851
origin: "http://localhost:3002",
5952
rpcUrl: "http://api.cartridge.gg/x/starknet/mainnet",
60-
policies: {},
53+
policies: {} as ParsedSessionPolicies,
6154
theme: { ...theme, verified: true },
6255
hasPrefundRequest: false,
6356
setContext: () => {},
@@ -66,7 +59,7 @@ export function useMockedConnection(
6659
openModal: () => {},
6760
logout: () => {},
6861
openSettings: () => {},
69-
upgrade: {},
62+
upgrade: {} as UpgradeInterface,
7063
...rest,
7164
};
72-
}
65+
}).mockName("useConnectionValue");
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { createContext, useContext } from "react";
2+
import { ConnectionCtx } from "#utils/connection/types";
3+
import Controller from "#utils/controller";
4+
import { UpgradeInterface } from "#hooks/upgrade";
5+
import { SessionPolicies } from "@cartridge/presets";
6+
import { Parameters } from "@storybook/react";
7+
8+
export interface StoryParameters extends Parameters {
9+
connection?: {
10+
context?: ConnectionCtx;
11+
controller?: Controller;
12+
chainId?: string;
13+
upgrade?: UpgradeInterface;
14+
};
15+
preset?: string;
16+
policies?: SessionPolicies;
17+
}
18+
19+
export const ParametersContext = createContext<StoryParameters>({});
20+
21+
export function useParameters() {
22+
return useContext(ParametersContext);
23+
}

0 commit comments

Comments
 (0)