From 92569ffde81a3fe768fd8773fdab5d1a927f3f88 Mon Sep 17 00:00:00 2001 From: ThibG Date: Fri, 26 Jul 2019 18:55:33 +0200 Subject: Fix invites not being disabled upon account suspension (#11412) * Disable invite links from disabled/suspended users * Add has_many invites relationship to users * Destroy unused invites when suspending an account --- spec/models/invite_spec.rb | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'spec/models') diff --git a/spec/models/invite_spec.rb b/spec/models/invite_spec.rb index 0ba1dccb3..30abfb86b 100644 --- a/spec/models/invite_spec.rb +++ b/spec/models/invite_spec.rb @@ -3,27 +3,33 @@ require 'rails_helper' RSpec.describe Invite, type: :model do describe '#valid_for_use?' do it 'returns true when there are no limitations' do - invite = Invite.new(max_uses: nil, expires_at: nil) + invite = Fabricate(:invite, max_uses: nil, expires_at: nil) expect(invite.valid_for_use?).to be true end it 'returns true when not expired' do - invite = Invite.new(max_uses: nil, expires_at: 1.hour.from_now) + invite = Fabricate(:invite, max_uses: nil, expires_at: 1.hour.from_now) expect(invite.valid_for_use?).to be true end it 'returns false when expired' do - invite = Invite.new(max_uses: nil, expires_at: 1.hour.ago) + invite = Fabricate(:invite, max_uses: nil, expires_at: 1.hour.ago) expect(invite.valid_for_use?).to be false end it 'returns true when uses still available' do - invite = Invite.new(max_uses: 250, uses: 249, expires_at: nil) + invite = Fabricate(:invite, max_uses: 250, uses: 249, expires_at: nil) expect(invite.valid_for_use?).to be true end it 'returns false when maximum uses reached' do - invite = Invite.new(max_uses: 250, uses: 250, expires_at: nil) + invite = Fabricate(:invite, max_uses: 250, uses: 250, expires_at: nil) + expect(invite.valid_for_use?).to be false + end + + it 'returns false when invite creator has been disabled' do + invite = Fabricate(:invite, max_uses: nil, expires_at: nil) + SuspendAccountService.new.call(invite.user.account) expect(invite.valid_for_use?).to be false end end -- cgit From d6ada2eb30a2e73b71d8ef037d3764ff006fb745 Mon Sep 17 00:00:00 2001 From: ysksn Date: Sat, 27 Jul 2019 17:24:26 +0900 Subject: Implement pending tests (#11415) --- spec/lib/spam_check_spec.rb | 28 +++++++++++++++++++++++++++- spec/models/poll_vote_spec.rb | 10 +++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) (limited to 'spec/models') diff --git a/spec/lib/spam_check_spec.rb b/spec/lib/spam_check_spec.rb index c722dc642..9e0989216 100644 --- a/spec/lib/spam_check_spec.rb +++ b/spec/lib/spam_check_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe SpamCheck do @@ -133,7 +135,31 @@ RSpec.describe SpamCheck do end describe '#remember!' do - pending + let(:status) { status_with_html('@alice') } + let(:spam_check) { described_class.new(status) } + let(:redis_key) { spam_check.send(:redis_key) } + + it 'remembers' do + expect do + spam_check.remember! + end.to change { Redis.current.exists(redis_key) }.from(false).to(true) + end + end + + describe '#reset!' do + let(:status) { status_with_html('@alice') } + let(:spam_check) { described_class.new(status) } + let(:redis_key) { spam_check.send(:redis_key) } + + before do + spam_check.remember! + end + + it 'resets' do + expect do + spam_check.reset! + end.to change { Redis.current.exists(redis_key) }.from(true).to(false) + end end describe '#flag!' do diff --git a/spec/models/poll_vote_spec.rb b/spec/models/poll_vote_spec.rb index 354afd535..563f34699 100644 --- a/spec/models/poll_vote_spec.rb +++ b/spec/models/poll_vote_spec.rb @@ -1,5 +1,13 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe PollVote, type: :model do - pending "add some examples to (or delete) #{__FILE__}" + describe '#object_type' do + let(:poll_vote) { Fabricate.build(:poll_vote) } + + it 'returns :vote' do + expect(poll_vote.object_type).to eq :vote + end + end end -- cgit