Sha256: c750480af1ab40f5279b0875d4221dcac029aad14bcf2af95087af050c806bb5

Contents?: true

Size: 1.8 KB

Versions: 4

Compression:

Stored size: 1.8 KB

Contents

describe EOTS do

  before do
    EOTS::reset
  end

  let(:kind_name_1)  { "kind1" }
  let(:kind_name_2)  { "kind2" }
  let(:kind_name_3)  { "kind3" }
  let(:field_name_1) { "field1" }
  let(:field_name_2) { "field2" }
  let(:field_name_3) { "field3" }
  let(:label_1)      { "This is the label for field 1" }
  let(:label_2)      { "This is the label for field 2" }
  let(:label_3)      { "This is the label for field 3" }

  describe "#field" do

    it "attaches a field to the current email kind" do
      EOTS::email_kind(kind_name_1) { EOTS::field field_name_1, label_1 }

      fields = EOTS::find_kind(kind_name_1).fields
      expect(fields.map { |name, obj| [name, obj.label] }).to eq [[field_name_1, label_1]]
    end


    it "can accomodate multiple email kinds" do
      EOTS::email_kind(kind_name_1) { EOTS::field(field_name_1, label_1) }
      EOTS::email_kind kind_name_2 do
        EOTS::field field_name_2, label_2
        EOTS::field field_name_3, label_3
      end

      expect(EOTS::find_kind(kind_name_1).fields.map { |name, obj|
        [name, obj.label]
      }).to eq([[field_name_1, label_1]])
      expect(EOTS::find_kind(kind_name_2).fields.map { |name, obj|
        [name, obj.label]
      }).to eq([[field_name_2, label_2], [field_name_3, label_3]])
    end


    it "barfs on same field on same email kind" do
      expect {
        EOTS::email_kind kind_name_1 do
          EOTS::field field_name_1, label_1
          EOTS::field field_name_1, label_1
        end
      }.to raise_error(EOTS::Field::AlreadyDefinedError)
    end


    it "does not barf on same field on different email kinds" do
      EOTS::email_kind(kind_name_1) { EOTS::field(field_name_1, label_1) }

      expect {
        EOTS::email_kind(kind_name_2) { EOTS::field(field_name_1, label_1) }
      }.not_to raise_error
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
eots-0.0.4 spec/dummy/spec/unit/field_spec.rb
eots-0.0.3 spec/dummy/spec/unit/field_spec.rb
eots-0.0.2 spec/dummy/spec/unit/field_spec.rb
eots-0.0.1 spec/dummy/spec/unit/field_spec.rb