Sha256: 9ec828dc1ab3c8ea006f4cdb381119cdb3123ad37e4db4dd7e9bf4a4232da74b

Contents?: true

Size: 1.53 KB

Versions: 32

Compression:

Stored size: 1.53 KB

Contents

RSpec.describe Mdm::HostTag, type: :model do
  it_should_behave_like 'Metasploit::Concern.run'

  context 'associations' do
    it { is_expected.to belong_to(:host).class_name('Mdm::Host') }
    it { is_expected.to belong_to(:tag).class_name('Mdm::Tag') }
  end

  context 'database' do
    context 'columns' do
      it { is_expected.to have_db_column(:host_id).of_type(:integer) }
      it { is_expected.to have_db_column(:tag_id).of_type(:integer) }
    end
  end

  context 'factories' do
    context 'mdm_host_tag' do
      subject(:mdm_host_tag) do
        FactoryBot.build(:mdm_host_tag)
      end

      it { is_expected.to be_valid }
    end
  end

  context '#destroy' do
    let(:tag) do
      FactoryBot.create(
          :mdm_tag
      )
    end

    let!(:host_tag) do
      FactoryBot.create(
          :mdm_host_tag,
          :tag => tag
      )
    end

    it 'should delete 1 Mdm::HostTag' do
      expect {
        host_tag.destroy
      }.to change(Mdm::HostTag, :count).by(-1)
    end

    context 'with multiple Mdm::HostTags using same Mdm::Tag' do
      let!(:other_host_tag) do
        FactoryBot.create(
            :mdm_host_tag,
            :tag => tag
        )
      end

      it 'should not delete Mdm::Tag' do
        expect {
          host_tag.destroy
        }.to_not change(Mdm::Tag, :count)
      end
    end

    context 'with only one Mdm::HostTag using Mdm::Tag' do
      it 'should delete Mdm::Tag' do
        expect {
          host_tag.destroy
        }.to change(Mdm::Tag, :count).by(-1)
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 2 rubygems

Version Path
wg-metasploit_data_models-4.1.4.02 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-6.0.5 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-6.0.4 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-6.0.3 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-6.0.2 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-6.0.1 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-6.0.0 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-5.0.6 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-5.0.5 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-5.0.4 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-5.0.3 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-5.0.2 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-5.0.1 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-5.0.0 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-4.1.4 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-4.1.3 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-4.1.2 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-4.1.1 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-4.1.0 spec/app/models/mdm/host_tag_spec.rb
metasploit_data_models-4.0.2 spec/app/models/mdm/host_tag_spec.rb