Skip to content
This repository has been archived by the owner on Jan 25, 2022. It is now read-only.

Commit

Permalink
タグ詳細: クリップ/まとめ数が常に0となる不具合を修正
Browse files Browse the repository at this point in the history
  • Loading branch information
YOSHIDA Hiroki committed Feb 20, 2014
1 parent 5045204 commit 62e6492
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 1 deletion.
2 changes: 1 addition & 1 deletion app/models/tag.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ class Tag < ActiveRecord::Base
belongs_to :user

scope :uniques, group(:name)
scope :by, lambda {|user| where(user_id: user) }
scope :by, lambda {|user| where(user_id: user) if user }
scope :for, lambda {|tagged| where(tagged_id: tagged, tagged_type: tagged.is_a?(Array) ? tagged.first.class.name : tagged.class.name) }
scope :newest, lambda {|limit| uniques.select("name, COUNT(name) AS name_count, MAX(updated_at) AS newest_updated_at").reorder('newest_updated_at desc').limit(limit) }
scope :hottest, lambda {|limit| uniques.select("name, COUNT(name) AS name_count").reorder('name_count desc').limit(limit) }
Expand Down
7 changes: 7 additions & 0 deletions spec/factories/tags.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# -*- coding: utf-8 -*-
FactoryGirl.define do
factory :tag do
user { FactoryGirl.create(:has_clip_user) }
sequence(:name) {|n| "タグ#{n}" }
end
end
28 changes: 28 additions & 0 deletions spec/views/tags/show.html.slim_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
require 'spec_helper'

describe "tags/show.html.slim" do
# HACK: nameパラメータを無理矢理コントローラに渡す
before { controller.stub!(:params).and_return { { name: subject.name } } }

before_stub_request
before { assign(:tag, subject) }
before { render }

context "タグづけされたクリップが存在する場合" do
let (:clip) { FactoryGirl.create(:clip) }

subject { FactoryGirl.create(:tag, tagged: clip, tagged_type: :clip) }

it "クリップが1つが表示されていること" do
expect(rendered).to match /クリップ \(1\)/
end
end

context "タグづけされたクリップ/まとめが存在しない場合" do
subject { FactoryGirl.build(:tag) }

it "クリップが1つも表示されていないこと" do
expect(rendered).to match /クリップ \(0\)/
end
end
end

0 comments on commit 62e6492

Please sign in to comment.