master
 1require 'rails_helper'
 2
 3describe Category do
 4  describe ".by_slug" do
 5    let!(:cookies) { create(:category, slug: 'cookies') }
 6    let!(:cup_cakes) { create(:category, slug: 'cup-cakes') }
 7    let!(:cakes) { create(:category, slug: 'cakes') }
 8
 9    it 'finds by slug' do
10      expect(Category.by_slug('cakes')).to eql(cakes)
11      expect(Category.by_slug('CAKES')).to eql(cakes)
12      expect(Category.by_slug('Cakes')).to eql(cakes)
13    end
14  end
15
16  describe "#to_param" do
17    subject { Category.new(name: 'The Cakes', slug: 'cakes') }
18
19    it 'returns the slug as the id' do
20      expect(subject.to_param).to eql('cakes')
21    end
22  end
23
24  describe ".all" do
25    let!(:cookies) { create(:category, slug: 'cookies') }
26    let!(:cup_cakes) { create(:category, slug: 'cup-cakes') }
27    let!(:cakes) { create(:category, slug: 'cakes') }
28
29    it 'loads categories ordered by name' do
30      expect(Category.all.to_a).to eql([cakes, cookies, cup_cakes])
31    end
32  end
33end