Sha256: 4ca693a1510243dd46448a7cceb53ce1fc6ca65746eff95e881c7f27ed75a380
Contents?: true
Size: 1.78 KB
Versions: 2
Compression:
Stored size: 1.78 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, "wrong" => "wrong" } end # The service and its listener let(:listener) { spy "listener" } subject do service = described_class.new params service.subscribe listener service end describe ".new" do it "sets #record" do expect(subject.record).to eq params["record"] end it "sets #value" do expect(subject.value).to eq params["value"] end it "whitelists params" do expect(subject.params).to eq params.slice("record", "value") end 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 subject.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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
uuids-4.1.5 | spec/uuids/services/add_spec.rb |
uuids-4.1.4 | spec/uuids/services/add_spec.rb |