Sha256: 53377d071a3e526df6b48f18f9edbeab2ded46f10f11ac9bd5117fffdb6fe890

Contents?: true

Size: 1.21 KB

Versions: 68

Compression:

Stored size: 1.21 KB

Contents

describe Appsignal::Utils::JSON do
  describe ".generate" do
    subject { Appsignal::Utils::JSON.generate(body) }

    context "with a valid body" do
      let(:body) do
        {
          "the" => "payload",
          1 => true,
          nil => "test",
          :foo => [1, 2, "three"],
          "bar" => nil,
          "baz" => { "foo" => "bar" }
        }
      end

      it "returns a JSON string" do
        is_expected.to eq %({"the":"payload","1":true,"":"test","foo":[1,2,"three"],"bar":null,"baz":{"foo":"bar"}})
      end
    end

    context "with a body that contains strings with invalid UTF-8 content" do
      let(:string_with_invalid_utf8) { [0x61, 0x61, 0x85].pack("c*") }
      let(:body) do
        {
          "field_one" => [0x61, 0x61].pack("c*"),
          :field_two => string_with_invalid_utf8,
          "field_three" => [
            "one", string_with_invalid_utf8
          ],
          "field_four" => {
            "one" => string_with_invalid_utf8
          }
        }
      end

      it "returns a JSON string with invalid UTF-8 content" do
        is_expected.to eq %({"field_one":"aa","field_two":"aa�","field_three":["one","aa�"],"field_four":{"one":"aa�"}})
      end
    end
  end
end

Version data entries

68 entries across 68 versions & 1 rubygems

Version Path
appsignal-3.3.11-java spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.11 spec/lib/appsignal/utils/json_spec.rb
appsignal-3.4.0-java spec/lib/appsignal/utils/json_spec.rb
appsignal-3.4.0 spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.10-java spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.10 spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.9-java spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.9 spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.8-java spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.8 spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.7-java spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.7 spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.6-java spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.6 spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.5-java spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.5 spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.4-java spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.4 spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.3-java spec/lib/appsignal/utils/json_spec.rb
appsignal-3.3.3 spec/lib/appsignal/utils/json_spec.rb