42 lines
1.1 KiB
Ruby
42 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe Rating::Extension, ':rate_for' do
|
|
let!(:author) { create :author }
|
|
let!(:article) { create :article }
|
|
|
|
context 'with no scopeable' do
|
|
it 'delegates to rate object' do
|
|
expect(Rating::Rate).to receive(:rate_for).with author: author, extra_scopes: {}, resource: article, scopeable: nil
|
|
|
|
author.rate_for article
|
|
end
|
|
end
|
|
|
|
context 'with scopeable' do
|
|
let!(:category) { build :category }
|
|
|
|
it 'delegates to rate object' do
|
|
expect(Rating::Rate).to receive(:rate_for).with author: author, extra_scopes: {}, resource: article, scopeable: category
|
|
|
|
author.rate_for article, scope: category
|
|
end
|
|
end
|
|
|
|
context 'with extra_scopes' do
|
|
let!(:category) { build :category }
|
|
|
|
it 'delegates to rate object' do
|
|
expect(Rating::Rate).to receive(:rate_for).with(
|
|
author: author,
|
|
extra_scopes: { scope_1: 'scope_1' },
|
|
resource: article,
|
|
scopeable: category
|
|
)
|
|
|
|
author.rate_for article, extra_scopes: { scope_1: 'scope_1' }, scope: category
|
|
end
|
|
end
|
|
end
|