Skip to content

Commit

Permalink
Add tests for large file downloads via the streaming interface
Browse files Browse the repository at this point in the history
  • Loading branch information
ivgiuliani committed Apr 12, 2023
1 parent 2320f97 commit dc6cdfe
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion spec/bucket_store_integration_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,27 @@
end
expect(described_class.for(base_bucket_uri.to_s).list.to_a.size).to eq(0)
end

context "using the streaming interface" do
it "supports large file downloads" do
# Upload a large file
large_file_content = "Z" * 1024 * 1024 * 10 # 10Mb
described_class.
for("#{base_bucket_uri}/large.txt").
upload!(large_file_content)

# Streaming downloads should return a chunked response
rebuilt_large_file =
described_class.for("#{base_bucket_uri}/large.txt").
stream.
download.
map { |_meta, chunk| chunk }.
join
expect(rebuilt_large_file).to eq(large_file_content)
end
end
end

# We don't test GCS as there's no sensible way of running a local simulator
include_examples "adapter integration", "inmemory://bucket"
include_examples "adapter integration", "disk://bucket"
include_examples "adapter integration", "s3://bucket"
Expand Down

0 comments on commit dc6cdfe

Please sign in to comment.