Skip to content

Commit 91bdf20

Browse files
Mock keychain and utils via subpath imports (#1435)
* Migrate keychain to subpath imports * Migrate utils to subpath imports * chore: update storybook snapshots --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 0f1409c commit 91bdf20

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+335
-181
lines changed

packages/keychain/.storybook/main.ts

-16
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,6 @@ const config: StorybookConfig = {
2626
external: ["vite-plugin-node-polyfills/shims/global"],
2727
},
2828
},
29-
resolve: {
30-
alias: {
31-
"@cartridge/utils/api/cartridge": require.resolve(
32-
"../node_modules/@cartridge/utils/dist/api/cartridge/index.js",
33-
),
34-
"@cartridge/utils/api/indexer": require.resolve(
35-
"../node_modules/@cartridge/utils/dist/api/indexer/index.js",
36-
),
37-
"@cartridge/utils/mock/data": require.resolve(
38-
"../node_modules/@cartridge/utils/dist/mock/data/index.js",
39-
),
40-
"@cartridge/utils": require.resolve(
41-
"../node_modules/@cartridge/utils/dist/index.mock.js",
42-
),
43-
},
44-
},
4529
}),
4630
staticDirs: ["../public"],
4731
previewHead: process.env.SNAPSHOT

packages/keychain/global.d.ts

-10
This file was deleted.

packages/keychain/package.json

+9
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,15 @@
2020
"test:storybook:update": "start-server-and-test 'SNAPSHOT=1 pnpm storybook:serve' 6001 'pnpm test-storybook --url http://127.0.0.1:6001 -u'",
2121
"test:storybook": "start-server-and-test 'pnpm storybook:serve' 6001 'pnpm test-storybook -u'"
2222
},
23+
"imports": {
24+
"#*": [
25+
"./src/*",
26+
"./src/*.ts",
27+
"./src/*.tsx",
28+
"./src/*/index.ts",
29+
"./src/*/index.tsx"
30+
]
31+
},
2332
"dependencies": {
2433
"@cartridge/account-wasm": "workspace:*",
2534
"@cartridge/controller": "workspace:*",

packages/keychain/src/components/ControllerErrorAlert.stories.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { ErrorCode } from "@cartridge/account-wasm/controller";
44
import {
55
starknetTransactionExecutionErrorTestCases,
66
starknetTransactionValidationErrorTestCases,
7-
} from "@/utils/errors";
7+
} from "#utils/errors";
88

