hensei-api/spec/services/processors/base_processor_spec.rb
Justin Edmund 3cdd925162
Fix filters and add processors (#181)
* Update test csvs

* Fix count filters and refactor apply_filters

* Update party_querying_concern.rb

* +tests/-debug logs

* Make party association optional in Job

* Updates for weapon series

- Change to new series numbers
- Add static method for querying whether the weapon's element is changeable
- Add a new method to return a text slug for the weapon's series

* Add and update test data

- Updates canonical.rb for loading multiple types of data with multiple types of associations
- Adds test data for Guidebooks, Job Accessories, Job Skills, and Jobs
- Updates test data for Weapons and Summons

* Migrations

- Adds series of migrations for changing the weapon's series to the values used by Cygames
- Shuffled around some foreign keys

* Implement BaseProcessor

Processors are in charge of processing deck data straight from Granblue.

* Implement CharacterProcessor

Process character data from deck

* Implement WeaponProcessor

Process weapon data from deck

* Implement JobProcessor

Process job, job skill, and job accessory data from deck

* Implement SummonProcessor

Process summon data from deck

* Update SummonProcessor to work like the others

* ImportController should use processors

* Process element for changeable weapons
2025-02-17 23:51:50 -08:00

45 lines
1.2 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
require 'rails_helper'
module Processors
class DummyBaseProcessor < BaseProcessor
# A dummy implementation of process.
def process
"processed"
end
# Expose the protected log method as public for testing.
def public_log(message)
log(message)
end
end
end
RSpec.describe Processors::DummyBaseProcessor, type: :model do
# Note: BaseProcessor.new expects (party, data, options = {})
let(:dummy_party) { nil }
let(:dummy_data) { {} }
let(:processor) { described_class.new(dummy_party, dummy_data) }
describe '#process' do
it 'returns the dummy processed value' do
expect(processor.process).to eq("processed")
end
end
describe '#public_log' do
it 'logs a message containing the processor class name' do
message = "Test log message"
expect(Rails.logger).to receive(:info).with(a_string_including("DummyBaseProcessor", message))
processor.public_log(message)
end
end
after(:each) do |example|
if example.exception
puts "\nDEBUG [DummyBaseProcessor]: #{example.full_description} failed with error: #{example.exception.message}"
end
end
end