spec/models/extension/vote_spec.rb in voting-0.3.0 vs spec/models/extension/vote_spec.rb in voting-0.4.0
- old
+ new
@@ -1,26 +1,46 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Voting::Extension, ':vote' do
- let!(:author) { create :author }
- let!(:comment) { create :comment }
+ let!(:author) { create :author }
+ let!(:resource) { create :comment }
context 'with no scopeable' do
it 'delegates to vote object' do
- expect(Voting::Vote).to receive(:create).with author: author, resource: comment, scopeable: nil, value: 1
+ expect(Voting::Vote).to receive(:create).with author: author, resource: resource, scopeable: nil, value: 1
- author.vote comment, 1
+ author.vote resource, 1
end
end
context 'with scopeable' do
let!(:category) { build :category }
it 'delegates to vote object' do
- expect(Voting::Vote).to receive(:create).with author: author, resource: comment, scopeable: category, value: 1
+ expect(Voting::Vote).to receive(:create).with author: author, resource: resource, scopeable: category, value: 1
- author.vote comment, 1, scope: category
+ author.vote resource, 1, scope: category
end
+ end
+
+ it 'creates the vote with string value' do
+ author.vote resource, '1'
+
+ vote = Voting::Vote.last
+
+ expect(vote.author).to eq author
+ expect(vote.negative).to eq 0
+ expect(vote.positive).to eq 1
+ expect(vote.resource).to eq resource
+
+ author.vote resource, '-1'
+
+ vote.reload
+
+ expect(vote.author).to eq author
+ expect(vote.negative).to eq 1
+ expect(vote.positive).to eq 0
+ expect(vote.resource).to eq resource
end
end