change background by let since model tests do not know about background
This commit is contained in:
@@ -1,88 +1,80 @@
|
|||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe Debate do
|
describe Debate do
|
||||||
|
let(:debate) { build(:debate) }
|
||||||
background do
|
|
||||||
@debate = build(:debate)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should be valid" do
|
it "should be valid" do
|
||||||
expect(@debate).to be_valid
|
expect(debate).to be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should not be valid without an author" do
|
it "should not be valid without an author" do
|
||||||
@debate.author = nil
|
debate.author = nil
|
||||||
expect(@debate).to_not be_valid
|
expect(debate).to_not be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should not be valid without a title" do
|
it "should not be valid without a title" do
|
||||||
@debate.title = nil
|
debate.title = nil
|
||||||
expect(@debate).to_not be_valid
|
expect(debate).to_not be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#description" do
|
describe "#description" do
|
||||||
it "should be mandatory" do
|
it "should be mandatory" do
|
||||||
@debate.description = nil
|
debate.description = nil
|
||||||
expect(@debate).to_not be_valid
|
expect(debate).to_not be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should be sanitized" do
|
it "should be sanitized" do
|
||||||
@debate.description = "<script>alert('danger');</script>"
|
debate.description = "<script>alert('danger');</script>"
|
||||||
@debate.valid?
|
debate.valid?
|
||||||
expect(@debate.description).to eq("alert('danger');")
|
expect(debate.description).to eq("alert('danger');")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should be html_safe" do
|
it "should be html_safe" do
|
||||||
@debate.description = "<script>alert('danger');</script>"
|
debate.description = "<script>alert('danger');</script>"
|
||||||
expect(@debate.description).to be_html_safe
|
expect(debate.description).to be_html_safe
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should sanitize the tag list" do
|
it "should sanitize the tag list" do
|
||||||
@debate.tag_list = "user_id=1"
|
debate.tag_list = "user_id=1"
|
||||||
@debate.valid?
|
debate.valid?
|
||||||
expect(@debate.tag_list).to eq(['user_id1'])
|
expect(debate.tag_list).to eq(['user_id1'])
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should not be valid without accepting terms of service" do
|
it "should not be valid without accepting terms of service" do
|
||||||
@debate.terms_of_service = nil
|
debate.terms_of_service = nil
|
||||||
expect(@debate).to_not be_valid
|
expect(debate).to_not be_valid
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#editable?" do
|
describe "#editable?" do
|
||||||
background do
|
let(:debate) { create(:debate) }
|
||||||
@debate = create(:debate)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should be true if debate has no votes yet" do
|
it "should be true if debate has no votes yet" do
|
||||||
expect(@debate.total_votes).to eq(0)
|
expect(debate.total_votes).to eq(0)
|
||||||
expect(@debate.editable?).to be true
|
expect(debate.editable?).to be true
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should be false if debate has votes" do
|
it "should be false if debate has votes" do
|
||||||
create(:vote, votable: @debate)
|
create(:vote, votable: debate)
|
||||||
expect(@debate.total_votes).to eq(1)
|
expect(debate.total_votes).to eq(1)
|
||||||
expect(@debate.editable?).to be false
|
expect(debate.editable?).to be false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#editable_by?" do
|
describe "#editable_by?" do
|
||||||
background do
|
let(:debate) { create(:debate) }
|
||||||
@debate = create(:debate)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should be true if user is the author and debate is editable" do
|
it "should be true if user is the author and debate is editable" do
|
||||||
expect(@debate.editable_by?(@debate.author)).to be true
|
expect(debate.editable_by?(debate.author)).to be true
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should be false if debate is not editable" do
|
it "should be false if debate is not editable" do
|
||||||
create(:vote, votable: @debate)
|
create(:vote, votable: debate)
|
||||||
expect(@debate.editable_by?(@debate.author)).to be false
|
expect(debate.editable_by?(debate.author)).to be false
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should be false if user is not the author" do
|
it "should be false if user is not the author" do
|
||||||
expect(@debate.editable_by?(create(:user))).to be false
|
expect(debate.editable_by?(create(:user))).to be false
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -3,24 +3,22 @@ require 'rails_helper'
|
|||||||
describe User do
|
describe User do
|
||||||
|
|
||||||
describe "#votes_on_debates" do
|
describe "#votes_on_debates" do
|
||||||
background do
|
let(:user) { create(:user) }
|
||||||
@user = create(:user)
|
|
||||||
end
|
|
||||||
|
|
||||||
it "returns {} if no debate" do
|
it "returns {} if no debate" do
|
||||||
expect(@user.votes_on_debates()).to eq({})
|
expect(user.votes_on_debates()).to eq({})
|
||||||
expect(@user.votes_on_debates([])).to eq({})
|
expect(user.votes_on_debates([])).to eq({})
|
||||||
expect(@user.votes_on_debates([nil, nil])).to eq({})
|
expect(user.votes_on_debates([nil, nil])).to eq({})
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns a hash of debates ids and votes" do
|
it "returns a hash of debates ids and votes" do
|
||||||
debate1 = create(:debate)
|
debate1 = create(:debate)
|
||||||
debate2 = create(:debate)
|
debate2 = create(:debate)
|
||||||
debate3 = create(:debate)
|
debate3 = create(:debate)
|
||||||
create(:vote, voter: @user, votable: debate1, vote_flag: true)
|
create(:vote, voter: user, votable: debate1, vote_flag: true)
|
||||||
create(:vote, voter: @user, votable: debate3, vote_flag: false)
|
create(:vote, voter: user, votable: debate3, vote_flag: false)
|
||||||
|
|
||||||
voted = @user.votes_on_debates([debate1.id, debate2.id, debate3.id])
|
voted = user.votes_on_debates([debate1.id, debate2.id, debate3.id])
|
||||||
|
|
||||||
expect(voted[debate1.id]).to eq(true)
|
expect(voted[debate1.id]).to eq(true)
|
||||||
expect(voted[debate2.id]).to eq(nil)
|
expect(voted[debate2.id]).to eq(nil)
|
||||||
|
|||||||
Reference in New Issue
Block a user