# frozen_string_literal: true require 'rails_helper' RSpec.describe Jobs::SyncAclsForUploads do let(:upload1) { Fabricate(:upload) } let(:upload2) { Fabricate(:upload) } let(:upload3) { Fabricate(:secure_upload) } let(:upload_ids) { [upload1.id, upload2.id, upload3.id] } def run_job described_class.new.execute(upload_ids: upload_ids) end it "does nothing if not using external storage" do Upload.expects(:where).never run_job end context "with external storage enabled" do before do setup_s3 stub_s3_store end it "runs update_upload_ACL for each upload" do Discourse.store.expects(:update_upload_ACL).times(3) run_job end it "handles updates throwing an exception" do Discourse.store.expects(:update_upload_ACL).raises(StandardError).then.returns(true, true).times(3) Discourse.expects(:warn_exception).once run_job end end end