{"id":50666953,"url":"https://github.com/decocms/e2e-anything","last_synced_at":"2026-06-08T07:06:31.608Z","repository":{"id":344893021,"uuid":"1183604047","full_name":"decocms/e2e-anything","owner":"decocms","description":"Reusable E2E QA test suite for e-commerce sites — Playwright + YAML config per site","archived":false,"fork":false,"pushed_at":"2026-03-17T00:21:48.000Z","size":3050,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-17T06:11:33.442Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/decocms.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-16T19:20:29.000Z","updated_at":"2026-03-16T21:47:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/decocms/e2e-anything","commit_stats":null,"previous_names":["decocms/e2e-anything"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/decocms/e2e-anything","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decocms%2Fe2e-anything","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decocms%2Fe2e-anything/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decocms%2Fe2e-anything/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decocms%2Fe2e-anything/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/decocms","download_url":"https://codeload.github.com/decocms/e2e-anything/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/decocms%2Fe2e-anything/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34051798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"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":[],"created_at":"2026-06-08T07:05:35.038Z","updated_at":"2026-06-08T07:06:31.602Z","avatar_url":"https://github.com/decocms.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# e2e-anything\n\nReusable E2E QA test suite for e-commerce sites. Add a YAML config file per site and run 61 Playwright tests covering 12 areas.\n\n## Quick Start\n\n```bash\nnpm install\nnpx playwright install chromium\n\n# Run all tests for a site\nSITE=casaevideo-tanstack npx playwright test\n\n# Run a specific test file\nSITE=casaevideo-tanstack npx playwright test tests/cart.spec.ts\n\n# Run with headed browser\nSITE=casaevideo-tanstack npx playwright test --headed\n\n# Run with UI mode\nSITE=casaevideo-tanstack npx playwright test --ui\n\n# Generate HTML report\nSITE=casaevideo-tanstack npx playwright test --reporter=html\nnpx playwright show-report\n```\n\n## Test Areas (12 files, 61 tests)\n\n| File | Tests | What it checks |\n|------|-------|----------------|\n| `homepage.spec.ts` | 7 | Page load, console errors, header, menu, search bar, footer, product shelves |\n| `navigation.spec.ts` | 5 | Menu links, category navigation, breadcrumb, mobile menu |\n| `search.spec.ts` | 5 | Search input, submit, product cards, titles/prices |\n| `product.spec.ts` | 8 | PDP: title, price, image, add-to-cart, quantity, wishlist, gallery |\n| `cart.spec.ts` | 5 | Add to cart, minicart, quantity controls, checkout link, coupon |\n| `auth.spec.ts` | 4 | Login button, dropdown/modal, login form, my-account |\n| `checkout.spec.ts` | 2 | Reach checkout from cart, checkout page status |\n| `filters.spec.ts` | 8 | Sidebar, filter groups, price filter, sort, products, pagination |\n| `newsletter.spec.ts` | 4 | Newsletter section, input/button, email typing, submit |\n| `chat.spec.ts` | 3 | Chat widget, WhatsApp link, clickable |\n| `geolocation.spec.ts` | 4 | CEP button, input, typing, submit |\n| `third-party-scripts.spec.ts` | 5 | dataLayer, GTM/GA, failed requests, product events, SEO meta |\n\n## Adding a New Site\n\nCreate a YAML file in `sites/`:\n\n```yaml\n# sites/my-store.yml\nname: \"My Store\"\nbaseUrl: \"https://my-store.example.com\"\n\npages:\n  home: \"/\"\n  category: \"/shoes\"\n  product: \"/nike-air-max/p\"\n  cart: \"/checkout\"\n  login: \"/login\"\n  myAccount: \"/my-account\"\n  search: \"/search\"\n\ntestData:\n  searchTerm: \"sneakers\"\n  cep: \"01001-000\"\n  newsletterEmail: \"test@example.com\"\n\nselectors:\n  searchInput: \"input[type='search']\"\n  searchButton: \"button[type='submit']\"\n  addToCartButton: \"button:has-text('Add to Cart')\"\n  checkoutButton: \"a:has-text('Checkout')\"\n  # ... override any selector from lib/config.ts defaults\n\nskip: []  # or [\"chat\", \"newsletter\"] to skip test groups\n```\n\nThen run:\n\n```bash\nSITE=my-store npx playwright test\n```\n\n## How It Works\n\n1. **Config loader** (`lib/config.ts`) reads the YAML file and merges with default selectors\n2. **Helpers** (`lib/helpers.ts`) provide shared utilities: navigation, cookie dismissal, link collection, stability waits\n3. **Tests** read the config to know URLs, selectors, and test data — no hardcoded values\n4. **Skip** any test group by adding its name to the `skip` array in the YAML config\n\n## Project Structure\n\n```\ne2e-anything/\n  sites/                        # One YAML config per site\n    casaevideo-tanstack.yml\n  tests/                        # 12 test files\n    homepage.spec.ts\n    navigation.spec.ts\n    search.spec.ts\n    product.spec.ts\n    cart.spec.ts\n    auth.spec.ts\n    checkout.spec.ts\n    filters.spec.ts\n    newsletter.spec.ts\n    chat.spec.ts\n    geolocation.spec.ts\n    third-party-scripts.spec.ts\n  lib/\n    config.ts                   # YAML config loader + defaults\n    helpers.ts                  # Shared test utilities\n  playwright.config.ts          # Playwright configuration\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecocms%2Fe2e-anything","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdecocms%2Fe2e-anything","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdecocms%2Fe2e-anything/lists"}