diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d5f2f6a..781927a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,9 +9,11 @@ on: - synchronize jobs: ci: - runs-on: ubuntu-latest + runs-on: ${{ matrix.runner }} strategy: matrix: + # Ruby 3.1 is unavailable on Ubuntu 26.04 (ubuntu-latest). + runner: [ubuntu-24.04, ubuntu-24.04-arm] ruby: - "3.1" - "3.2" diff --git a/test/unit/test_transloadit.rb b/test/unit/test_transloadit.rb index 4a07589..64335c6 100644 --- a/test/unit/test_transloadit.rb +++ b/test/unit/test_transloadit.rb @@ -62,7 +62,7 @@ _(step).must_be_kind_of Transloadit::Step _(step.name).must_equal "resize" _(step.robot).must_equal "/image/resize" - _(step.options).must_equal width: 320 + _(step.options).must_equal({width: 320}) end it "must create assembly api instances" do diff --git a/test/unit/transloadit/test_api.rb b/test/unit/transloadit/test_api.rb index 3196e3a..11ebfb8 100644 --- a/test/unit/transloadit/test_api.rb +++ b/test/unit/transloadit/test_api.rb @@ -27,10 +27,10 @@ end it "must remember the options passed" do - _(api.options).must_equal( + _(api.options).must_equal({ foo: foo, bar: bar - ) + }) end it "must inspect like a hash" do @@ -38,11 +38,11 @@ end it "must produce Transloadit-compatible hash output" do - _(api.to_hash).must_equal( + _(api.to_hash).must_equal({ auth: transloadit.to_hash, foo: foo, bar: bar - ) + }) end it "must produce Transloadit-compatible JSON output" do diff --git a/test/unit/transloadit/test_assembly.rb b/test/unit/transloadit/test_assembly.rb index b845cd8..0ea449a 100644 --- a/test/unit/transloadit/test_assembly.rb +++ b/test/unit/transloadit/test_assembly.rb @@ -30,15 +30,15 @@ it "must not wrap a hash step" do @assembly.options[:steps] = {foo: 1} - _(@assembly.steps).must_equal foo: 1 + _(@assembly.steps).must_equal({foo: 1}) end it "must produce Transloadit-compatible hash output" do - _(@assembly.to_hash).must_equal( + _(@assembly.to_hash).must_equal({ auth: @transloadit.to_hash, steps: @assembly.steps, redirect_url: @redirect - ) + }) end it "must submit files for upload" do @@ -170,7 +170,8 @@ response = @assembly.create! open("lib/transloadit/version.rb") _(response["ok"]).must_equal "ASSEMBLY_COMPLETED" } - _(warning).must_equal "Rate limit reached. Waiting for 0 seconds before retrying.\n" + # Dependencies may emit deprecation warnings on their first use. + _(warning.lines.count("Rate limit reached. Waiting for 0 seconds before retrying.\n")).must_equal 1 end end diff --git a/test/unit/transloadit/test_response.rb b/test/unit/transloadit/test_response.rb index 227cafd..7866e53 100644 --- a/test/unit/transloadit/test_response.rb +++ b/test/unit/transloadit/test_response.rb @@ -24,7 +24,7 @@ _(returned).must_be_same_as response _(response["ok"]).must_equal "ASSEMBLY_COMPLETED" - _(response.headers).must_equal x_request_id: "new-request" + _(response.headers).must_equal({x_request_id: "new-request"}) _(response.code).must_equal 200 _(response.status).must_equal 200 end diff --git a/test/unit/transloadit/test_step.rb b/test/unit/transloadit/test_step.rb index d4c2206..54b0df2 100644 --- a/test/unit/transloadit/test_step.rb +++ b/test/unit/transloadit/test_step.rb @@ -29,11 +29,11 @@ end it "must remember the parameters" do - _(@step.options).must_equal( + _(@step.options).must_equal({ key: @key, secret: @secret, bucket: @bucket - ) + }) end it "must inspect like a hash" do @@ -41,14 +41,14 @@ end it "must produce Transloadit-compatible hash output" do - _(@step.to_hash).must_equal( + _(@step.to_hash).must_equal({ @step.name => { robot: @robot, key: @key, secret: @secret, bucket: @bucket } - ) + }) end it "must produce Transloadit-compatible JSON output" do diff --git a/test/unit/transloadit/test_transport_compatibility.rb b/test/unit/transloadit/test_transport_compatibility.rb index 57e6dbc..81f27be 100644 --- a/test/unit/transloadit/test_transport_compatibility.rb +++ b/test/unit/transloadit/test_transport_compatibility.rb @@ -23,7 +23,7 @@ _(response["ok"]).must_equal "ASSEMBLY_COMPLETED" assert_requested(:get, /\A#{Regexp.escape(endpoint)}/) do |request| query = Addressable::URI.parse(request.uri.to_s).query_values - _(MultiJson.load(query.fetch("params"))).must_equal "wait" => true + _(MultiJson.load(query.fetch("params"))).must_equal({"wait" => true}) _(query.fetch("signature")).must_match(/\Asha384:[0-9a-f]{96}\z/) _(request.headers.fetch("Transloadit-Client")).must_equal "ruby-sdk:#{Transloadit::VERSION}" end @@ -38,7 +38,7 @@ assert_requested(:post, endpoint) do |request| form = URI.decode_www_form(request.body).to_h - _(MultiJson.load(form.fetch("params"))).must_equal "template_id" => "template-id" + _(MultiJson.load(form.fetch("params"))).must_equal({"template_id" => "template-id"}) _(form.fetch("signature")).must_match(/\Asha384:[0-9a-f]{96}\z/) _(request.headers.fetch("Content-Type")).must_match(/\Aapplication\/x-www-form-urlencoded/) end @@ -53,7 +53,7 @@ assert_requested(:put, endpoint) do |request| form = URI.decode_www_form(request.body).to_h - _(MultiJson.load(form.fetch("params"))).must_equal "name" => "Updated" + _(MultiJson.load(form.fetch("params"))).must_equal({"name" => "Updated"}) _(form.fetch("signature")).must_match(/\Asha384:[0-9a-f]{96}\z/) end end @@ -67,7 +67,7 @@ assert_requested(:delete, endpoint) do |request| form = URI.decode_www_form(request.body).to_h - _(MultiJson.load(form.fetch("params"))).must_equal "reason" => "cleanup" + _(MultiJson.load(form.fetch("params"))).must_equal({"reason" => "cleanup"}) _(form.fetch("signature")).must_match(/\Asha384:[0-9a-f]{96}\z/) end end @@ -86,7 +86,7 @@ _(response).wont_be_kind_of Faraday::Response _(response.code).must_equal 422 _(response.status).must_equal 422 - _(response.headers).must_equal retry_after: "5", x_request_id: "request-id" + _(response.headers).must_equal({retry_after: "5", x_request_id: "request-id"}) _(response["error"]).must_equal "ASSEMBLY_NOT_FOUND" end