Sha256: 4eb85b2b496a8c76013db186afa414e6ca13f9ee07b573b3ffc229abed58ab63

Contents?: true

Size: 1.69 KB

Versions: 3

Compression:

Stored size: 1.69 KB

Contents

# encoding: utf-8

describe ServiceObjects::Helpers::Messages do

  let(:messages_class) { ServiceObjects::Message }
  let(:test_class)     { Class.new               }

  before { ServiceObjects::Test = test_class        }
  before { test_class.include described_class       }
  after  { ServiceObjects.send :remove_const, :Test }

  subject { test_class.new }

  describe "#translate" do

    let(:scope)      { %w(activemodel messages models service_objects/test) }
    let(:traslation) { I18n.t(:text, scope: scope, name: "name")            }

    it "translates symbols in the service's scope" do
      expect(subject.translate(:text, name: "name")).to eq traslation
    end

    it "doesn't translate strings" do
      expect(subject.translate("text")).to eq "text"
    end

    it "converts non-symbolic argument to string" do
      expect(subject.translate nil).to eq ""
      expect(subject.translate 1).to eq "1"
    end

  end # #translate

  describe "#messages" do

    it "returns an array" do
      expect(subject.messages).to be_kind_of Array
    end

  end # #messages

  describe "#add_message" do

    let(:message) { subject.messages.first }

    it "adds a new message to the #messages" do
      subject.add_message text: "foo", type: "bar", priority: 5, baz: 0

      expect(message).to be_kind_of messages_class
      expect(message.type).to eq "bar"
      expect(message.text).to eq "foo"
      expect(message.priority).to eq 5.0
    end

    it "translates a symbol" do
      subject.add_message text: :foo, type: :bar, priority: 5, baz: 0

      translation = subject.translate :foo, baz: 0
      expect(message.text).to eq translation
    end

  end # #add_message

end # ServiceObjects::Helpers::Messages

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
service_objects-0.1.0 spec/tests/helpers/messages_spec.rb
service_objects-0.0.2 spec/tests/helpers/messages_spec.rb
service_objects-0.0.1 spec/tests/helpers/messages_spec.rb