require "rails_helper" describe SDG::Phase do let(:phase) { build(:sdg_phase) } before { SDG::Phase["sensitization"].destroy } it "is valid with a valid kind" do phase.kind = "sensitization" expect(phase).to be_valid end it "is not valid without a kind" do phase.kind = nil expect(phase).not_to be_valid end it "is not valid with a duplicate kind" do phase.kind = "planning" expect(phase).not_to be_valid end it "is not valid with a custom kind" do expect { phase.kind = "improvement" }.to raise_exception(ArgumentError) end describe ".[]" do it "finds existing phases by kind" do expect(SDG::Phase["monitoring"].kind).to eq "monitoring" end it "raises an exception on empty databases" do SDG::Phase["monitoring"].destroy! expect { SDG::Phase["monitoring"] }.to raise_exception ActiveRecord::RecordNotFound end it "raises an exception for non-existing kinds" do expect { SDG::Phase["improvement"] }.to raise_exception ActiveRecord::RecordNotFound end end end