-
Notifications
You must be signed in to change notification settings - Fork 411
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
## Problem solved Short description of the bug fixed or feature added <!-- start pr-codex --> --- ## PR-Codex overview This PR focuses on significant updates to wallet support, increasing the number of supported wallets from 350+ to 500+. It also includes various code deletions, modifications, and new features across multiple components and files. ### Detailed summary - Increased wallet support from 350+ to 500+ across various components. - Updated `version` in `package.json` files. - Modified `ChainIcon` component to use a fallback icon. - Added `ModalPreview` for connect modal examples. - Updated descriptions in documentation and UI elements. - Refactored several components for better code clarity and functionality. - Deleted multiple unused assets and components. > The following files were skipped due to too many changes: `apps/dashboard/src/components/icons/ChainIcon.tsx`, `packages/thirdweb/src/react/core/utils/structuralSharing.test.ts`, `packages/thirdweb/src/contract/deployment/utils/bootstrap.ts`, `packages/thirdweb/src/react/web/utils/resolveMimeType.test.ts`, `apps/portal/src/app/connect/wallet/sign-in-methods/external-wallets/page.mdx`, `apps/dashboard/src/hooks/useCsvUpload.ts`, `apps/dashboard/src/app/nebula-app/(app)/components/Chats.tsx`, `packages/thirdweb/src/react/web/ui/MediaRenderer/mime/mime.test.ts`, `apps/portal/src/app/connect/account-abstraction/erc-20-paymaster/page.mdx`, `apps/dashboard/src/app/(dashboard)/(chain)/components/server/chain-icon.tsx`, `packages/thirdweb/src/contract/deployment/utils/create-2-factory.ts`, `packages/thirdweb/src/react/web/ui/MediaRenderer/icons.test.tsx`, `packages/thirdweb/src/react/web/ui/hooks/useShowMore.test.tsx`, `packages/thirdweb/src/react/web/ui/hooks/useDebouncedValue.test.tsx`, `apps/portal/src/app/connect/page.mdx`, `apps/portal/src/app/connect/wallet/sign-in-methods/configure/page.mdx`, `packages/thirdweb/src/react/core/utils/walletIcon.ts`, `apps/portal/src/app/typescript/v5/adapters/page.mdx`, `apps/portal/src/app/connect/wallet/get-started/page.mdx`, `apps/portal/src/app/react/v5/adapters/page.mdx`, `packages/thirdweb/src/react/web/ui/MediaRenderer/MediaRenderer.test.tsx`, `apps/portal/src/app/nebula/api-reference/page.mdx`, `packages/thirdweb/src/react/core/utils/walletIcon.test.ts`, `apps/dashboard/src/app/team/[team_slug]/[project_slug]/insight/[blueprint_slug]/blueprint-playground.stories.tsx`, `apps/dashboard/src/app/team/[team_slug]/[project_slug]/insight/[blueprint_slug]/blueprint-playground.client.tsx`, `apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/snapshot-upload.tsx`, `pnpm-lock.yaml` > ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}` <!-- end pr-codex -->
- Loading branch information
Showing
21 changed files
with
1,118 additions
and
61 deletions.
There are no files selected for viewing
11 changes: 11 additions & 0 deletions
11
packages/thirdweb/src/react/core/providers/connection-manager.test.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import { describe, expect, it } from "vitest"; | ||
import { renderHook } from "~test/react-render.js"; | ||
import { useConnectionManager } from "./connection-manager.js"; | ||
|
||
describe("useConnectionManager", () => { | ||
it("throws an error when used outside of ThirdwebProvider", () => { | ||
expect(() => { | ||
renderHook(() => useConnectionManager()); | ||
}).toThrow("useConnectionManager must be used within <ThirdwebProvider>"); | ||
}); | ||
}); |
19 changes: 19 additions & 0 deletions
19
packages/thirdweb/src/react/core/utils/isSmartWallet.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import { describe, expect, it } from "vitest"; | ||
import { ANVIL_CHAIN } from "~test/chains.js"; | ||
import { createWallet } from "../../../wallets/create-wallet.js"; | ||
import { hasSmartAccount } from "./isSmartWallet.js"; | ||
|
||
describe("isSmartWallet", () => { | ||
it("should work if id is inApp and has smartAccount in wallet config", () => { | ||
const wallet = createWallet("inApp", { | ||
smartAccount: { | ||
chain: ANVIL_CHAIN, | ||
sponsorGas: true, | ||
overrides: { | ||
bundlerUrl: "your-bundler-url", | ||
}, | ||
}, | ||
}); | ||
expect(hasSmartAccount(wallet)).toBe(true); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
import { beforeEach, describe, expect, it, vi } from "vitest"; | ||
import type { AsyncStorage } from "../../../utils/storage/AsyncStorage.js"; | ||
import type { AuthArgsType } from "../../../wallets/in-app/core/authentication/types.js"; | ||
import { | ||
LAST_AUTH_PROVIDER_STORAGE_KEY, | ||
getLastAuthProvider, | ||
setLastAuthProvider, | ||
} from "./storage.js"; | ||
|
||
describe("Auth Provider Storage", () => { | ||
let mockStorage: AsyncStorage; | ||
|
||
beforeEach(() => { | ||
mockStorage = { | ||
getItem: vi.fn(), | ||
setItem: vi.fn(), | ||
removeItem: vi.fn(), | ||
}; | ||
}); | ||
|
||
describe("setLastAuthProvider", () => { | ||
it("should store the auth provider in storage", async () => { | ||
const authProvider: AuthArgsType["strategy"] = "email"; | ||
await setLastAuthProvider(authProvider, mockStorage); | ||
|
||
expect(mockStorage.setItem).toHaveBeenCalledWith( | ||
LAST_AUTH_PROVIDER_STORAGE_KEY, | ||
authProvider, | ||
); | ||
}); | ||
}); | ||
|
||
describe("getLastAuthProvider", () => { | ||
it("should retrieve the last auth provider from storage", async () => { | ||
const mockAuthProvider: AuthArgsType["strategy"] = "google"; | ||
vi.mocked(mockStorage.getItem).mockResolvedValue(mockAuthProvider); | ||
|
||
const result = await getLastAuthProvider(mockStorage); | ||
|
||
expect(mockStorage.getItem).toHaveBeenCalledWith( | ||
LAST_AUTH_PROVIDER_STORAGE_KEY, | ||
); | ||
expect(result).toBe(mockAuthProvider); | ||
}); | ||
|
||
it("should return null if no auth provider is stored", async () => { | ||
vi.mocked(mockStorage.getItem).mockResolvedValue(null); | ||
|
||
const result = await getLastAuthProvider(mockStorage); | ||
|
||
expect(mockStorage.getItem).toHaveBeenCalledWith( | ||
LAST_AUTH_PROVIDER_STORAGE_KEY, | ||
); | ||
expect(result).toBeNull(); | ||
}); | ||
}); | ||
}); |
55 changes: 55 additions & 0 deletions
55
packages/thirdweb/src/react/core/utils/structuralSharing.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
import { describe, expect, it } from "vitest"; | ||
import { structuralSharing } from "./structuralSharing.js"; | ||
|
||
describe("structuralSharing", () => { | ||
it("should return the old data if it is deeply equal to the new data", () => { | ||
const oldData = { a: 1, b: { c: 2 } }; | ||
const newData = { a: 1, b: { c: 2 } }; | ||
const result = structuralSharing(oldData, newData); | ||
expect(result).toBe(oldData); | ||
}); | ||
|
||
it("should return a new object with shared structure for equal parts", () => { | ||
const oldData = { a: 1, b: { c: 2 }, d: 3 }; | ||
const newData = { a: 1, b: { c: 2 }, d: 4 }; | ||
const result = structuralSharing(oldData, newData); | ||
expect(result).not.toBe(oldData); | ||
expect(result).not.toBe(newData); | ||
expect(result.a).toBe(oldData.a); | ||
expect(result.b).toBe(oldData.b); | ||
expect(result.d).toBe(newData.d); | ||
}); | ||
|
||
it("should handle arrays correctly", () => { | ||
const oldData = [1, 2, [3, 4]]; | ||
const newData = [1, 2, [3, 5]]; | ||
const result = structuralSharing(oldData, newData); | ||
expect(result).not.toBe(oldData); | ||
expect(result).not.toBe(newData); | ||
expect(result[0]).toBe(oldData[0]); | ||
expect(result[1]).toBe(oldData[1]); | ||
expect(result[2]).not.toBe(oldData[2]); | ||
}); | ||
|
||
it("should handle undefined oldData", () => { | ||
const oldData = undefined; | ||
const newData = { a: 1 }; | ||
const result = structuralSharing(oldData, newData); | ||
expect(result).toBe(newData); | ||
}); | ||
|
||
it("should handle NaN values correctly", () => { | ||
const oldData = { a: Number.NaN }; | ||
const newData = { a: Number.NaN }; | ||
const result = structuralSharing(oldData, newData); | ||
expect(result).toBe(oldData); | ||
}); | ||
|
||
it("should handle objects with different constructors", () => { | ||
class CustomClass {} | ||
const oldData = new CustomClass(); | ||
const newData = { a: 1 }; | ||
const result = structuralSharing(oldData, newData); | ||
expect(result).toBe(newData); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
import { describe, expect, it } from "vitest"; | ||
import { genericWalletIcon, getSocialIcon, socialIcons } from "./walletIcon.js"; | ||
|
||
const emailIcon = | ||
"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjMzMzUgMi42NjY1SDIuNjY2ODNDMS45MzA0NSAyLjY2NjUgMS4zMzM1IDMuMjYzNDYgMS4zMzM1IDMuOTk5ODRWMTEuOTk5OEMxLjMzMzUgMTIuNzM2MiAxLjkzMDQ1IDEzLjMzMzIgMi42NjY4MyAxMy4zMzMySDEzLjMzMzVDMTQuMDY5OSAxMy4zMzMyIDE0LjY2NjggMTIuNzM2MiAxNC42NjY4IDExLjk5OThWMy45OTk4NEMxNC42NjY4IDMuMjYzNDYgMTQuMDY5OSAyLjY2NjUgMTMuMzMzNSAyLjY2NjVaIiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTQuNjY2OCA0LjY2NjVMOC42ODY4MyA4LjQ2NjVDOC40ODEwMSA4LjU5NTQ1IDguMjQzMDQgOC42NjM4NCA4LjAwMDE2IDguNjYzODRDNy43NTcyOCA4LjY2Mzg0IDcuNTE5MzEgOC41OTU0NSA3LjMxMzUgOC40NjY1TDEuMzMzNSA0LjY2NjUiIHN0cm9rZT0iIzMzODVGRiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo="; | ||
const phoneIcon = | ||
"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzU2MzlfNjMyKSI+CjxwYXRoIGQ9Ik0xNC42NjY5IDExLjI4MDJWMTMuMjgwMkMxNC42Njc3IDEzLjQ2NTkgMTQuNjI5NyAxMy42NDk3IDE0LjU1NTMgMTMuODE5OEMxNC40ODA5IDEzLjk4OTkgMTQuMzcxOCAxNC4xNDI2IDE0LjIzNSAxNC4yNjgxQzE0LjA5ODIgMTQuMzkzNyAxMy45MzY3IDE0LjQ4OTIgMTMuNzYwOCAxNC41NDg3QzEzLjU4NDkgMTQuNjA4MiAxMy4zOTg1IDE0LjYzMDMgMTMuMjEzNiAxNC42MTM2QzExLjE2MjIgMTQuMzkwNyA5LjE5MTYxIDEzLjY4OTcgNy40NjAyOCAxMi41NjY5QzUuODQ5NSAxMS41NDMzIDQuNDgzODQgMTAuMTc3NyAzLjQ2MDI4IDguNTY2ODlDMi4zMzM2IDYuODI3NyAxLjYzMjQ0IDQuODQ3NTYgMS40MTM2MSAyLjc4Njg5QzEuMzk2OTUgMi42MDI1NCAxLjQxODg2IDIuNDE2NzMgMS40Nzc5NSAyLjI0MTMxQzEuNTM3MDMgMi4wNjU4OSAxLjYzMTk5IDEuOTA0NjkgMS43NTY3OSAxLjc2Nzk3QzEuODgxNTkgMS42MzEyNiAyLjAzMzQ4IDEuNTIyMDMgMi4yMDI4MSAxLjQ0NzI0QzIuMzcyMTMgMS4zNzI0NSAyLjU1NTE3IDEuMzMzNzQgMi43NDAyOCAxLjMzMzU2SDQuNzQwMjhDNS4wNjM4MiAxLjMzMDM4IDUuMzc3NDggMS40NDQ5NSA1LjYyMjc5IDEuNjU1OTJDNS44NjgxIDEuODY2ODkgNi4wMjgzMyAyLjE1OTg2IDYuMDczNjEgMi40ODAyM0M2LjE1ODAzIDMuMTIwMjcgNi4zMTQ1OCAzLjc0ODcxIDYuNTQwMjggNC4zNTM1NkM2LjYyOTk4IDQuNTkyMTggNi42NDkzOSA0Ljg1MTUgNi41OTYyMiA1LjEwMDgxQzYuNTQzMDUgNS4zNTAxMiA2LjQxOTUyIDUuNTc4OTcgNi4yNDAyOCA1Ljc2MDIzTDUuMzkzNjEgNi42MDY4OUM2LjM0MjY1IDguMjc1OTIgNy43MjQ1OCA5LjY1Nzg2IDkuMzkzNjEgMTAuNjA2OUwxMC4yNDAzIDkuNzYwMjNDMTAuNDIxNSA5LjU4MDk5IDEwLjY1MDQgOS40NTc0NiAxMC44OTk3IDkuNDA0MjlDMTEuMTQ5IDkuMzUxMTIgMTEuNDA4MyA5LjM3MDUzIDExLjY0NjkgOS40NjAyM0MxMi4yNTE4IDkuNjg1OTMgMTIuODgwMiA5Ljg0MjQ4IDEzLjUyMDMgOS45MjY4OUMxMy44NDQxIDkuOTcyNTggMTQuMTM5OSAxMC4xMzU3IDE0LjM1MTMgMTAuMzg1MkMxNC41NjI3IDEwLjYzNDggMTQuNjc1MSAxMC45NTMzIDE0LjY2NjkgMTEuMjgwMloiIHN0cm9rZT0iIzMzODVGRiIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF81NjM5XzYzMiI+CjxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K"; | ||
const guestIcon = | ||
"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5IDIxVjE5QzE5IDE3LjkzOTEgMTguNTc4NiAxNi45MjE3IDE3LjgyODQgMTYuMTcxNkMxNy4wNzgzIDE1LjQyMTQgMTYuMDYwOSAxNSAxNSAxNUg5QzcuOTM5MTMgMTUgNi45MjE3MiAxNS40MjE0IDYuMTcxNTcgMTYuMTcxNkM1LjQyMTQzIDE2LjkyMTcgNSAxNy45MzkxIDUgMTlWMjEiIHN0cm9rZT0iIzMzODVGRiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTEyIDExQzE0LjIwOTEgMTEgMTYgOS4yMDkxNCAxNiA3QzE2IDQuNzkwODYgMTQuMjA5MSAzIDEyIDNDOS43OTA4NiAzIDggNC43OTA4NiA4IDdDOCA5LjIwOTE0IDkuNzkwODYgMTEgMTIgMTFaIiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo="; | ||
const passkeyIcon = | ||
"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzU2MzlfMzIpIj4KPHBhdGggZD0iTTcuOTk5NTkgNi42NjY1QzcuNjQ1OTYgNi42NjY1IDcuMzA2ODMgNi44MDY5OCA3LjA1Njc4IDcuMDU3MDNDNi44MDY3MyA3LjMwNzA4IDYuNjY2MjUgNy42NDYyMiA2LjY2NjI1IDcuOTk5ODRDNi42NjYyNSA4LjY3OTg0IDYuNTk5NTkgOS42NzMxNyA2LjQ5MjkyIDEwLjY2NjUiIHN0cm9rZT0iIzMzODVGRiIgc3Ryb2tlLXdpZHRoPSIxLjI1NDkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNOS4zMzI5MyA4Ljc0NjU4QzkuMzMyOTMgMTAuMzMzMiA5LjMzMjkzIDEyLjk5OTkgOC42NjYyNiAxNC42NjY2IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTExLjUyNzMgMTQuMDEzM0MxMS42MDczIDEzLjYxMzMgMTEuODE0IDEyLjQ4IDExLjg2MDcgMTIiIHN0cm9rZT0iIzMzODVGRiIgc3Ryb2tlLXdpZHRoPSIxLjI1NDkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMS4zMzM5OCA4LjAwMDE2QzEuMzMzOTggNi42MDA5NSAxLjc3NDIzIDUuMjM3MiAyLjU5MjM3IDQuMTAyMDlDMy40MTA1MSAyLjk2Njk5IDQuNTY1MDUgMi4xMTgwOCA1Ljg5MjQ3IDEuNjc1NjFDNy4yMTk4OCAxLjIzMzE0IDguNjUyODYgMS4yMTk1NCA5Ljk4ODQ0IDEuNjM2NzRDMTEuMzI0IDIuMDUzOTQgMTIuNDk0NSAyLjg4MDc5IDEzLjMzNCA0LjAwMDE2IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTEuMzMzOTggMTAuNjY2NUgxLjMzOTE0IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE0LjUzMjcgMTAuNjY2NUMxNC42NjYgOS4zMzMxNyAxNC42MiA3LjA5NzE3IDE0LjUzMjcgNi42NjY1IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTMuMzMzOTggMTIuOTk5OEMzLjY2NzMyIDExLjk5OTggNC4wMDA2NSA5Ljk5OTg0IDQuMDAwNjUgNy45OTk4NEMzLjk5OTk4IDcuNTQ1NzUgNC4wNzY2MyA3LjA5NDg2IDQuMjI3MzIgNi42NjY1IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTUuNzY3MDkgMTQuNjY2OEM1LjkwNzA5IDE0LjIyNjggNi4wNjcwOSAxMy43ODY4IDYuMTQ3MDkgMTMuMzMzNSIgc3Ryb2tlPSIjMzM4NUZGIiBzdHJva2Utd2lkdGg9IjEuMjU0OSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik02IDQuNTMzNDZDNi42MDgyNyA0LjE4MjI4IDcuMjk4MjggMy45OTc0NSA4LjAwMDY0IDMuOTk3NTZDOC43MDMwMSAzLjk5NzY3IDkuMzkyOTYgNC4xODI3MiAxMC4wMDExIDQuNTM0MUMxMC42MDkzIDQuODg1NDggMTEuMTE0MiA1LjM5MDc5IDExLjQ2NTEgNS45OTkyM0MxMS44MTYgNi42MDc2NiAxMi4wMDA1IDcuMjk3NzYgMTIgOC4wMDAxMlY5LjMzMzQ2IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF81NjM5XzMyIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="; | ||
|
||
describe("walletIcon", () => { | ||
it("should return google icon", () => { | ||
expect(getSocialIcon("google")).toBe(socialIcons.google); | ||
}); | ||
|
||
it("should return coinbase icon", () => { | ||
expect(getSocialIcon("coinbase")).toBe(socialIcons.coinbase); | ||
}); | ||
|
||
it("should return apple icon", () => { | ||
expect(getSocialIcon("apple")).toBe(socialIcons.apple); | ||
}); | ||
|
||
it("should return facebook icon", () => { | ||
expect(getSocialIcon("facebook")).toBe(socialIcons.facebook); | ||
}); | ||
|
||
it("should return phone icon", () => { | ||
expect(getSocialIcon("phone")).toBe(phoneIcon); | ||
}); | ||
|
||
it("should return email icon", () => { | ||
expect(getSocialIcon("email")).toBe(emailIcon); | ||
}); | ||
|
||
it("should return passkey icon", () => { | ||
expect(getSocialIcon("passkey")).toBe(passkeyIcon); | ||
}); | ||
|
||
it("should return discord icon", () => { | ||
expect(getSocialIcon("discord")).toBe(socialIcons.discord); | ||
}); | ||
|
||
it("should return line icon", () => { | ||
expect(getSocialIcon("line")).toBe(socialIcons.line); | ||
}); | ||
|
||
it("should return x icon", () => { | ||
expect(getSocialIcon("x")).toBe(socialIcons.x); | ||
}); | ||
|
||
it("should return farcaster icon", () => { | ||
expect(getSocialIcon("farcaster")).toBe(socialIcons.farcaster); | ||
}); | ||
|
||
it("should return telegram icon", () => { | ||
expect(getSocialIcon("telegram")).toBe(socialIcons.telegram); | ||
}); | ||
|
||
it("should return twitch icon", () => { | ||
expect(getSocialIcon("twitch")).toBe(socialIcons.twitch); | ||
}); | ||
|
||
it("should return github icon", () => { | ||
expect(getSocialIcon("github")).toBe(socialIcons.github); | ||
}); | ||
|
||
it("should return steam icon", () => { | ||
expect(getSocialIcon("steam")).toBe(socialIcons.steam); | ||
}); | ||
|
||
it("should return guest icon", () => { | ||
expect(getSocialIcon("guest")).toBe(guestIcon); | ||
}); | ||
|
||
it("should return generic wallet icon for unknown provider", () => { | ||
expect(getSocialIcon("unknown")).toBe(genericWalletIcon); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.