1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-18 20:59:39 +02:00

Benchmarking setup (#2366)
Some checks are pending
Publish Docker image / ci (push) Waiting to run
Publish Docker image / Build docker image (push) Blocked by required conditions

* Benchmarking setup

* Get demo data working in benchmark scenario

* Finalize default demo scenario

* Finalize benchmarking setup
This commit is contained in:
Zach Gollwitzer 2025-06-14 11:53:53 -04:00 committed by GitHub
parent cdad31812a
commit 84b2426e54
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
23 changed files with 1477 additions and 2166 deletions

37
perf.rake Normal file
View file

@ -0,0 +1,37 @@
# Must be in root of repo for derailed_benchmarks to read the benchmark file
require 'bundler'
Bundler.setup
require 'derailed_benchmarks'
require 'derailed_benchmarks/tasks'
# Custom auth helper for Maybe's session-based authentication
class CustomAuth < DerailedBenchmarks::AuthHelper
def setup
# No setup needed
end
def call(env)
# Make sure this user is created in the DB with realistic data before running benchmarks
user = User.find_by!(email: "user@maybe.local")
puts "Found user for benchmarking: #{user.email}"
# Mimic the way Rails handles browser cookies
session = user.sessions.create!
key_generator = Rails.application.key_generator
secret = key_generator.generate_key('signed cookie')
verifier = ActiveSupport::MessageVerifier.new(secret)
signed_value = verifier.generate(session.id)
env['HTTP_COOKIE'] = "session_token=#{signed_value}"
puts "Setting up session for user: #{user.email}"
app.call(env)
end
end
# Tells derailed_benchmarks to use our custom auth helper
DerailedBenchmarks.auth = CustomAuth.new