Skip to content

Commit 0cbd524

Browse files
committed
Increase test coverage
1 parent 5ee39ea commit 0cbd524

File tree

5 files changed

+161
-0
lines changed

5 files changed

+161
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# frozen_string_literal: true
2+
3+
require 'rails_helper'
4+
5+
RSpec.describe BetterTogether::PersonBlockPolicy do # rubocop:todo Metrics/BlockLength
6+
let(:user) { create(:better_together_user, :confirmed) }
7+
let(:agent) { user.person }
8+
let(:other) { create(:better_together_person) }
9+
10+
describe '#index?' do
11+
it 'allows signed-in users' do
12+
expect(described_class.new(user, BetterTogether::PersonBlock).index?).to be true
13+
end
14+
end
15+
16+
describe '#create?' do
17+
it 'permits when agent is blocker and blocked is not a platform manager' do
18+
record = BetterTogether::PersonBlock.new(blocker: agent, blocked: other)
19+
expect(described_class.new(user, record).create?).to be true
20+
end
21+
22+
it 'denies when blocked is a platform manager' do
23+
host_platform = create(:better_together_platform, :host, privacy: 'public')
24+
manager_user = create(:better_together_user, :confirmed)
25+
platform_manager_role = BetterTogether::Role.find_by(identifier: 'platform_manager')
26+
BetterTogether::PersonPlatformMembership.create!(
27+
joinable: host_platform,
28+
member: manager_user.person,
29+
role: platform_manager_role
30+
)
31+
32+
record = BetterTogether::PersonBlock.new(blocker: agent, blocked: manager_user.person)
33+
expect(described_class.new(user, record).create?).to be false
34+
end
35+
36+
it 'denies when reporter is not the blocker' do
37+
record = BetterTogether::PersonBlock.new(blocker: other, blocked: agent)
38+
expect(described_class.new(user, record).create?).to be false
39+
end
40+
end
41+
42+
describe '#destroy?' do
43+
it 'permits when agent is blocker' do
44+
record = BetterTogether::PersonBlock.new(blocker: agent, blocked: other)
45+
expect(described_class.new(user, record).destroy?).to be true
46+
end
47+
48+
it 'denies when agent is not blocker' do
49+
record = BetterTogether::PersonBlock.new(blocker: other, blocked: agent)
50+
expect(described_class.new(user, record).destroy?).to be false
51+
end
52+
end
53+
end
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# frozen_string_literal: true
2+
3+
require 'rails_helper'
4+
5+
RSpec.describe BetterTogether::ReportPolicy do
6+
let(:user) { create(:better_together_user, :confirmed) }
7+
let(:agent) { user.person }
8+
let(:other) { create(:better_together_person) }
9+
10+
it 'permits create when reporter is agent and reportable is different' do
11+
record = BetterTogether::Report.new(reporter: agent, reportable: other, reason: 'spam')
12+
expect(described_class.new(user, record).create?).to be true
13+
end
14+
15+
it 'denies create when reporter is not agent' do
16+
record = BetterTogether::Report.new(reporter: other, reportable: agent, reason: 'spam')
17+
expect(described_class.new(user, record).create?).to be false
18+
end
19+
20+
it 'denies create when reporter equals reportable' do
21+
record = BetterTogether::Report.new(reporter: agent, reportable: agent, reason: 'spam')
22+
expect(described_class.new(user, record).create?).to be false
23+
end
24+
end
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# frozen_string_literal: true
2+
3+
require 'rails_helper'
4+
5+
RSpec.describe 'BetterTogether::Geography::RegionsController', type: :request do
6+
let(:locale) { I18n.default_locale }
7+
8+
before do
9+
configure_host_platform
10+
login('[email protected]', 'password12345')
11+
end
12+
13+
describe 'GET /:locale/.../host/geography/regions' do
14+
it 'renders index' do
15+
get better_together.geography_regions_path(locale:)
16+
expect(response).to have_http_status(:ok)
17+
end
18+
end
19+
20+
describe 'GET /:locale/.../host/geography/regions/:id' do
21+
let!(:region) { create(:region) }
22+
23+
it 'renders show' do
24+
get better_together.geography_region_path(locale:, id: region.slug)
25+
expect(response).to have_http_status(:ok)
26+
end
27+
end
28+
end
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# frozen_string_literal: true
2+
3+
require 'rails_helper'
4+
5+
RSpec.describe 'BetterTogether::Geography::SettlementsController', type: :request do
6+
let(:locale) { I18n.default_locale }
7+
8+
before do
9+
configure_host_platform
10+
login('[email protected]', 'password12345')
11+
end
12+
13+
describe 'GET /:locale/.../host/geography/settlements' do
14+
it 'renders index' do
15+
get better_together.geography_settlements_path(locale:)
16+
expect(response).to have_http_status(:ok)
17+
end
18+
end
19+
20+
describe 'GET /:locale/.../host/geography/settlements/:id' do
21+
let!(:settlement) { create(:settlement) }
22+
23+
it 'renders show' do
24+
get better_together.geography_settlement_path(locale:, id: settlement.slug)
25+
expect(response).to have_http_status(:ok)
26+
end
27+
end
28+
end
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# frozen_string_literal: true
2+
3+
require 'rails_helper'
4+
5+
RSpec.describe 'BetterTogether::Geography::StatesController', type: :request do
6+
let(:locale) { I18n.default_locale }
7+
8+
before do
9+
configure_host_platform
10+
login('[email protected]', 'password12345')
11+
end
12+
13+
describe 'GET /:locale/.../host/geography/states' do
14+
it 'renders index' do
15+
get better_together.geography_states_path(locale:)
16+
expect(response).to have_http_status(:ok)
17+
end
18+
end
19+
20+
describe 'GET /:locale/.../host/geography/states/:id' do
21+
let!(:state) { create(:state) }
22+
23+
it 'renders show' do
24+
get better_together.geography_state_path(locale:, id: state.slug)
25+
expect(response).to have_http_status(:ok)
26+
end
27+
end
28+
end

0 commit comments

Comments
 (0)