* 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
37 lines
1 KiB
Ruby
37 lines
1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe Processors::SummonProcessor, type: :model do
|
|
let(:party) { create(:party) }
|
|
let(:deck_data) do
|
|
file_path = Rails.root.join('spec', 'fixtures', 'deck_sample.json')
|
|
JSON.parse(File.read(file_path))
|
|
end
|
|
|
|
subject { described_class.new(party, deck_data, language: 'en') }
|
|
|
|
context 'with valid summon data' do
|
|
it 'creates the correct number of GridSummon records' do
|
|
expect { subject.process }.to change(GridSummon, :count).by(7)
|
|
end
|
|
end
|
|
|
|
context 'with invalid summon data' do
|
|
let(:deck_data) { "invalid data" }
|
|
it 'does not create any GridSummon and logs an error containing "SUMMON"' do
|
|
expect { subject.process }.not_to change(GridSummon, :count)
|
|
begin
|
|
subject.process
|
|
rescue StandardError
|
|
nil
|
|
end
|
|
end
|
|
end
|
|
|
|
after(:each) do |example|
|
|
if example.exception
|
|
puts "\nDEBUG [SummonProcessor]: #{example.full_description} failed with error: #{example.exception.message}"
|
|
end
|
|
end
|
|
end
|