Случайные результаты при попытке установить вложение с помощью ActiveStorage

#ruby-on-rails #rspec #rails-activestorage

#ruby-on-rails #rspec #rails-activestorage

Вопрос:

В моем тесте у меня следующее:

 ...

let(:image) { Rack::Test::UploadedFile.new('spec/support/assets/test.png', 'image/png') }
subject { described_class.new(gold_bar_order).set_bar_custom_image(image) }

it do
  subject

  expect(gold_bar_order.reload.bar_custom_image.present?).to be_truthy
end

  

И вот класс из метода, который я тестирую:

 class GoldBarOrderCustomizationUpdater
  def initialize(gold_bar_order)
    @gold_bar_order = gold_bar_order
  end

  def set_bar_custom_image(bar_custom_image)
    update_values do 
      @gold_bar_order.bar_custom_image.attach(bar_custom_image)
      @gold_bar_order.save! 
    end
  end

  ...

  private

  def update_values
    ActiveRecord::Base.transaction do
      yield

      calculator = MasterOrderCalculator.new(@gold_bar_order.master_order)

      calculator.recalculate_sub_orders!
      calculator.save_values!
    end
  end
end
  

Происходит то, что я получаю случайные результаты для описанного теста: если я запускаю его заданное количество раз, он завершается ошибкой или проходит без определенного порядка.

Я не мог понять, почему. Есть предположения?