Skip to content

feat: address copy feedback, E2E tests, env docs, contributing guide (#479, #480, #481, #482) - #515

Open
SweetBoy-eth wants to merge 5 commits into
conduit-protocol:mainfrom
SweetBoy-eth:fix/issues-479-482
Open

feat: address copy feedback, E2E tests, env docs, contributing guide (#479, #480, #481, #482)#515
SweetBoy-eth wants to merge 5 commits into
conduit-protocol:mainfrom
SweetBoy-eth:fix/issues-479-482

Conversation

@SweetBoy-eth

@SweetBoy-eth SweetBoy-eth commented Sep 3, 2026

Copy link
Copy Markdown

Summary

This PR resolves four issues related to UX improvements, testing infrastructure, documentation, and developer experience.

Closes #479 - Copy-to-clipboard feedback on addresses

Added a new CopyableAddress component that wraps truncated addresses with click-to-clipboard functionality:

  • New component: components/ui/CopyableAddress.tsx
  • Shows a check icon for 2 seconds after successful copy
  • Uses existing copyToClipboard utility with HTTP fallback
  • Updated components: ConnectButton, StreamCard, OperatorInfo, stream detail page, transactions page

Closes #480 - Playwright: wallet-disconnect mid-load

Added Playwright E2E testing infrastructure:

  • New files: playwright.config.ts, e2e/wallet-disconnect.spec.ts
  • Tests wallet disconnection during dashboard loading
  • Verifies no stale data or crashes occur
  • Added test:e2e and test:e2e:ui scripts to package.json
  • Updated .gitignore for Playwright artifacts

Closes #481 - Environment variable reference

Created comprehensive documentation for all NEXT_PUBLIC_* environment variables:

  • New file: docs/environment-variables.md
  • Complete reference table with descriptions, defaults, and demo mode behavior
  • Updated .env.example with NEXT_PUBLIC_DEMO_MODE
  • Documented which variables enable demo mode when empty

Closes #482 - Contributing guide: monorepo SDK dependency

Updated CONTRIBUTING.md with monorepo SDK documentation:

  • Explained @conduit-protocol/sdk resolves to streamFi-sdk git repo
  • Documented how to use local SDK checkout for development
  • Explained lockfile implications for CI
  • Updated repository layout with new files

Testing

  • npm run typecheck - passes
  • npm run lint - passes
  • npm test - all 508 unit tests pass
  • ✅ E2E tests ready (requires Playwright browser installation)

Files Changed

  • components/ui/CopyableAddress.tsx (new)
  • components/ConnectButton.tsx
  • components/stream/StreamCard.tsx
  • components/stream/OperatorInfo.tsx
  • app/stream/[id]/page.tsx
  • app/transactions/page.tsx
  • playwright.config.ts (new)
  • e2e/wallet-disconnect.spec.ts (new)
  • docs/environment-variables.md (new)
  • .env.example
  • .gitignore
  • CONTRIBUTING.md
  • package.json
  • vitest.config.ts

…onduit-protocol#479)

Adds a new CopyableAddress component that wraps truncated addresses with
copy-to-clipboard functionality. Shows a check icon for 2 seconds after
a successful copy, providing visual feedback to users.

Components updated to use CopyableAddress:
- ConnectButton: connected wallet address
- StreamCard: counterparty and token addresses
- OperatorInfo: delegated operator address
- Stream detail page: stream, sender, recipient, and token addresses
- Transactions page: transaction hashes with CopyHashButton

Closes conduit-protocol#479
…nduit-protocol#480)

Adds Playwright E2E testing infrastructure with tests for wallet
disconnection scenarios:

- wallet-disconnect.spec.ts: Tests disconnecting while dashboard is loading
  to ensure no stale data or crashes occur
- playwright.config.ts: Playwright configuration for Chromium
- Updated .gitignore to exclude Playwright artifacts
- Added test:e2e and test:e2e:ui scripts to package.json

Closes conduit-protocol#480
…protocol#481)

Adds detailed documentation for all NEXT_PUBLIC_* environment variables:

- docs/environment-variables.md: Complete reference table with descriptions,
  defaults, and demo mode behavior
- Updated .env.example with NEXT_PUBLIC_DEMO_MODE variable
- Updated CONTRIBUTING.md to reference the new documentation

Variables documented:
- NEXT_PUBLIC_SOROBAN_RPC_URL (required)
- NEXT_PUBLIC_NETWORK_PASSPHRASE (required)
- NEXT_PUBLIC_FACTORY_CONTRACT_ID (required unless demo mode)
- NEXT_PUBLIC_GOVERNOR_CONTRACT_ID (optional)
- NEXT_PUBLIC_HORIZON_URL (optional)
- NEXT_PUBLIC_SOROBAN_FEE_MULTIPLIER (optional, default 2)
- NEXT_PUBLIC_DEMO_MODE (enables demo mode when set to 'true')

Closes conduit-protocol#481
…ol#482)

Updates CONTRIBUTING.md with comprehensive documentation for the
@conduit-protocol/sdk monorepo dependency:

- Explains that the SDK resolves to the streamFi-sdk git repo via tarball URL
- Documents how to use a local SDK checkout for development
- Explains lockfile implications for CI (git tarball vs local file paths)
- Updated repository layout with new files (CopyableAddress, e2e tests, docs)

Closes conduit-protocol#482
@drips-wave

drips-wave Bot commented Sep 3, 2026

Copy link
Copy Markdown

@SweetBoy-eth Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant