Sha256: a85ff02fb00f4d135d34cfa7d031137697c076456a2906dd71b44ab6ab1d2ad7

Contents?: true

Size: 1.22 KB

Versions: 3

Compression:

Stored size: 1.22 KB

Contents

require 'spec_helper'
require "click_session/configuration"
require 'support/test_unit_model'

describe ClickSession::ResponseSerializer do
  let(:session_state) { ClickSession::SessionState.create }

  let(:model) {
    create(:test_unit_model)
  }

  describe "#serialize_success" do
    before do
      mock_configuration_model_class_with(model)
    end

    context 'With the default serializer' do
      it "returns success meta data with the model serialized" do
        session_state.model = model
        response_serializer = ClickSession::ResponseSerializer.new

        response = response_serializer.serialize_success(session_state)

        expect(response).to eql({
          id: session_state.id,
          status: {
            success: true
          },
          data: model.as_json
        })
      end
    end
  end

  describe "#serialize_failure" do
    it "returns failure meta data and no serialized model" do
      session_state.model = model
      response_serializer = ClickSession::ResponseSerializer.new

      response = response_serializer.serialize_failure(session_state)

      expect(response).to eql({
        id: session_state.id,
        status: {
          success: false
        }
      })
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
click_session-0.1.1 spec/click_session/response_serializer_spec.rb
click_session-0.1.0 spec/click_session/response_serializer_spec.rb
click_session-0.0.1 spec/click_session/response_serializer_spec.rb