Files
BreakEscape/test/test_helper.rb
Z. Cliffe Schreuders f44c211d53 fix: Make tests database-agnostic and fix fixture loading
- Update migration to support both PostgreSQL (jsonb) and SQLite (json)
- Fix Rails 8 compatibility (remove config.assets)
- Configure Pundit to use current_player instead of current_user
- Add explicit fixture class mappings for engine fixtures
- Configure standalone mode for tests
- Update test fixtures with proper timestamps and structure
- Improve game test to create data programmatically

Tests now run with 10/12 assertions passing. Remaining errors are due to
missing test scenario files, which can be addressed separately.
2025-11-21 15:27:54 +00:00

30 lines
1.2 KiB
Ruby

# Configure Rails Environment
ENV["RAILS_ENV"] = "test"
ENV["BREAK_ESCAPE_STANDALONE"] = "true" # Use standalone mode for tests
require_relative "../test/dummy/config/environment"
ActiveRecord::Migrator.migrations_paths = [ File.expand_path("../test/dummy/db/migrate", __dir__) ]
ActiveRecord::Migrator.migrations_paths << File.expand_path("../db/migrate", __dir__)
require "rails/test_help"
# Load fixtures from the engine
if ActiveSupport::TestCase.respond_to?(:fixture_paths=)
ActiveSupport::TestCase.fixture_paths = [ File.expand_path("fixtures", __dir__) ]
ActionDispatch::IntegrationTest.fixture_paths = ActiveSupport::TestCase.fixture_paths
ActiveSupport::TestCase.file_fixture_path = File.expand_path("fixtures", __dir__) + "/files"
# Map fixture names to model classes
ActiveSupport::TestCase.set_fixture_class(
break_escape_missions: BreakEscape::Mission,
break_escape_demo_users: BreakEscape::DemoUser
)
ActiveSupport::TestCase.fixtures :break_escape_missions, :break_escape_demo_users
end
# Reload configuration after setting ENV variable
BreakEscape.configure do |config|
config.standalone_mode = true
config.demo_user_handle = 'test_user'
end