# frozen_string_literal: true # License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later require 'rails_helper' describe "ChunkedUploader" do let(:input) { ['something\nexit','anotherbreak\n']} let(:result) {'something\nexitanotherbreak\n'} it 'sends a File to the block' do ChunkedUploader.upload(input) do |io| expect(io.class).to eq File end end it 'it sends the accurate result to the block' do ChunkedUploader.upload(input) do |io| expect(io.read).to eq result end end describe 'chunked uploads' do let(:input) { (['something\nexit','anotherbreak\n'] * 200000).flatten} let(:result) {'something\nexitanotherbreak\n' * 200000} let(:key) { "root/middle/child"} it 'file service uploads 5MB+ file' do ChunkedUploader.upload(input) do |io| ActiveStorage::Blob.service.upload(key, io) end expect( ActiveStorage::Blob.service.download(key)).to eq result end describe 's3' do xit 'uploads 5MB+ file' do s3_test = ActiveStorage::Service.configure(:s3_test, Rails.configuration.active_storage.service_configurations) ChunkedUploader.upload(input) do |io| s3_test.upload(key, io) end expect( s3_test.download(key)).to eq result end end end end