* Moved queries into PartyQueryBuilder service PartyQueryBuilder supersedes PartyQueryingConcern as it is also used for UsersController (and is our fix for profiles being broken) * Implement PartyQueryBuilder in controllers * Update summon_transformer.rb This should fix the transformer so that we properly capture summons and subaura summons * Update parties_controller_spec.rb * Add NewRelic license key * Add Sentry Why not?
65 lines
2.1 KiB
Ruby
65 lines
2.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
# Dummy class including PartyQueryingConcern so that we can test its methods in isolation.
|
|
class DummyQueryClass
|
|
include PartyQueryingConcern
|
|
|
|
# Define a setter and getter for current_user so that the concern can call it.
|
|
attr_accessor :current_user
|
|
|
|
# Provide a basic params method for testing.
|
|
attr_writer :params
|
|
|
|
def params
|
|
@params ||= {}
|
|
end
|
|
end
|
|
|
|
RSpec.describe DummyQueryClass do
|
|
let(:dummy) { DummyQueryClass.new }
|
|
|
|
describe '#remixed_name' do
|
|
context 'when current_user is present' do
|
|
let(:user) { build(:user, language: 'en') }
|
|
before { dummy.instance_variable_set(:@current_user, user) }
|
|
it 'returns a remix name in English' do
|
|
expect(dummy.remixed_name('Original Party')).to eq('Remix of Original Party')
|
|
end
|
|
|
|
context 'when user language is Japanese' do
|
|
let(:user) { build(:user, language: 'ja') }
|
|
before { dummy.instance_variable_set(:@current_user, user) }
|
|
it 'returns a remix name in Japanese' do
|
|
expect(dummy.remixed_name('オリジナル')).to eq('オリジナルのリミックス')
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'when current_user is nil' do
|
|
before { dummy.instance_variable_set(:@current_user, nil) }
|
|
it 'returns a remix name in English by default' do
|
|
expect(dummy.remixed_name('Original Party')).to eq('Remix of Original Party')
|
|
end
|
|
end
|
|
end
|
|
|
|
# Debug block: prints debugging information if an example fails.
|
|
after(:each) do |example|
|
|
if example.exception && defined?(response) && response.present?
|
|
error_message = begin
|
|
JSON.parse(response.body)['exception']
|
|
rescue JSON::ParserError
|
|
response.body
|
|
end
|
|
|
|
puts "\nDEBUG: Error Message for '#{example.full_description}': #{error_message}"
|
|
|
|
# Parse once and grab the trace safely
|
|
parsed_body = JSON.parse(response.body)
|
|
trace = parsed_body.dig('traces', 'Application Trace')
|
|
ap trace if trace # Only print if trace is not nil
|
|
end
|
|
end
|
|
end
|