require "spec_helper" module Uuids describe Uuid do describe "#value" do it "is set by default" do expect(subject.value).not_to be_blank end it "is a valid uuid" do UUID_FORMAT = /[a-z\d]{8}-[a-z\d]{4}-[a-z\d]{4}-[a-z\d]{4}-[a-z\d]{12}/ expect(subject.value).to match UUID_FORMAT end end describe "#value=" do it "is private" do expect { subject.value = SecureRandom.uuid }.to raise_error end end describe "#record=" do it "sets a #record" do record = create :record expect { subject.record = record } .to change { subject.record }.to record end end describe "#valid?" do subject { create :uuid } before { expect(subject).to be_valid } it "fails with blank #record" do subject.record = nil expect(subject).not_to be_valid end end describe "#destroy!" do subject { create :uuid } it "is forbidden" do expect { subject.destroy! }.to raise_error end it "adds an error messages" do expect { subject.destroy }.to change { subject.errors.blank? }.to false end end end end