{"id":13877913,"url":"https://github.com/stepful/cyperful","last_synced_at":"2025-10-10T17:06:30.401Z","repository":{"id":189877679,"uuid":"669914695","full_name":"stepful/cyperful","owner":"stepful","description":"Interactive system testing UI for capybara","archived":false,"fork":false,"pushed_at":"2025-01-09T19:45:11.000Z","size":662,"stargazers_count":358,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-10T17:06:27.160Z","etag":null,"topics":["capybara","dx","e2e-testing","end-to-end-testing","minitest","rails","rspec","system-testing","test","tests"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stepful.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-07-23T20:55:17.000Z","updated_at":"2025-09-13T21:00:00.000Z","dependencies_parsed_at":"2023-08-22T06:44:41.641Z","dependency_job_id":"c1cf8c37-56d5-4d9d-b8a3-f5f94a64a5a6","html_url":"https://github.com/stepful/cyperful","commit_stats":{"total_commits":78,"total_committers":1,"mean_commits":78.0,"dds":0.0,"last_synced_commit":"67924cbf77d0f9dd644c0cb06d0e8aa4844989fb"},"previous_names":["stepful/cyperful"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/stepful/cyperful","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepful%2Fcyperful","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepful%2Fcyperful/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepful%2Fcyperful/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepful%2Fcyperful/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stepful","download_url":"https://codeload.github.com/stepful/cyperful/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stepful%2Fcyperful/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004815,"owners_count":26083783,"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-10-10T02:00:06.843Z","response_time":62,"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":["capybara","dx","e2e-testing","end-to-end-testing","minitest","rails","rspec","system-testing","test","tests"],"created_at":"2024-08-06T08:01:34.729Z","updated_at":"2025-10-10T17:06:30.386Z","avatar_url":"https://github.com/stepful.png","language":"Ruby","readme":"# Cyperful\n\n\u003e The Capybara visual debugger\n\n[![Gem Version](https://badge.fury.io/rb/cyperful.svg)](https://badge.fury.io/rb/cyperful)\n\nAn addon for Ruby Capybara system tests that adds the great DX of tools like Cypress.io.\n\nhttps://github.com/stepful/cyperful/assets/992076/dd1ef39c-98ca-48f3-8c3d-99ae057594e2\n\n## Features\n\n- [x] View the list of steps in a test, with live updates as the test runs\n- [x] Pause the test at each step and interact with the page\n- [x] View API requests and console logs between steps\n- [x] Auto-restart the test when the source code is modified\n- [x] Records a video of the test so you can preview the finished test at that point in time _(experimental)_\n- [ ] View and run ANY test suite from the UI _(coming soon)_\n- [ ] Record browser interactions to save as ruby code _(coming later)_\n\n## Framework support\n\n🚨 Cyperful is in **BETA** and you will likely encounter issues/bugs! We currently only support: Rails 7.1, Ruby 3.2.1, `Minitest`/`RSpec`, `capybara`, and `selenium` with Chrome.\n\nTry it out, then please open a Github issue if you'd like to see support for any other specific frameworks/setups.\n\n## Installation\n\nFirst, install the gem (with require=false):\n\n```Gemfile\ngroup :test do\n  gem \"cyperful\", require: false\nend\n```\n\nFollow the instructions for your test framework:\n\n### RSpec\n\nIn your `rails_helper.rb` file, add the following:\n\n```ruby\nCYPERFUL = !!ENV[\"CYPERFUL\"]\n\nrequire \"cyperful/rspec\" if CYPERFUL\n\nRSpec.configure do |config|\n  # make sure we setup the browser-driver BEFORE Cyperful's setup\n  config.prepend_before(:example, type: :system) do\n    # Cyperful only supports Selenium + Chrome\n    driven_by :selenium, using: :chrome, screen_size: [1400, 1400]\n  end\n\n  # ...\nend\n```\n\n### Minitest\n\nIn your `application_system_test_case.rb` file, add the following:\n\n```ruby\nCYPERFUL = !!ENV[\"CYPERFUL\"]\n\nrequire \"cyperful/minitest\" if CYPERFUL\n\nclass ApplicationSystemTestCase \u003c ActionDispatch::SystemTestCase\n  include Cyperful::Minitest::SystemTestHelper if CYPERFUL\n\n  # Cyperful only supports Selenium + Chrome\n  driven_by :selenium, using: :chrome, screen_size: [1400, 1400]\n\n  # ...\nend\n```\n\n## Usage\n\nRun a test with `CYPERFUL` env var, e.g.:\n\n```bash\nCYPERFUL=1 rails test test/system/my_test.rb:123\n```\n\n🚨 **IMPORTANT NOTE:**\nCyperful currently works best when you run a single test at a time i.e. your test file contains only 1 test OR you specify a single test with `\u003cfilename\u003e:\u003cline_number\u003e`. A better DX for running multiple sequential tests is coming soon.\n\n## Config\n\nConfig options:\n\n- `reload_test_files` (default: `true`) - Reset the test when the test's source code is modified.\n- `auto_run_on_reload` (default: `true`) - Automatically start the test when the source code is modified. Only applies if `reload_test_files` is `true`.\n- `history_recording` (default: `true`) - Record a video of the test while it is running for debugging.\n\nYou can set these options on the `Cyperful.config` object after requiring the gem, e.g.:\n\n```ruby\nCyperful.config.history_recording = false\n```\n\n---\n\n## Contributing\n\n1. Fork this repo\n2. Create your feature branch (git checkout -b my-new-feature)\n3. Commit your changes (git commit -am 'Add some feature')\n4. Push to the branch (git push origin my-new-feature)\n5. Create a new Pull Request\n\n### Run the dev server\n\n```bash\n# in a terminal, run the frontend dev server.\n# this will watch for changes and rebuild the frontend\ncd cyperful\npnpm run dev\n\n# in another terminal, run any Rspec/Minitest test\n# prepend `CYPERFUL_DEV=1` to tell cyperful to look at the\n# dev server instead of the prebuilt frontend assets.\ncd test/dummy\nCYPERFUL_DEV=1 CYPERFUL=1 rails test test/system/basic_system_test.rb\n\n# Or, run your own tests in your own app.\ncd path/to/your_app\nbundle config local.cyperful path/to/cyperful_repo\nbundle install\nCYPERFUL_DEV=1 CYPERFUL=1 rspec path/to/my_system_spec.rb\n```\n","funding_links":[],"categories":["Ruby"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstepful%2Fcyperful","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstepful%2Fcyperful","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstepful%2Fcyperful/lists"}