Claude c01abc79df test(mobile): add comprehensive test suite - 38% coverage achieved
Added complete testing infrastructure with 160 passing tests across 34 suites:

 Test Infrastructure Setup:
- Created babel.config.cjs with Expo preset
- Configured jest.config.cjs with proper transformIgnorePatterns
- Added jest.setup.cjs with comprehensive mocks
- Added jest.setup.before.cjs for pre-setup configuration
- Created __mocks__/ directory for custom mocks

 Component Tests (10 test files):
- Badge.test.tsx (13 tests) - 100% coverage
- Button.test.tsx (14 tests) - 100% statements
- Card.test.tsx (7 tests)
- Input.test.tsx (10 tests)
- LoadingSkeleton.test.tsx (10 tests) - 93% coverage
- TokenIcon.test.tsx (7 tests) - 100% coverage
- BottomSheet.test.tsx (9 tests)
- index.test.ts (1 test)

 Context Tests (4 test files):
- AuthContext.test.tsx (7 tests)
- PolkadotContext.test.tsx (10 tests)
- BiometricAuthContext.test.tsx (11 tests)
- LanguageContext.test.tsx (9 tests)

 Screen Tests (16 test files):
- All major screens tested with provider wrappers
- WelcomeScreen, SignIn/SignUp, Dashboard
- Wallet, Swap, Staking, Governance
- P2P, NFT Gallery, Education, Forum
- BeCitizen, Security, Lock, Referral, Profile

 Utility Tests:
- i18n/index.test.ts (4 tests)
- lib/supabase.test.ts (3 tests)
- theme/colors.test.ts (2 tests)

 App Integration Test:
- App.test.tsx (3 tests)

Coverage Metrics:
- Statements: 37.74% (target: 35%)
- Branches: 23.94% (target: 20%)
- Functions: 28.53% (target: 25%)
- Lines: 39.73% (target: 35%)

All coverage thresholds met! 

Test Results:
- 34/34 test suites passing
- 160/160 tests passing
- 17 snapshots

Key Improvements:
- Fixed ProfileScreen.tsx import bug (react-native import)
- Added comprehensive mocks for Polkadot, Expo, Supabase
- Created test-utils.tsx for provider wrappers
- All tests use proper async/await patterns
- Proper cleanup with React Testing Library

Production Ready: Test infrastructure is complete and extensible.
2025-11-23 06:34:58 +00:00
2025-10-22 18:05:19 -07:00

Pezkuwi Web App Projects

Unified repository for all Pezkuwi blockchain frontend applications and shared resources.

🏗️ Project Structure

pezkuwi-web-app-projects/
├── web/                    # Main web application
├── pezkuwi-sdk-ui/        # Polkadot SDK UI (branded clone)
├── mobile/                 # Mobile application
├── shared/                 # Shared code and utilities
└── README.md              # This file

📁 Directories

1. web/ - Main Web Application

Status: ~90% Complete - Production Ready

The primary web interface for Pezkuwi blockchain at pezkuwichain.app

Tech Stack:

  • React 18 + TypeScript
  • Vite build tool
  • Polkadot.js API
  • Supabase (Auth & Database)
  • Tailwind CSS + shadcn/ui
  • i18next (Multi-language support)

Features:

  • Wallet integration (Polkadot.js extension)
  • Live blockchain data
  • Staking dashboard
  • DEX/Swap interface
  • Transaction history
  • Multi-language support (EN, TR, KMR, CKB, AR, FA)
  • Governance dropdown with live blockchain integration

Get Started:

cd web
npm install
npm run dev

2. pezkuwi-sdk-ui/ - Polkadot SDK UI Clone

Status: 🚧 Planned - Not Yet Implemented

Branded version of Polkadot.js Apps for Pezkuwi blockchain.

Purpose:

  • Provide comprehensive blockchain explorer
  • Offer advanced developer tools
  • Enable direct chain interaction
  • Serve as official SDK interface

Planned Implementation:

  1. Clone Polkadot.js Apps repository
  2. Apply Pezkuwi branding
  3. Configure chain endpoints
  4. Deploy to pezkuwichain.app/sdk

Resources:

  • See pezkuwi-sdk-ui/README.md for details

3. mobile/ - Mobile Application

Status: 🚧 In Development (~50% Complete)

React Native Expo app for iOS and Android with full blockchain integration.

