Commit Graph

11 Commits

Author SHA1 Message Date
Ken Johnson 7712f5867f Fix test failures on Ubuntu and other platforms (issue #486)
Fixes test suite to run cleanly across different platforms (macOS, Linux, Windows)
after the Rails 5→8 upgrade and UI/UX overhaul.

## Issues Fixed

1. **Firefox/Selenium driver errors**: Removed deprecated Poltergeist/PhantomJS
   configuration and properly configured Selenium with headless Chrome. This
   works across all platforms without requiring Firefox.

2. **CSS selector errors** ('Unable to find css ".signup"'): The UI/UX overhaul
   removed the .signup CSS class. Updated the login helper to work with the
   new login form structure.

3. **Ambiguous Login button**: The new UI has both a Login button and Login link.
   Changed from `click_on "Login"` to `click_button "Login"` to be specific.

4. **Deprecation warning**: Opted into Rails 8.1 behavior for to_time timezone
   preservation to eliminate deprecation warnings.

## Changes

- spec/support/capybara_shared.rb:
  * Removed deprecated Poltergeist/PhantomJS configuration
  * Configured Selenium with headless Chrome
  * Updated login helper to work with new UI (removed .signup/.actions selectors)
  * Changed click_on to click_button for specificity

- spec/spec_helper.rb:
  * Removed conflicting Capybara.javascript_driver override that was forcing
    selenium_headless (which tried to use Firefox)

- config/application.rb:
  * Added config.active_support.to_time_preserves_timezone = :zone to opt into
    Rails 8.1 behavior and eliminate deprecation warning

## Test Results

Before: 43 failures (driver errors, CSS selector errors)
After: 46 examples, 0 failures, 14 pending 

The 14 pending specs are expected - they verify vulnerabilities still exist.

## Platform Requirements

JavaScript tests now require Chrome/Chromium to be installed:
- macOS: Chrome is usually installed
- Ubuntu: `sudo apt-get install chromium-browser chromium-chromedriver`
- Windows: Chrome is usually installed

Fixes #486

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-04 11:09:14 -05:00
Ken Johnson f716836c15 Upgrade to Ruby 3.3.6 and Rails 8.0.4
This major upgrade brings RailsGoat up to date with the latest versions:
- Ruby 2.6.5 → 3.3.6
- Rails 6.0.0 → 8.0.4

## Key Changes

### Dependencies
- Upgraded all gems to Rails 8-compatible versions
- Removed deprecated gems: therubyracer, coffee-rails, poltergeist,
  travis-lint, rails-perftest, unicorn, powder, rubocop-github
- Updated puma to 6.6.1, sqlite3 to 2.8.1, rspec-rails to 8.0.2
- Added modern Rails 8 features: importmap-rails, stimulus-rails, turbo-rails
- Replaced poltergeist with selenium-webdriver for integration tests

### Code Changes
- Converted CoffeeScript files to plain JavaScript
- Updated test configuration to use Selenium headless driver
- Updated database schema to Rails 8 format

## Testing
- Application starts successfully and responds to requests
- Test suite runs with 23 examples (14 intentional vulnerability failures)
- Database migrations applied successfully

## Notes
This upgrade maintains all intentional security vulnerabilities that make
RailsGoat an effective training tool. The failing tests are expected and
demonstrate the vulnerabilities the application is designed to teach.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 15:30:49 -05:00
Joseph Mastey 9902345291 chore(rubocop): giganto rubocop commit.
muahahahah
2017-12-05 18:46:21 -06:00
Joseph Mastey a6802aee5c chore(tests): remove unused TestUnit suite, plus fixtures included in it 2017-10-06 19:58:12 -05:00
Al Snow 0cc4980c46 Upgraded rspec-rails from 2.99.0 to 3.4.0 2016-04-14 17:34:27 -04:00
Al Snow fb923baee4 Upgraded rspec 2.14.2 to 2.99.0 2016-03-19 18:33:01 -04:00
Al Snow b6d766329c Based on cane gem, removed tab indents and trailing blanks 2015-09-14 10:11:03 -04:00
Al Snow 203a7a244f Added simplecov gem code changes 2013-10-23 10:29:20 -04:00
chrismo df9efa915b Capybara added to demonstrate vulnerabilities.
Adding Capybara to verify replay-ability of hacking vulnerabilities. I
imagine these may want to be kept on a different branch for QA and
educational purposes, but not distributed with master when forked.

This commit also includes demonstrating the SQL Injection vulnerability.
2013-09-27 10:35:59 -05:00
Michael McCabe 69c180e845 minor changes to spec_helper and user model 2013-09-06 15:54:06 -04:00
cktricky 2a4a7a5440 that was painful but managed to install gauntlt. Turns out you need to revert to minitest 4 (not 5, for the love of humantiy, not 5). Also, added rspec (not sure that did anything). Lastly, aruba and gauntlt. So, we now have a dir explicitly for attack files. 2013-08-08 14:04:52 -04:00