Sha256: f483609c945d8d339c332ad1651c5a40584974513d76fd8f5f8e9dbda5e9070a
Contents?: true
Size: 1.43 KB
Versions: 4
Compression:
Stored size: 1.43 KB
Contents
# encoding: utf-8 require "spec_helper" module Uuids::Services describe Add do # Models dependency injection let(:uuids_class) { Uuids::Models::Uuid } # Parameters by default let!(:record) { create :record } let!(:params) do { "record" => record, "value" => SecureRandom.uuid } end # The service and its listener let(:listener) { spy "listener" } subject do service = described_class.new params service.subscribe listener service end describe "#run" do context "with valid params" do it "adds a uuid to the record" do expect { subject.run }.to change { uuids_class.count }.by 1 expect(uuids_class.last).to correspond_to params end it "publishes :created" do subject.run expect(listener).to have_received(:created) do |uuid, messages| expect(uuid).to eq uuids_class.last expect(messages).to be_present end end end context "with a wrong value" do before { params.merge! "value" => "wrong" } it "doesn't create a uuid" do expect { subject.run }.not_to change { uuids_class.all } end it "publishes :error" do subject.run expect(listener).to have_received(:error) do |messages| expect(messages).to be_present end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
uuids-5.0.0 | spec/tests/services/add_spec.rb |
uuids-4.1.8 | spec/uuids/services/add_spec.rb |
uuids-4.1.7 | spec/uuids/services/add_spec.rb |
uuids-4.1.6 | spec/uuids/services/add_spec.rb |