Commit c32fb646

mo khan <mo@mokhan.ca>
2015-01-11 15:21:25
add specs for categories.
1 parent 6dfba2b
Changed files (2)
app
spec
app/models/category.rb
@@ -2,6 +2,8 @@ class Category < ActiveRecord::Base
   has_many :creations
   default_scope -> { order(:name) }
 
+  scope :by_slug, ->(category) { find_by(slug: category.downcase)}
+
   def to_param
     slug
   end
spec/models/category_spec.rb
@@ -0,0 +1,23 @@
+require 'rails_helper'
+
+describe Category do
+  describe ".by_slug" do
+    let!(:category) { create(:category, slug: 'cookies') }
+    let!(:category) { create(:category, slug: 'cup-cakes') }
+    let!(:category) { create(:category, slug: 'cakes') }
+
+    it 'finds by slug' do
+      expect(Category.by_slug('cakes')).to eql(category)
+      expect(Category.by_slug('CAKES')).to eql(category)
+      expect(Category.by_slug('Cakes')).to eql(category)
+    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
+end