Sha256: 1c226caad6f71aff40abad6fe5578d4a4ab6ba1ffda6e949a5ebfd7bdb0ebc83

Contents?: true

Size: 1.21 KB

Versions: 7

Compression:

Stored size: 1.21 KB

Contents

require "spec_helper"

describe Pliny::Helpers::Serialize do
  context "without a serializer" do
    def app
      Sinatra.new do
        register Pliny::Helpers::Serialize

        get "/" do
          MultiJson.encode(serialize([]))
        end
      end
    end

    it "raises a runtime error" do
      assert_raises(RuntimeError) do
        get "/"
      end
    end
  end

  context "with a serializer" do
    class Serializer
      def initialize(opts); end
      def serialize(data)
        data
      end
    end

    def app
      Sinatra.new do
        register Pliny::Helpers::Serialize

        serializer Serializer

        get "/" do
          MultiJson.encode(serialize([]))
        end

        get "/env" do
          MultiJson.encode(serialize(env))
        end
      end
    end

    it "encodes as json" do
      get "/"
      assert_equal 200, last_response.status
      assert_equal MultiJson.encode([]), last_response.body
    end

    it "emits information for canonical log lines" do
      get "/env"
      assert_equal 200, last_response.status
      body = MultiJson.decode(last_response.body)
      assert body["pliny.serializer_arity"] > 1
      assert body["pliny.serializer_timing"] > 0
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
pliny-1.1.0 spec/helpers/serialize_spec.rb
pliny-1.0.0 spec/helpers/serialize_spec.rb
pliny-0.32.0 spec/helpers/serialize_spec.rb
pliny-0.31.0 spec/helpers/serialize_spec.rb
pliny-0.30.1 spec/helpers/serialize_spec.rb
pliny-0.30.0 spec/helpers/serialize_spec.rb
pliny-0.29.0 spec/helpers/serialize_spec.rb