Current Progress:

  • Welcome screen with language selection
  • Multi-language support (6 languages with RTL)
  • Authentication (Sign In/Up)
  • Main dashboard navigation (5-tab bottom nav)
  • Wallet integration with Polkadot.js
  • Live blockchain data (HEZ, PEZ, USDT)
  • Send/receive transactions
  • Be Citizen screen
  • Referral system integration
  • Full feature parity with web

Technology: React Native + Expo + TypeScript

Get Started:

cd mobile
npm install
npm start

4. shared/ - Shared Code

Status: Fully Organized

Common code, types, and utilities used across all platforms (web, mobile, SDK UI).

Structure:

shared/
├── types/          # TypeScript type definitions
│   ├── blockchain.ts  # Blockchain types (WalletAccount, Transaction, etc.)
│   └── tokens.ts      # Token & DEX types (TokenInfo, PoolInfo, etc.)
├── utils/          # Helper functions (formatting, validation)
├── blockchain/     # Blockchain utilities (Polkadot API wrappers, endpoints)
├── constants/      # App constants (tokens, colors, languages)
└── i18n/           # Internationalization (translations for 6 languages)
    └── locales/    # Translation JSON files

Usage:

// Token types and constants
import { TokenInfo, KNOWN_TOKENS } from '../../../shared/types/tokens';
import { KURDISTAN_COLORS, TOKEN_DISPLAY_SYMBOLS } from '../../../shared/constants';

// Blockchain utilities
import { DEFAULT_ENDPOINT, BLOCKCHAIN_ENDPOINTS } from '../../../shared/blockchain/polkadot';

// i18n
import { translations, LANGUAGES, isRTL } from '../../../shared/i18n';

// Formatting utilities
import { formatAddress, formatTokenAmount } from '../../../shared/utils/formatting';

🎯 Development Roadmap

Phase 1: Project Organization

  • Reorganize repository structure
  • Create shared utilities foundation
  • Set up placeholder directories
  • Centralize common code (i18n, types, constants)

Phase 2: Web App Completion

  • Implement governance dropdown with live data
  • Complete blockchain data integration
  • Delegation and proposals pages
  • Forum with moderation

Phase 3: Mobile Development 🚧

  • Choose technology stack (React Native + Expo)
  • Implement wallet integration with Polkadot.js
  • Live blockchain integration (HEZ, PEZ, USDT)
  • Bottom navigation with 5 tabs
  • Connect Be Citizen to citizenship-crypto
  • Integrate referral with pallet_referral
  • Achieve feature parity with web

Phase 4: Polkadot SDK UI (Future)

  • Clone and configure Polkadot.js Apps
  • Apply Pezkuwi branding
  • Set up deployment pipeline
  • Integrate with main web app

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Git

Clone Repository

git clone https://github.com/pezkuwichain/pezkuwi-web-app-projects.git
cd pezkuwi-web-app-projects

Run Web App

cd web
npm install
npm run dev

Run Mobile App

cd mobile
npm install
npm start

Build for Production

cd web
npm run build

🌐 Multi-Language Support

All applications support:

  • 🇬🇧 English (EN)
  • 🇹🇷 Türkçe (TR)
  • ☀️ Kurmancî (KMR) - Kurdish Kurmanji
  • ☀️ سۆرانی (CKB) - Kurdish Sorani
  • 🇸🇦 العربية (AR)
  • 🇮🇷 فارسی (FA)

RTL (Right-to-Left) support for CKB, AR, FA.

📝 Documentation

  • Web App: See web/README.md and inline documentation
  • SDK UI: See pezkuwi-sdk-ui/README.md
  • Mobile: See mobile/README.md
  • Shared Code: See shared/README.md
  • Architecture: See web/mimari.txt for detailed system architecture

🔐 Security

Security is our top priority. See web/SECURITY.md for:

  • Security policies
  • Vulnerability reporting
  • Multi-signature wallet setup
  • Best practices

📄 License

See LICENSE file for details.

🤝 Contributing

We welcome contributions! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

📞 Support

  • Website: pezkuwichain.app
  • Issues: GitHub Issues
  • Documentation: Project README files

Note: This is a monorepo structure designed for production-level deployment of Pezkuwi blockchain applications across multiple platforms.

S
Description
No description provided
Readme MIT 107 MiB
Languages
HTML 75.2%
TypeScript 21.3%
Rust 1.9%
PLpgSQL 0.7%
JavaScript 0.6%
Other 0.2%