rating/spec/models/extension/rated_question_spec.rb

39 lines
1.2 KiB
Ruby
Raw Normal View History

2017-10-30 01:44:23 +00:00
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Rating::Extension, ':rated?' do
let!(:user) { create :user }
let!(:article) { create :article }
2017-11-02 18:55:46 +00:00
context 'with no scopeable' do
context 'when has no rate for the given resource' do
before { allow(user).to receive(:rate_for).with(article, scope: nil) { nil } }
2017-10-30 01:44:23 +00:00
2017-11-02 18:55:46 +00:00
specify { expect(user.rated?(article)).to eq false }
end
context 'when has rate for the given resource' do
before { allow(user).to receive(:rate_for).with(article, scope: nil) { double } }
specify { expect(user.rated?(article)).to eq true }
end
2017-10-30 01:44:23 +00:00
end
2017-11-02 18:55:46 +00:00
context 'with scopeable' do
let!(:category) { build :category }
context 'when has no rate for the given resource' do
before { allow(user).to receive(:rate_for).with(article, scope: category) { nil } }
specify { expect(user.rated?(article, scope: category)).to eq false }
end
context 'when has rate for the given resource' do
before { allow(user).to receive(:rate_for).with(article, scope: category) { double } }
2017-10-30 01:44:23 +00:00
2017-11-02 18:55:46 +00:00
specify { expect(user.rated?(article, scope: category)).to eq true }
end
2017-10-30 01:44:23 +00:00
end
end