Sha256: 421c608939aa1f2e6772727659ce747e8e4a7577b43f05d49165752342552e9c

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

require 'spec_helper'

describe G5Updatable::IntegrationSetting do
  describe 'validations' do
    subject(:integration_setting) { G5Updatable::IntegrationSetting.new }
    it { expect(integration_setting).to validate_presence_of(:location_uid) }
    it { expect(integration_setting).to validate_presence_of(:uid) }
  end

  it_behaves_like 'a model with first-class properties' do
    let(:instance_factory_name) { :integration_setting }
  end

  it_behaves_like 'a model that uses its URN as its parameter' do
    let(:instance_factory_name) { :client }
  end

  describe "#location" do
    let(:integration_setting) { create(:integration_setting, location_uid: location.uid) }
    let(:location) { create(:location) }
    subject { integration_setting.location }

    it { should eq(location) }
  end

  describe :by_vendor_action do
    let!(:inventory) { create(:integration_setting, vendor_action: G5Updatable::IntegrationSetting::INVENTORY) }
    let!(:lead) { create(:integration_setting, vendor_action: G5Updatable::IntegrationSetting::LEAD) }

    it { expect(G5Updatable::IntegrationSetting.by_lead).to eq([lead]) }
    it { expect(G5Updatable::IntegrationSetting.by_inventory).to eq([inventory]) }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
g5_updatable-0.3.1 spec/models/g5_updatable/integration_setting_spec.rb