Merge pull request #2115 from vikhyat/badge-system

Initial badge system implementation
This commit is contained in:
Sam
2014-03-17 10:06:37 +11:00
41 changed files with 1186 additions and 0 deletions

17
spec/models/badge.rb Normal file
View File

@ -0,0 +1,17 @@
require 'spec_helper'
require_dependency 'badge'
describe Badge do
it { should belong_to :badge_type }
context 'validations' do
before(:each) { Fabricate(:badge) }
it { should validate_presence_of :name }
it { should validate_presence_of :badge_type }
it { should validate_uniqueness_of :name }
end
end

12
spec/models/badge_type.rb Normal file
View File

@ -0,0 +1,12 @@
require 'spec_helper'
require_dependency 'badge_type'
describe BadgeType do
it { should have_many :badges }
it { should validate_presence_of :name }
it { should validate_uniqueness_of :name }
it { should validate_presence_of :color_hexcode }
end

20
spec/models/user_badge.rb Normal file
View File

@ -0,0 +1,20 @@
require 'spec_helper'
require_dependency 'user_badge'
describe UserBadge do
it { should belong_to :badge }
it { should belong_to :user }
it { should belong_to :granted_by }
context 'validations' do
before(:each) { BadgeGranter.grant(Fabricate(:badge), Fabricate(:user)) }
it { should validate_presence_of(:badge_id) }
it { should validate_presence_of(:user_id) }
it { should validate_presence_of(:granted_at) }
it { should validate_presence_of(:granted_by) }
it { should validate_uniqueness_of(:badge_id).scoped_to(:user_id) }
end
end

View File

@ -10,6 +10,7 @@ describe User do
it { should have_many(:user_open_ids).dependent(:destroy) }
it { should have_many(:user_actions).dependent(:destroy) }
it { should have_many(:post_actions).dependent(:destroy) }
it { should have_many(:user_badges).dependent(:destroy) }
it { should have_many(:email_logs).dependent(:destroy) }
it { should have_many(:post_timings) }
it { should have_many(:topic_allowed_users).dependent(:destroy) }