99
const meta = {
1010
component: ControllerErrorAlert,

packages/keychain/src/components/DeployController.stories.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { Meta, StoryObj } from "@storybook/react";
33
import { DeployController } from "./DeployController";
44
import { constants, num } from "starknet";
55
import { JsControllerError } from "@cartridge/account-wasm/controller";
6-
import Controller from "@/utils/controller";
6+
import Controller from "#utils/controller";
77

88
const meta = {
99
component: DeployController,

packages/keychain/src/components/DeployController.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ import {
1818
ControllerIcon,
1919
} from "@cartridge/ui-next";
2020
import { Funding } from "./funding";
21-
import { useConnection } from "@/hooks/connection";
21+
import { useConnection } from "#hooks/connection";
2222
import { ControllerErrorAlert, ErrorAlert } from "./ErrorAlert";
23-
import { useDeploy } from "@/hooks/deploy";
23+
import { useDeploy } from "#hooks/deploy";
2424
import { Fees } from "./Fees";
25-
import { ControllerError } from "@/utils/connection";
26-
import { TransactionSummary } from "@/components/transaction/TransactionSummary";
25+
import { ControllerError } from "#utils/connection";
26+
import { TransactionSummary } from "#components/transaction/TransactionSummary";
2727
import { Link } from "react-router-dom";
2828
import { getChainName, useFeeToken } from "@cartridge/utils";
2929

packages/keychain/src/components/ErrorAlert.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ import React, {
1919
useState,
2020
} from "react";
2121
import { ErrorCode } from "@cartridge/account-wasm/controller";
22-
import { ControllerError } from "@/utils/connection";
23-
import { parseExecutionError, parseValidationError } from "@/utils/errors";
22+
import { ControllerError } from "#utils/connection";
23+
import { parseExecutionError, parseValidationError } from "#utils/errors";
2424
import { formatAddress } from "@cartridge/utils";
2525
import { Link } from "react-router-dom";
2626
import { useExplorer } from "@starknet-react/core";

packages/keychain/src/components/ErrorBoundary.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import {
88
Button,
99
LayoutHeader,
1010
} from "@cartridge/ui-next";
11-
import { useConnection } from "@/hooks/connection";
12-
import { CARTRIDGE_DISCORD_LINK } from "@/const";
11+
import { useConnection } from "#hooks/connection";
12+
import { CARTRIDGE_DISCORD_LINK } from "#const";
1313
import { Link } from "react-router-dom";
1414
import { useEffect } from "react";
1515
import { usePostHog } from "./provider/posthog";

packages/keychain/src/components/ErrorBoundry.stories.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Meta, StoryObj } from "@storybook/react";
22
import { ErrorPage } from "./ErrorBoundary";
33

44
const meta: Meta<typeof ErrorPage> = {
5-
title: "@/components/ErrorPage",
5+
title: "#components/ErrorPage",
66
component: ErrorPage,
77
parameters: {
88
layout: "centered",

packages/keychain/src/components/ExecutionContainer.test.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { screen, fireEvent, waitFor } from "@testing-library/react";
22
import { ExecutionContainer } from "./ExecutionContainer";
33
import { describe, expect, beforeEach, it, vi } from "vitest";
4-
import { renderWithConnection } from "@/test/mocks/connection";
5-
import { renderWithProviders } from "@/test/mocks/providers";
4+
import { renderWithConnection } from "#test/mocks/connection";
5+
import { renderWithProviders } from "#test/mocks/providers";
66

77
describe("ExecutionContainer", () => {
88
const defaultProps = {

packages/keychain/src/components/ExecutionContainer.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { ControllerErrorAlert, ErrorAlert } from "@/components/ErrorAlert";
2-
import { useConnection } from "@/hooks/connection";
3-
import type { ControllerError } from "@/utils/connection";
4-
import { parseControllerError } from "@/utils/connection/execute";
1+
import { ControllerErrorAlert, ErrorAlert } from "#components/ErrorAlert";
2+
import { useConnection } from "#hooks/connection";
3+
import type { ControllerError } from "#utils/connection";
4+
import { parseControllerError } from "#utils/connection/execute";
55
import { ErrorCode } from "@cartridge/account-wasm/controller";
66
import {
77
Button,
@@ -17,7 +17,7 @@ import type { Call, EstimateFee } from "starknet";
1717
import { DeployController } from "./DeployController";
1818
import { Fees } from "./Fees";
1919
import { Funding } from "./funding";
20-
import { OcclusionDetector } from "@/components/OcclusionDetector";
20+
import { OcclusionDetector } from "#components/OcclusionDetector";
2121

2222
interface ExecutionContainerProps {
2323
transactions: Call[];

packages/keychain/src/components/OcclusionDetector.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useConnection } from "@/hooks/connection";
1+
import { useConnection } from "#hooks/connection";
22
import { useEffect, useRef, useState, useCallback } from "react";
33

44
export function OcclusionDetector() {

packages/keychain/src/components/SignMessage.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import {
1212
CardListItem,
1313
LayoutHeader,
1414
} from "@cartridge/ui-next";
15-
import { useConnection } from "@/hooks/connection";
16-
import { OcclusionDetector } from "@/components/OcclusionDetector";
15+
import { useConnection } from "#hooks/connection";
16+
import { OcclusionDetector } from "#components/OcclusionDetector";
1717

1818
export function SignMessage({
1919
typedData,

packages/keychain/src/components/Transaction.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import {
66
Spinner,
77
StarknetIcon,
88
} from "@cartridge/ui-next";
9-
import { useController } from "@/hooks/controller";
10-
import { useChainName } from "@/hooks/chain";
9+
import { useController } from "#hooks/controller";
10+
import { useChainName } from "#hooks/chain";
1111
import { StarkscanUrl } from "@cartridge/utils";
1212
import { Link } from "react-router-dom";
1313

packages/keychain/src/components/authenticate.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Authenticate as AuthComponent } from "@/components/connect";
1+
import { Authenticate as AuthComponent } from "#components/connect";
22
import { constants } from "starknet";
33
import { useEffect, useState } from "react";
44
import { useNavigate, useSearchParams } from "react-router-dom";

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { Meta, StoryObj } from "@storybook/react";
22
import { CreateSession } from "./CreateSession";
33
import { ETH_CONTRACT_ADDRESS } from "@cartridge/utils";
4-
import { parseSessionPolicies } from "@/hooks/session";
4+
import { parseSessionPolicies } from "#hooks/session";
55
import { controllerConfigs } from "@cartridge/presets";
66

77
const meta: Meta<typeof CreateSession> = {

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

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import { ControllerErrorAlert } from "@/components/ErrorAlert";
2-
import { SessionConsent } from "@/components/connect";
3-
import { Upgrade } from "./Upgrade";
4-
import { UnverifiedSessionSummary } from "@/components/session/UnverifiedSessionSummary";
5-
import { VerifiedSessionSummary } from "@/components/session/VerifiedSessionSummary";
6-
import { NOW } from "@/const";
7-
import { CreateSessionProvider } from "@/context/session";
8-
import { useConnection } from "@/hooks/connection";
1+
import { ControllerErrorAlert } from "#components/ErrorAlert";
2+
import { SessionConsent } from "#components/connect";
3+
import { Upgrade } from "#components/connect/Upgrade";
4+
import { UnverifiedSessionSummary } from "#components/session/UnverifiedSessionSummary";
5+
import { VerifiedSessionSummary } from "#components/session/VerifiedSessionSummary";
6+
import { NOW } from "#const";
7+
import { CreateSessionProvider } from "#context/session";
8+
import { useConnection } from "#hooks/connection";
99
import {
1010
type ContractType,
1111
type ParsedSessionPolicies,
1212
useCreateSession,
13-
} from "@/hooks/session";
14-
import type { ControllerError } from "@/utils/connection";
13+
} from "#hooks/session";
14+
import type { ControllerError } from "#utils/connection";
1515
import {
1616
Button,
1717
Checkbox,
@@ -23,7 +23,7 @@ import {
2323
} from "@cartridge/ui-next";
2424
import { useCallback, useMemo, useState } from "react";
2525
import { type BigNumberish } from "starknet";
26-
import { OcclusionDetector } from "../OcclusionDetector";
26+
import { OcclusionDetector } from "#components/OcclusionDetector";
2727
import { useUpgrade } from "../provider/upgrade";
2828

2929
const requiredPolicies: Array<ContractType> = ["VRF"];

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

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import { ExecutionContainer } from "@/components/ExecutionContainer";
2-
import { SessionConsent } from "@/components/connect";
3-
import { UnverifiedSessionSummary } from "@/components/session/UnverifiedSessionSummary";
4-
import { VerifiedSessionSummary } from "@/components/session/VerifiedSessionSummary";
5-
import { NOW } from "@/const";
6-
import { CreateSessionProvider } from "@/context/session";
7-
import { useConnection } from "@/hooks/connection";
1+
import { ExecutionContainer } from "#components/ExecutionContainer";
2+
import { SessionConsent } from "#components/connect";
3+
import { UnverifiedSessionSummary } from "#components/session/UnverifiedSessionSummary";
4+
import { VerifiedSessionSummary } from "#components/session/VerifiedSessionSummary";
5+
import { NOW } from "#const";
6+
import { CreateSessionProvider } from "#context/session";
7+
import { useConnection } from "#hooks/connection";
88
import {
99
type ContractType,
1010
type ParsedSessionPolicies,
1111
useCreateSession,
12-
} from "@/hooks/session";
12+
} from "#hooks/session";
1313
import { Button, LayoutContent, SliderIcon } from "@cartridge/ui-next";
1414
import { useCallback, useEffect, useMemo, useState } from "react";
1515
import {

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useConnection } from "@/hooks/connection";
1+
import { useConnection } from "#hooks/connection";
22
import { LockIcon, VerifiedIcon } from "@cartridge/ui-next";
33
import { useMemo } from "react";
44
import { Link } from "react-router-dom";

packages/keychain/src/components/connect/Upgrade.stories.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { Meta, StoryObj } from "@storybook/react";
22

33
import { Upgrade } from "./Upgrade";
4-
import Controller from "@/utils/controller";
4+
import Controller from "#utils/controller";
55
import { constants } from "starknet";
66

77
const meta = {

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { LayoutContent, BoltIcon, CircleIcon } from "@cartridge/ui-next";
2-
import { ExecutionContainer } from "@/components/ExecutionContainer";
3-
import { useConnection } from "@/hooks/connection";
2+
import { ExecutionContainer } from "#components/ExecutionContainer";
3+
import { useConnection } from "#hooks/connection";
44
import { useUpgrade } from "../provider/upgrade";
55

66
export const Upgrade = () => {

packages/keychain/src/components/connect/authenticate/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
LayoutHeader,
88
} from "@cartridge/ui-next";
99
import { Unsupported } from "./Unsupported";
10-
import { doSignup } from "@/hooks/account";
10+
import { doSignup } from "#hooks/account";
1111
import { useIsSupported } from "./useIsSupported";
1212
import { FaceIDImage } from "./FaceID";
1313

packages/keychain/src/components/connect/create/CreateController.stories.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Meta, StoryObj } from "@storybook/react";
22
import { CreateControllerView } from "./CreateController";
3-
import { VerifiableControllerTheme } from "@/components/provider/connection";
3+
import { VerifiableControllerTheme } from "#components/provider/connection";
44

55
const meta: Meta<typeof CreateControllerView> = {
66
component: CreateControllerView,

packages/keychain/src/components/connect/create/CreateController.test.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@ import { screen, fireEvent, waitFor } from "@testing-library/react";
33
import { CreateController } from "./CreateController";
44
import { describe, expect, beforeEach, it } from "vitest";
55
import { LoginMode } from "../types";
6-
import { renderWithProviders } from "@/test/mocks/providers";
6+
import { renderWithProviders } from "#test/mocks/providers";
77

88
// Create mock functions that we'll use in multiple tests
99
const mockUseCreateController = vi.fn();
1010
const mockUseUsernameValidation = vi.fn();
1111
const mockUseControllerTheme = vi.fn();
1212

1313
// Mock the hooks
14-
vi.mock("@/hooks/posthog", () => ({
14+
vi.mock("#hooks/posthog", () => ({
1515
usePostHog: () => ({
1616
capture: vi.fn(),
1717
}),
1818
}));
1919

20-
vi.mock("@/hooks/connection", () => ({
20+
vi.mock("#hooks/connection", () => ({
2121
useControllerTheme: () => mockUseControllerTheme(),
2222
}));
2323

packages/keychain/src/components/connect/create/CreateController.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ import {
77
LayoutHeader,
88
CreateAccount,
99
} from "@cartridge/ui-next";
10-
import { useDebounce } from "@/hooks/debounce";
10+
import { useDebounce } from "#hooks/debounce";
1111
import { useUsernameValidation } from "./useUsernameValidation";
1212
import { LoginMode } from "../types";
1313
import { Legal } from "./Legal";
1414
import { useCreateController } from "./useCreateController";
15-
import { ErrorAlert } from "@/components/ErrorAlert";
15+
import { ErrorAlert } from "#components/ErrorAlert";
1616
import InAppSpy from "inapp-spy";
17-
import { usePostHog } from "@/components/provider/posthog";
18-
import { useControllerTheme } from "@/hooks/connection";
19-
import { VerifiableControllerTheme } from "@/components/provider/connection";
17+
import { usePostHog } from "#components/provider/posthog";
18+
import { useControllerTheme } from "#hooks/connection";
19+
import { VerifiableControllerTheme } from "#components/provider/connection";
2020

2121
interface CreateControllerViewProps {
2222
theme: VerifiableControllerTheme;

packages/keychain/src/components/connect/create/useCreateController.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { useState, useCallback } from "react";
2-
import { useConnection } from "@/hooks/connection";
2+
import { useConnection } from "#hooks/connection";
33
import { LoginMode } from "../types";
4-
import { doLogin, doSignup } from "@/hooks/account";
4+
import { doLogin, doSignup } from "#hooks/account";
55
import { constants, RpcProvider } from "starknet";
6-
import Controller from "@/utils/controller";
6+
import Controller from "#utils/controller";
77
import { fetchAccount } from "./utils";
8-
import { PopupCenter } from "@/utils/url";
8+
import { PopupCenter } from "#utils/url";
99
import { useAccountQuery } from "@cartridge/utils/api/cartridge";
1010

1111
export function useCreateController({

packages/keychain/src/components/connect/create/utils.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import type { ContractType } from "@/hooks/session";
2-
import { fetchData } from "@/utils/graphql";
1+
import type { ContractType } from "#hooks/session";
2+
import { fetchData } from "#utils/graphql";
33
import {
44
AccountDocument,
55
type AccountQuery,

packages/keychain/src/components/failure.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
ExternalIcon,
55
LayoutHeader,
66
} from "@cartridge/ui-next";
7-
import { CARTRIDGE_DISCORD_LINK } from "@/const";
7+
import { CARTRIDGE_DISCORD_LINK } from "#const";
88
import { Link } from "react-router-dom";
99

1010
export function Failure() {

packages/keychain/src/components/funding/Balance.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
formatBalance,
1212
convertTokenAmountToUSD,
1313
} from "@cartridge/utils";
14-
import { useController } from "@/hooks/controller";
14+
import { useController } from "#hooks/controller";
1515

1616
export enum BalanceType {
1717
CREDITS = "credits",

packages/keychain/src/components/funding/Deposit.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import {
3030
LayoutHeader,
3131
} from "@cartridge/ui-next";
3232
import { useFeeToken, convertUSDToTokenAmount } from "@cartridge/utils";
33-
import { useConnection } from "@/hooks/connection";
33+
import { useConnection } from "#hooks/connection";
3434
import { ErrorAlert } from "../ErrorAlert";
3535
import { AmountSelection } from "./AmountSelection";
3636
import { Balance, BalanceType } from "./Balance";

packages/keychain/src/components/funding/PurchaseCredits.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { ErrorAlert } from "@/components/ErrorAlert";
2-
import { useConnection } from "@/hooks/connection";
1+
import { ErrorAlert } from "#components/ErrorAlert";
2+
import { useConnection } from "#hooks/connection";
33
import {
44
Button,
55
Card,

0 commit comments

Comments
 (0)