require_relative '../rails_helper' RSpec.describe Species do fixtures :species, :colors describe "#valid_colors_for_species" do it('returns colors that have pet types for the species') do # The Blue Acara exists in fixtures, as does a "Color #123 Acara", which we'll ignore. compatible_colors = species(:acara).compatible_colors expect(compatible_colors.map(&:id)).to eq [8] end end describe '#to_param' do it("uses name when possible") do expect(species(:acara).to_param).to eq "Acara" end it("uses IDs for new species") do expect(Species.new(id: 12345).to_param).to eq "12345" end end describe ".param_to_id" do it("looks up by name") do expect(Species.param_to_id("acara")).to eq species(:acara).id end it("is case-insensitive for name") do expect(Species.param_to_id("aCaRa")).to eq species(:acara).id end it("returns ID when the param is just a number, even if no record exists") do expect(Species.param_to_id("123456")).to eq 123456 end it("raises RecordNotFound if no name matches") do expect { Species.param_to_id("nonexistant") }. to raise_error ActiveRecord::RecordNotFound end end end