FEATURE: Warn a user when they have few likes remaining

This commit is contained in:
Robin Ward
2016-03-18 11:17:51 -04:00
parent 1fba835d4f
commit 5d4ee2ca1d
9 changed files with 75 additions and 17 deletions

View File

@ -39,6 +39,16 @@ describe RateLimiter do
end
end
context "remaining" do
it "updates correctly" do
expect(rate_limiter.remaining).to eq(2)
rate_limiter.performed!
expect(rate_limiter.remaining).to eq(1)
rate_limiter.performed!
expect(rate_limiter.remaining).to eq(0)
end
end
context "multiple calls" do
before do
rate_limiter.performed!
@ -47,6 +57,7 @@ describe RateLimiter do
it "returns false for can_perform when the limit has been hit" do
expect(rate_limiter.can_perform?).to eq(false)
expect(rate_limiter.remaining).to eq(0)
end
it "raises an error the third time called" do
@ -54,10 +65,10 @@ describe RateLimiter do
end
context "as an admin/moderator" do
it "returns true for can_perform if the user is an admin" do
user.admin = true
expect(rate_limiter.can_perform?).to eq(true)
expect(rate_limiter.remaining).to eq(2)
end
it "doesn't raise an error when an admin performs the task" do
@ -74,8 +85,6 @@ describe RateLimiter do
user.moderator = true
expect { rate_limiter.performed! }.not_to raise_error
end
end
context "rollback!" do
@ -90,7 +99,6 @@ describe RateLimiter do
it "raises no error now that there is room" do
expect { rate_limiter.performed! }.not_to raise_error
end
end
end