{"id":20122591,"url":"https://github.com/jalolk/faraway","last_synced_at":"2026-04-12T22:09:23.352Z","repository":{"id":260361755,"uuid":"880937951","full_name":"jalolk/faraway","owner":"jalolk","description":"End-to-end test automation framework for the Faraway Platform demo using Playwright and TypeScript. Features authentication and NFT purchase flow testing, MetaMask integration, and GitHub Actions CI pipeline. Built with Page Object Model pattern and component-based architecture.","archived":false,"fork":false,"pushed_at":"2024-11-01T10:41:12.000Z","size":42242,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-08T11:50:50.394Z","etag":null,"topics":["automation","e2e-testing","fra","metamask","playwright","testing","typescript","web3"],"latest_commit_sha":null,"homepage":"https://sandbox-platform.faraway.com/demo/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jalolk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-30T16:18:16.000Z","updated_at":"2024-11-01T10:41:16.000Z","dependencies_parsed_at":"2025-01-13T07:40:10.838Z","dependency_job_id":null,"html_url":"https://github.com/jalolk/faraway","commit_stats":null,"previous_names":["jalolk/faraway"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jalolk/faraway","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jalolk%2Ffaraway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jalolk%2Ffaraway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jalolk%2Ffaraway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jalolk%2Ffaraway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jalolk","download_url":"https://codeload.github.com/jalolk/faraway/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jalolk%2Ffaraway/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273858711,"owners_count":25180766,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","e2e-testing","fra","metamask","playwright","testing","typescript","web3"],"created_at":"2024-11-13T19:39:08.131Z","updated_at":"2025-10-11T01:09:52.114Z","avatar_url":"https://github.com/jalolk.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# E2E Test Automation Framework\n\nThis repository contains an end-to-end test automation framework for the Faraway Platform demo, built using Playwright and TypeScript. The framework implements the Page Object Model pattern and includes tests for authentication and NFT purchase flows.\n\nDemo: https://sandbox-platform.faraway.com/demo/\n\n## 🛠 Technology Stack\n\n- **TypeScript** - Primary programming language\n- **Playwright** - Test automation framework\n- **Yarn** - Package manager\n- **GitHub Actions** - CI/CD platform\n\n## 🏗 Architecture\n\nThe framework follows these architectural principles:\n\n- **Page Object Model (POM)** - Separates test logic from page interactions\n- **Component-based approach** - Reusable UI components (Auth, Purchase, Wallet)\n- **SOLID principles** - Maintainable and extensible code structure\n- **DRY (Don't Repeat Yourself)** - Shared utilities and helper functions\n- **KISS (Keep It Simple, Stupid)** - Clear, straightforward implementations\n\n### Project Structure\n\n```\n├── .github/\n│   └── workflows/\n│       └── playwright.yml\n├── fixtures/\n│   └── metaMaskFixtures.ts\n├── interfaces/\n│   └── PageModel.interface.ts\n├── pages/\n│   ├── components/\n│   │   ├── AuthComponent.ts\n│   │   ├── PurchaseComponent.ts\n│   │   └── WalletComponent.ts\n│   ├── BasePage.ts\n│   ├── FarawayPage.ts\n│   └── MetaMaskExtension.ts\n├── test-data/\n│   ├── metaMaskWallet.ts\n│   └── userData.ts\n└── tests/\n    └── e2e/\n        ├── auth.test.ts\n        └── purchase.test.ts\n```\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js (LTS version)\n- Yarn package manager\n- Chrome browser\n\n### Installation\n\n1. Clone the repository:\n\n```bash\ngit clone \u003crepository-url\u003e\ncd \u003crepository-name\u003e\n```\n\n2. Install dependencies:\n\n```bash\nyarn install\n```\n\n3. Install Playwright browsers:\n\n```bash\nyarn playwright install --with-deps\n```\n\n### Configuration\n\n1. Create a `.env` file in the root directory (if needed for sensitive data)\n2. Update test data in `test-data/` directory if necessary\n\n### Running Tests\n\nRun all tests:\n\n```bash\nyarn playwright test\n```\n\nRun specific test file:\n\n```bash\nyarn playwright test tests/e2e/auth.test.ts\n```\n\n## 📊 Test Reports\n\nTest results are automatically generated as HTML reports after each test run. To view the report:\n\n1. Run the tests\n2. Open `playwright-report/index.html` in your browser\n\nIn CI/CD pipeline, reports are uploaded as artifacts and can be accessed from the GitHub Actions workflow.\n\n## 🔄 CI/CD Pipeline\n\nThe project uses GitHub Actions for continuous integration. The pipeline:\n\n1. Runs on push to main/master branches and pull requests\n2. Installs dependencies and Playwright browsers\n3. Executes all tests\n4. Generates and uploads test reports as artifacts\n\n## 🧪 Test Cases\n\n### Authentication Flow\n\n- Login with email in new tab\n- Login with email in popup\n- Login with email in same tab\n- Verification of user session state\n\n### NFT Purchase Flow\n\n- Network selection and configuration\n- Wallet connection\n- Transaction approval and confirmation\n- Purchase completion verification\n\n## 📝 Code Style\n\nThe project uses:\n\n- ESLint for code linting\n- Prettier for code formatting\n\nRun linting:\n\n```bash\nyarn lint\n```\n\nFormat code:\n\n```bash\nyarn format\n```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Push to the branch\n5. Create a Pull Request\n\n## 📜 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjalolk%2Ffaraway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjalolk%2Ffaraway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjalolk%2Ffaraway/lists"}