Unfortunately this feature wasn't properly reviewed and tested, and it
had many bugs, some of them critical and hard to fix, like validations
being skipped in concurrent requests.
So we're removing it before releasing version 1.1. We might add it back
in the future if we manage to solve the critical issues.
This commit reverts commit 836f9ba7.
102 lines
4.1 KiB
Ruby
102 lines
4.1 KiB
Ruby
require "rails_helper"
|
|
require "cancan/matchers"
|
|
|
|
describe Abilities::Administrator do
|
|
subject(:ability) { Ability.new(user) }
|
|
|
|
let(:user) { administrator.user }
|
|
let(:administrator) { create(:administrator) }
|
|
let(:poll) { create(:poll, :current, stats_enabled: false, results_enabled: false) }
|
|
|
|
let(:other_user) { create(:user) }
|
|
let(:hidden_user) { create(:user, :hidden) }
|
|
|
|
let(:debate) { create(:debate) }
|
|
let(:comment) { create(:comment) }
|
|
let(:proposal) { create(:proposal, author: user) }
|
|
let(:budget_investment) { create(:budget_investment) }
|
|
let(:legislation_question) { create(:legislation_question) }
|
|
let(:poll_question) { create(:poll_question) }
|
|
|
|
let(:proposal_document) { build(:document, documentable: proposal, user: proposal.author) }
|
|
let(:budget_investment_document) { build(:document, documentable: budget_investment) }
|
|
let(:poll_question_document) { build(:document, documentable: poll_question) }
|
|
|
|
let(:proposal_image) { build(:image, imageable: proposal, user: proposal.author) }
|
|
let(:budget_investment_image) { build(:image, imageable: budget_investment) }
|
|
|
|
let(:hidden_debate) { create(:debate, :hidden) }
|
|
let(:hidden_comment) { create(:comment, :hidden) }
|
|
let(:hidden_proposal) { create(:proposal, :hidden) }
|
|
|
|
let(:dashboard_administrator_task) { create(:dashboard_administrator_task) }
|
|
|
|
it { should be_able_to(:index, Debate) }
|
|
it { should be_able_to(:show, debate) }
|
|
it { should be_able_to(:vote, debate) }
|
|
|
|
it { should be_able_to(:index, Proposal) }
|
|
it { should be_able_to(:show, proposal) }
|
|
|
|
it { should_not be_able_to(:restore, comment) }
|
|
it { should_not be_able_to(:restore, debate) }
|
|
it { should_not be_able_to(:restore, proposal) }
|
|
it { should_not be_able_to(:restore, other_user) }
|
|
|
|
it { should be_able_to(:restore, hidden_comment) }
|
|
it { should be_able_to(:restore, hidden_debate) }
|
|
it { should be_able_to(:restore, hidden_proposal) }
|
|
it { should be_able_to(:restore, hidden_user) }
|
|
|
|
it { should_not be_able_to(:confirm_hide, comment) }
|
|
it { should_not be_able_to(:confirm_hide, debate) }
|
|
it { should_not be_able_to(:confirm_hide, proposal) }
|
|
it { should_not be_able_to(:confirm_hide, other_user) }
|
|
|
|
it { should be_able_to(:confirm_hide, hidden_comment) }
|
|
it { should be_able_to(:confirm_hide, hidden_debate) }
|
|
it { should be_able_to(:confirm_hide, hidden_proposal) }
|
|
it { should be_able_to(:confirm_hide, hidden_user) }
|
|
|
|
it { should be_able_to(:comment_as_administrator, debate) }
|
|
it { should_not be_able_to(:comment_as_moderator, debate) }
|
|
|
|
it { should be_able_to(:comment_as_administrator, proposal) }
|
|
it { should_not be_able_to(:comment_as_moderator, proposal) }
|
|
|
|
it { should be_able_to(:comment_as_administrator, legislation_question) }
|
|
it { should_not be_able_to(:comment_as_moderator, legislation_question) }
|
|
|
|
it { should be_able_to(:create, Budget) }
|
|
it { should be_able_to(:update, Budget) }
|
|
it { should be_able_to(:read_results, Budget) }
|
|
|
|
it { should be_able_to(:create, Budget::ValuatorAssignment) }
|
|
|
|
it { should be_able_to(:admin_update, Budget::Investment) }
|
|
it { should be_able_to(:hide, Budget::Investment) }
|
|
|
|
it { should be_able_to(:valuate, create(:budget_investment, budget: create(:budget, :valuating))) }
|
|
it { should be_able_to(:valuate, create(:budget_investment, budget: create(:budget, :finished))) }
|
|
|
|
it { should be_able_to(:destroy, proposal_image) }
|
|
it { should be_able_to(:destroy, proposal_document) }
|
|
it { should_not be_able_to(:destroy, budget_investment_image) }
|
|
it { should_not be_able_to(:destroy, budget_investment_document) }
|
|
it { should be_able_to(:manage, Dashboard::Action) }
|
|
|
|
it { should be_able_to(:stats, poll) }
|
|
it { should be_able_to(:results, poll) }
|
|
|
|
it { should be_able_to(:read, Poll::Question) }
|
|
it { should be_able_to(:create, Poll::Question) }
|
|
it { should be_able_to(:update, Poll::Question) }
|
|
|
|
it { is_expected.to be_able_to :manage, Dashboard::AdministratorTask }
|
|
it { is_expected.to be_able_to :manage, dashboard_administrator_task }
|
|
|
|
it { should be_able_to(:manage, LocalCensusRecord) }
|
|
it { should be_able_to(:create, LocalCensusRecords::Import) }
|
|
it { should be_able_to(:show, LocalCensusRecords::Import) }
|
|
end
|