Sha256: 78ae82159fa4ad7d0e8df0f800acb25079c4b73615dd910c8087467d10b3ed3a

Contents?: true

Size: 1.21 KB

Versions: 23

Compression:

Stored size: 1.21 KB

Contents

require 'spec_helper'

describe Resource::Response::Embeddable do
  before do
    class ExampleChild < Resource
      property :id
    end

    class Example < Resource
      embeds_one  :example_child
      embeds_many :example_children
    end
  end

  shared_examples_for "an embeddable" do
    it "returns a pair with property name and value" do
      subject.to_resource(example).should == result
    end

    context "when this key shouldn't be visible on resource" do
      it "returns an empty hash" do
        subject.should_receive(:visible?).and_return false
        subject.to_resource(example).should == {}
      end
    end
  end

  context "when embeds one" do
    subject {Example.keys[0]}

    let :example do
      Example.new.tap do |example|
        example.example_child = ExampleChild.new(id: "200")
      end
    end

    let(:result) {{example_child: {id: "200"}}}

    it_behaves_like "an embeddable"
  end

  context "when embeds many" do
    subject {Example.keys[1]}

    let :example do
      Example.new.tap do |example|
        example.example_children = [ExampleChild.new(id: "300")]
      end
    end

    let(:result) {{example_children: [{id: "300"}]}}

    it_behaves_like "an embeddable"
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
transcriber-0.0.25 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.24 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.23 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.22 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.21 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.20 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.19 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.18 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.17 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.16 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.15 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.14 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.13 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.12 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.11 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.10 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.9 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.8 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.7 spec/unit/resource/response/embeddable_spec.rb
transcriber-0.0.6 spec/unit/resource/response/embeddable_spec.rb