Sha256: eda4ff4ffcbc428fa0343c2fb452717fc2710f3e4ef8cbf0fdc7a0b96a396e8e

Contents?: true

Size: 1.21 KB

Versions: 6

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
        helpers 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
        helpers 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

6 entries across 6 versions & 1 rubygems

Version Path
pliny-0.28.0 spec/helpers/serialize_spec.rb
pliny-0.27.1 spec/helpers/serialize_spec.rb
pliny-0.27.0 spec/helpers/serialize_spec.rb
pliny-0.26.2 spec/helpers/serialize_spec.rb
pliny-0.26.1 spec/helpers/serialize_spec.rb
pliny-0.26.0 spec/helpers/serialize_spec.rb