require 'rails_helper' RSpec.describe UserPolicy do subject { described_class } let(:outro) { build(:operador) } permissions :index? do it 'libera para admin e gerente, nega operador/motorista' do expect(subject).to permit(build(:admin), User) expect(subject).to permit(build(:gerente), User) expect(subject).not_to permit(build(:operador), User) expect(subject).not_to permit(build(:motorista), User) end end permissions :new?, :create? do it 'só admin cria usuários' do expect(subject).to permit(build(:admin), User) expect(subject).not_to permit(build(:gerente), User) end end permissions :update? do it 'admin edita qualquer um; cada um edita a si mesmo' do eu = build(:operador) expect(subject).to permit(build(:admin), outro) expect(subject).to permit(eu, eu) expect(subject).not_to permit(build(:operador), outro) end end permissions :destroy? do it 'admin exclui outros, mas não a si mesmo' do admin = build(:admin) expect(subject).to permit(admin, outro) expect(subject).not_to permit(admin, admin) end end end