Sha256: 0749b09b16aa0d14e6fc958578da7985e9a8b328d837996dd1cad47df7bd7f58

Contents?: true

Size: 1017 Bytes

Versions: 4

Compression:

Stored size: 1017 Bytes

Contents

# frozen_string_literal: true

require "assert"
require "much-rails/records/not_destroyable"

module MuchRails::Records::NotDestroyable
  class UnitTests < Assert::Context
    desc "MuchRails::Records::NotDestroyable"
    subject{ unit_class }

    let(:unit_class){ MuchRails::Records::NotDestroyable }

    should "include MuchRails::Mixin" do
      assert_that(subject).includes(MuchRails::Mixin)
    end
  end

  class ReceiverTests < UnitTests
    desc "receiver"
    subject{ receiver_class.new }

    let(:receiver_class) do
      Class.new do
        include MuchRails::Records::NotDestroyable
      end
    end

    should "disable destroying a record" do
      assert_that(subject.destruction_error_messages)
        .equals(["#{subject.class.name} records can't be deleted."])

      assert_that(subject.destroy).is_false

      assert_that(->{ subject.destroy! })
        .raises(MuchRails::Records::ValidateDestroy::DestructionInvalid)

      assert_that(subject.destroyable?).is_false
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
much-rails-0.1.3 test/unit/records/not_destroyable_tests.rb
much-rails-0.1.2 test/unit/records/not_destroyable_tests.rb
much-rails-0.1.1 test/unit/records/not_destroyable_tests.rb
much-rails-0.1.0 test/unit/records/not_destroyable_tests.rb