Module: Cuprum::Rails::RSpec::Contracts::Actions::DestroyContracts::ShouldBeADestroyActionContract
- Extended by:
- RSpec::SleepingKingStudios::Contract
- Defined in:
- lib/cuprum/rails/rspec/contracts/actions/destroy_contracts.rb
Overview
Contract asserting the action implements the destroy action interface.
Instance Method Summary collapse
-
#apply(example_group, existing_entity: , **options) { ... } ⇒ Object
Adds the contract to the example group.
Instance Method Details
#apply(example_group, existing_entity: , **options) { ... } ⇒ Object
Adds the contract to the example group.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/cuprum/rails/rspec/contracts/actions/destroy_contracts.rb', line 38 contract do |existing_entity:, **, &block| include Cuprum::Rails::RSpec::Contracts::ActionContracts include Cuprum::Rails::RSpec::Contracts::Actions::DestroyContracts # :nocov: if [:examples_on_success] && block raise ArgumentError, 'provide either :examples_on_success or a block' elsif block [:examples_on_success] = block end # :nocov: should_not_destroy_the_entity = lambda do it 'should not destroy the entity' do expect { call_action } .not_to change(configured_resource.entity_class, :count) end # :nocov: if [:examples_on_failure] instance_exec(&[:examples_on_failure]) end # :nocov: end include_contract 'should be a resource action' include_contract( 'should require primary key', params: [:params], &should_not_destroy_the_entity ) include_contract( 'should require existing entity', params: [:params], primary_key_value: [:primary_key_value], &should_not_destroy_the_entity ) include_contract( 'should destroy the entity', existing_entity: existing_entity, expected_value: [:expected_value_on_success], params: [:params], &[:examples_on_success] ) end |