-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #113 from TreinaDev/autorizacao-de-rotas
Protege rotas de seleção de condomínios
- Loading branch information
Showing
11 changed files
with
350 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
55 changes: 55 additions & 0 deletions
55
spec/requests/admins/user_manages_associated_condos_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
require 'rails_helper' | ||
|
||
describe 'Admin gerencia associações de condomínios' do | ||
context 'GET admins/:id/condos_selection' do | ||
it 'sucesso' do | ||
admin = create(:admin, email: 'admin@email.com', password: '123456', super_admin: true) | ||
condo = Condo.new(id: 1, name: 'Condo Test', city: 'City Test') | ||
allow(Condo).to receive(:all).and_return([condo]) | ||
|
||
login_as admin, scope: :admin | ||
get condos_selection_admin_path(admin) | ||
|
||
expect(response.body).to include('Condo Test') | ||
end | ||
|
||
it 'e falha por nao ter autorizacao' do | ||
admin = create(:admin, email: 'admin@email.com', password: '123456', super_admin: false) | ||
condo = Condo.new(id: 1, name: 'Condo Test', city: 'City Test') | ||
allow(Condo).to receive(:all).and_return([condo]) | ||
|
||
login_as admin, scope: :admin | ||
get condos_selection_admin_path(admin) | ||
|
||
expect(response).to redirect_to root_path | ||
expect(flash[:alert]).to eq I18n.t('errors.messages.must_be_super_admin') | ||
end | ||
end | ||
|
||
context 'POST admins/:id/condos_selection_post' do | ||
it 'sucesso' do | ||
admin1 = create(:admin, email: 'admin@email.com', password: '123456', super_admin: true) | ||
admin2 = create(:admin, email: 'bcdef@email.com', password: '654321', super_admin: false) | ||
|
||
login_as admin1, scope: :admin | ||
post condos_selection_post_admin_path(admin2), params: { condo_ids: [1, 2, 3] } | ||
|
||
expect(response).to redirect_to root_path | ||
expect(flash[:notice]).to eq I18n.t('errors.messages.condo_acess_updated') | ||
expect(admin2.associated_condos.first.condo_id).to eq 1 | ||
expect(admin2.associated_condos.second.condo_id).to eq 2 | ||
expect(admin2.associated_condos.last.condo_id).to eq 3 | ||
end | ||
|
||
it 'e falha por nao ter autorizacao' do | ||
admin2 = create(:admin, email: 'bcdef@email.com', password: '654321', super_admin: false) | ||
|
||
login_as admin2, scope: :admin | ||
post condos_selection_post_admin_path(admin2), params: { condo_ids: [1, 2, 3] } | ||
|
||
expect(response).to redirect_to root_path | ||
expect(flash[:alert]).to eq I18n.t('errors.messages.must_be_super_admin') | ||
expect(admin2.associated_condos.count).to eq 0 | ||
end | ||
end | ||
end |
56 changes: 56 additions & 0 deletions
56
spec/requests/common_area/admin_access_common_area_details_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
require 'rails_helper' | ||
|
||
describe 'Admin acessa detalhes de uma area comum' do | ||
it 'sucesso - pois esta associado ao condo' do | ||
admin = create(:admin, super_admin: false) | ||
condo = Condo.new(id: 1, name: 'Condo Test', city: 'City Test') | ||
common_area = CommonArea.new(id: 1, name: 'Academia', | ||
description: 'Uma academia raíz com ventilador apenas para os marombas', | ||
max_occupancy: 20, rules: 'Não pode ser frango') | ||
allow(Condo).to receive(:find).and_return(condo) | ||
allow(CommonArea).to receive(:find).and_return(common_area) | ||
AssociatedCondo.create!(admin:, condo_id: 1) | ||
|
||
login_as admin, scope: :admin | ||
get condo_common_area_path(condo.id, common_area.id) | ||
|
||
expect(response).to have_http_status :ok | ||
expect(response.body).to include 'Academia' | ||
expect(response.body).to include 'Uma academia raíz com ventilador apenas para os marombas' | ||
end | ||
|
||
it 'sucesso - super admin' do | ||
admin = create(:admin, super_admin: true) | ||
condo = Condo.new(id: 1, name: 'Condo Test', city: 'City Test') | ||
common_area = CommonArea.new(id: 1, name: 'Academia', | ||
description: 'Uma academia raíz com ventilador apenas para os marombas', | ||
max_occupancy: 20, rules: 'Não pode ser frango') | ||
allow(Condo).to receive(:find).and_return(condo) | ||
allow(CommonArea).to receive(:find).and_return(common_area) | ||
|
||
login_as admin, scope: :admin | ||
get condo_common_area_path(condo.id, common_area.id) | ||
|
||
expect(response).to have_http_status :ok | ||
expect(response.body).to include 'Academia' | ||
expect(response.body).to include 'Uma academia raíz com ventilador apenas para os marombas' | ||
end | ||
|
||
it 'falha por nao estar associado' do | ||
admin = create(:admin, super_admin: false) | ||
condo = Condo.new(id: 1, name: 'Condo Test', city: 'City Test') | ||
common_area = CommonArea.new(id: 1, name: 'Academia', | ||
description: 'Uma academia raíz com ventilador apenas para os marombas', | ||
max_occupancy: 20, rules: 'Não pode ser frango') | ||
allow(Condo).to receive(:find).and_return(condo) | ||
allow(CommonArea).to receive(:find).and_return(common_area) | ||
AssociatedCondo.create!(admin:, condo_id: 2) | ||
|
||
login_as admin, scope: :admin | ||
get condo_common_areas_path(condo.id, common_area.id) | ||
|
||
expect(response).to have_http_status :found | ||
expect(response).to redirect_to root_path | ||
expect(flash[:notice]).to eq I18n.t('errors.messages.must_be_super_admin') | ||
end | ||
end |
80 changes: 80 additions & 0 deletions
80
spec/requests/common_area/admin_access_common_area_list_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
require 'rails_helper' | ||
|
||
describe 'Admin acessa a listagem de areas comuns' do | ||
it 'sucesso - pois esta associado ao condo' do | ||
admin = create(:admin, super_admin: false) | ||
condo = Condo.new(id: 1, name: 'Condo Test', city: 'City Test') | ||
common_areas = [] | ||
common_areas << CommonArea.new(id: 1, name: 'Academia', | ||
description: 'Uma academia raíz com ventilador apenas para os marombas', | ||
max_occupancy: 20, rules: 'Não pode ser frango') | ||
common_areas << CommonArea.new(id: 2, name: 'Churrasqueira', | ||
description: 'Churrasqueira para os churrasqueiros de plantão', | ||
max_occupancy: 20, rules: 'Não pode comer frango') | ||
common_areas << CommonArea.new(id: 3, name: 'Sala de cinema', | ||
description: 'Cinema para os cinéfilos de plantão', | ||
max_occupancy: 20, rules: 'Não pode ver filme de frango') | ||
common_areas << CommonArea.new(id: 4, name: 'Cozinha compartilhada', | ||
description: 'Cozinha para os chefs de plantão', | ||
max_occupancy: 20, rules: 'Não pode cozinhar frango') | ||
common_areas << CommonArea.new(id: 5, name: 'Ping Pong', | ||
description: 'Mesa de ping pong para os ping pongueiros de plantão', | ||
max_occupancy: 20, rules: 'Não pode jogar ping pong de frango') | ||
allow(Condo).to receive(:find).and_return(condo) | ||
allow(CommonArea).to receive(:all).and_return(common_areas) | ||
AssociatedCondo.create!(admin:, condo_id: 1) | ||
|
||
login_as admin, scope: :admin | ||
get condo_common_areas_path(condo.id) | ||
|
||
expect(response).to have_http_status :ok | ||
expect(response.body).to include 'Ping Pong' | ||
expect(response.body).to include 'Mesa de ping pong para os ping pongueiros de plantão' | ||
end | ||
|
||
it 'sucesso - super admin' do | ||
admin = create(:admin, super_admin: true) | ||
condo = Condo.new(id: 1, name: 'Condo Test', city: 'City Test') | ||
common_areas = [] | ||
common_areas << CommonArea.new(id: 1, name: 'Academia', | ||
description: 'Uma academia raíz com ventilador apenas para os marombas', | ||
max_occupancy: 20, rules: 'Não pode ser frango') | ||
common_areas << CommonArea.new(id: 2, name: 'Churrasqueira', | ||
description: 'Churrasqueira para os churrasqueiros de plantão', | ||
max_occupancy: 20, rules: 'Não pode comer frango') | ||
common_areas << CommonArea.new(id: 3, name: 'Sala de cinema', | ||
description: 'Cinema para os cinéfilos de plantão', | ||
max_occupancy: 20, rules: 'Não pode ver filme de frango') | ||
common_areas << CommonArea.new(id: 4, name: 'Cozinha compartilhada', | ||
description: 'Cozinha para os chefs de plantão', | ||
max_occupancy: 20, rules: 'Não pode cozinhar frango') | ||
common_areas << CommonArea.new(id: 5, name: 'Ping Pong', | ||
description: 'Mesa de ping pong para os ping pongueiros de plantão', | ||
max_occupancy: 20, rules: 'Não pode jogar ping pong de frango') | ||
allow(Condo).to receive(:find).and_return(condo) | ||
allow(CommonArea).to receive(:all).and_return(common_areas) | ||
|
||
login_as admin, scope: :admin | ||
get condo_common_areas_path(condo.id) | ||
|
||
expect(response).to have_http_status :ok | ||
expect(response.body).to include 'Ping Pong' | ||
expect(response.body).to include 'Mesa de ping pong para os ping pongueiros de plantão' | ||
end | ||
|
||
it 'falha por nao estar associado' do | ||
admin = create(:admin, super_admin: false) | ||
condo = Condo.new(id: 1, name: 'Condo Test', city: 'City Test') | ||
common_areas = [] | ||
allow(Condo).to receive(:find).and_return(condo) | ||
allow(CommonArea).to receive(:all).and_return(common_areas) | ||
AssociatedCondo.create!(admin:, condo_id: 2) | ||
|
||
login_as admin, scope: :admin | ||
get condo_common_areas_path(condo.id) | ||
|
||
expect(response).to have_http_status :found | ||
expect(response).to redirect_to root_path | ||
expect(flash[:notice]).to eq I18n.t('errors.messages.must_be_super_admin') | ||
end | ||
end |
63 changes: 63 additions & 0 deletions
63
spec/requests/common_area_fee/admin_access_new_common_area_fee_spec.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
require 'rails_helper' | ||
|
||
describe 'Administrador acessa formulário de Taxa de área comum' do | ||
it 'sucesso - super admin' do | ||
admin = create(:admin, email: 'admin@email.com', password: '123456', super_admin: true) | ||
condo = Condo.new(id: 1, name: 'Condomínio Vila das Flores', city: 'São Paulo') | ||
allow(Condo).to receive(:find).and_return(condo) | ||
|
||
common_area = CommonArea.new(id: 1, name: 'Academia', | ||
description: 'Uma academia raíz com ventilador apenas para os marombas', | ||
max_occupancy: 20, rules: 'Não pode ser frango') | ||
allow(CommonArea).to receive(:find).and_return(common_area) | ||
|
||
login_as admin, scope: :admin | ||
get new_condo_common_area_common_area_fee_path(condo.id, common_area.id) | ||
|
||
expect(response).to have_http_status :ok | ||
expect(response.body).to include 'Áreas Comuns' | ||
expect(response.body).to include 'Academia' | ||
expect(response.body).to include 'Taxa' | ||
end | ||
|
||
it 'sucesso - admin coom acesso' do | ||
admin = create(:admin, email: 'admin@email.com', password: '123456', super_admin: false) | ||
condo = Condo.new(id: 1, name: 'Condomínio Vila das Flores', city: 'São Paulo') | ||
allow(Condo).to receive(:find).and_return(condo) | ||
|
||
common_area = CommonArea.new(id: 1, name: 'Academia', | ||
description: 'Uma academia raíz com ventilador apenas para os marombas', | ||
max_occupancy: 20, rules: 'Não pode ser frango') | ||
allow(CommonArea).to receive(:find).and_return(common_area) | ||
AssociatedCondo.create(admin:, condo_id: condo.id) | ||
|
||
login_as admin, scope: :admin | ||
get new_condo_common_area_common_area_fee_path(condo.id, common_area.id) | ||
|
||
expect(response).to have_http_status :ok | ||
expect(response.body).to include 'Áreas Comuns' | ||
expect(response.body).to include 'Academia' | ||
expect(response.body).to include 'Taxa' | ||
end | ||
|
||
it 'falha pois nao esta associad' do | ||
admin = create(:admin, email: 'admin@email.com', password: '123456', super_admin: false) | ||
condo = Condo.new(id: 1, name: 'Condomínio Vila das Flores', city: 'São Paulo') | ||
allow(Condo).to receive(:find).and_return(condo) | ||
|
||
common_area = CommonArea.new(id: 1, name: 'Academia', | ||
description: 'Uma academia raíz com ventilador apenas para os marombas', | ||
max_occupancy: 20, rules: 'Não pode ser frango') | ||
allow(CommonArea).to receive(:find).and_return(common_area) | ||
|
||
login_as admin, scope: :admin | ||
get new_condo_common_area_common_area_fee_path(condo.id, common_area.id) | ||
|
||
expect(response).to have_http_status :found | ||
expect(response).to redirect_to root_path | ||
expect(flash[:notice]).to eq I18n.t('errors.messages.must_be_super_admin') | ||
expect(response.body).not_to include 'Áreas Comuns' | ||
expect(response.body).not_to include 'Academia' | ||
expect(response.body).not_to include 'Taxa' | ||
end | ||
end |
Oops, something went wrong.