rating/spec/models/extension/rate_spec.rb

64 lines
1.8 KiB
Ruby
Raw Normal View History

2017-10-30 01:44:23 +00:00
# frozen_string_literal: true
RSpec.describe Rating::Extension, ':rate' do
let!(:author) { create :author }
2017-10-30 01:44:23 +00:00
let!(:article) { create :article }
2017-11-02 18:55:46 +00:00
context 'with no scopeable' do
it 'delegates to rate object' do
expect(Rating::Rate).to receive(:create).with(
2018-03-01 20:50:28 +00:00
author: author, extra_scopes: {}, metadata: {}, resource: article, scopeable: nil, value: 3
)
2017-10-30 01:44:23 +00:00
author.rate article, 3
2017-11-02 18:55:46 +00:00
end
end
context 'with scopeable' do
let!(:category) { build :category }
it 'delegates to rate object' do
expect(Rating::Rate).to receive(:create).with(
2018-03-01 20:50:28 +00:00
author: author, extra_scopes: {}, metadata: {}, resource: article, scopeable: category, value: 3
)
2017-11-02 18:55:46 +00:00
author.rate article, 3, scope: category
2017-11-02 18:55:46 +00:00
end
2017-10-30 01:44:23 +00:00
end
context 'with no metadata' do
it 'delegates an empty hash to rate object' do
expect(Rating::Rate).to receive(:create).with(
2018-03-01 20:50:28 +00:00
author: author, extra_scopes: {}, resource: article, metadata: {}, scopeable: nil, value: 3
)
author.rate article, 3
end
end
context 'with metadata' do
it 'delegates to rate object' do
expect(Rating::Rate).to receive(:create).with(
2018-03-01 20:50:28 +00:00
author: author, extra_scopes: {}, metadata: { comment: 'comment' }, resource: article, scopeable: nil, value: 3
)
author.rate article, 3, metadata: { comment: 'comment' }
end
end
2018-03-01 20:50:28 +00:00
context 'with extra_scopes' do
it 'delegates to rate object' do
expect(Rating::Rate).to receive(:create).with(
2022-04-21 22:57:48 +00:00
author: author,
extra_scopes: { scope_1: 'scope_1' },
metadata: { comment: 'comment' },
resource: article,
scopeable: nil,
value: 3
2018-03-01 20:50:28 +00:00
)
author.rate article, 3, extra_scopes: { scope_1: 'scope_1' }, metadata: { comment: 'comment' }
end
end
2017-10-30 01:44:23 +00:00
end