Sha256: fcdea0aa37d39800c5de8175e0606e334708c02a26ef42063c40ed69e322195d
Contents?: true
Size: 1.92 KB
Versions: 1
Compression:
Stored size: 1.92 KB
Contents
require 'rails_helper' module Approvable describe ChangeRequest, :type => :model do before {@request = create(:change_request)} it 'creates a change request as pending' do expect(@request.state).to eq 'pending' end it 'wont create new request unless all others are approved' do approvable = @request.approvable expect{create(:change_request, approvable: approvable)}.to raise_error ActiveRecord::RecordInvalid @request.submit expect{create(:change_request, approvable: approvable)}.to raise_error ActiveRecord::RecordInvalid @request.reject expect{create(:change_request, approvable: approvable)}.to raise_error ActiveRecord::RecordInvalid @request.submit @request.approve expect{create(:change_request, approvable: approvable)}.not_to raise_error end it 'cannot update requested_changes once submitted' do @request.submit expect{ @request.update!(requested_changes: {title: 'a brand new title'}) }.to raise_error ActiveRecord::RecordInvalid end it 'cannot update requested_changes once approved' do @request.submit @request.approve expect{ @request.update!(requested_changes: {title: 'a brand new title'}) }.to raise_error ActiveRecord::RecordInvalid end it 'cannot transition out of approved' do @request.submit @request.approve expect{@request.reject!}.to raise_error StateMachine::InvalidTransition expect{@request.submit!}.to raise_error StateMachine::InvalidTransition expect{@request.unreject!}.to raise_error StateMachine::InvalidTransition end it 'rejected reverts to pending after changed_attributes change' do @request.submit @request.reject @request.update(requested_changes: {title: 'a brand new title'}) expect(@request.state).to eq 'pending' end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
approvable-0.0.1 | spec/models/approvable/change_request_spec.rb |