summaryrefslogtreecommitdiff
path: root/spec/models/category_spec.rb
blob: 581ced13784517f0ca1981e710a1e4acb02e9c0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
require 'rails_helper'

describe Category do
  describe ".by_slug" do
    let!(:cookies) { create(:category, slug: 'cookies') }
    let!(:cup_cakes) { create(:category, slug: 'cup-cakes') }
    let!(:cakes) { create(:category, slug: 'cakes') }

    it 'finds by slug' do
      expect(Category.by_slug('cakes')).to eql(cakes)
      expect(Category.by_slug('CAKES')).to eql(cakes)
      expect(Category.by_slug('Cakes')).to eql(cakes)
    end
  end

  describe "#to_param" do
    subject { Category.new(name: 'The Cakes', slug: 'cakes') }

    it 'returns the slug as the id' do
      expect(subject.to_param).to eql('cakes')
    end
  end

  describe ".all" do
    let!(:cookies) { create(:category, slug: 'cookies') }
    let!(:cup_cakes) { create(:category, slug: 'cup-cakes') }
    let!(:cakes) { create(:category, slug: 'cakes') }

    it 'loads categories ordered by name' do
      expect(Category.all.to_a).to eql([cakes, cookies, cup_cakes])
    end
  end
end