Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/netbox_client_ruby/api/dcim/site.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class Site
path 'dcim/sites/:id/'
creation_path 'dcim/sites/'
object_fields(
tenant: proc { |raw_region| Tenancy::Tenant.new raw_region['id'] },
region: proc { |raw_region| DCIM::Region.new raw_region['id'] },
status: proc do |raw_status|
STATUS_VALUES.key(raw_status['value']) || raw_status['value']
Expand Down
21 changes: 19 additions & 2 deletions spec/fixtures/dcim/site_1.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,25 @@
"id": 1,
"name": "test",
"slug": "test",
"region": null,
"tenant": null,
"region": {
"id": 1,
"name": "region1",
"slug": "region1",
"parent": null
},
"tenant": {
"id": 1,
"name": "tenant1",
"slug": "tenant1",
"group": null,
"description": "",
"comments": "",
"custom_fields": {}
},
"status": {
"value": 1,
"label": "Active"
},
"facility": "",
"asn": null,
"physical_address": "",
Expand Down
44 changes: 31 additions & 13 deletions spec/netbox_client_ruby/api/dcim/site_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
require 'spec_helper'

RSpec.describe NetboxClientRuby::DCIM::Site, faraday_stub: true do
let(:site_id) { 1 }
let(:response) { File.read("spec/fixtures/dcim/site_#{site_id}.json") }
let(:request_url) { "/api/dcim/sites/#{site_id}/" }
let(:entity_id) { 1 }
let(:response) { File.read("spec/fixtures/dcim/site_#{entity_id}.json") }
let(:request_url) { "/api/dcim/sites/#{entity_id}/" }

subject { NetboxClientRuby::DCIM::Site.new site_id }
subject { described_class.new entity_id }

describe '#id' do
it 'shall be the expected id' do
expect(subject.id).to eq(site_id)
expect(subject.id).to eq(entity_id)
end
end

Expand All @@ -37,6 +37,24 @@
end
end

{
region: NetboxClientRuby::DCIM::Region,
tenant: NetboxClientRuby::Tenancy::Tenant,
status: Symbol
}.each_pair do |method_name, expected_type|
describe ".#{method_name}" do
it 'should fetch the data' do
expect(faraday).to receive(:get).and_call_original

expect(subject.public_send(method_name)).to_not be_nil
end

it 'shall return the expected type' do
expect(subject.public_send(method_name)).to be_a(expected_type)
end
end
end

describe '.delete' do
let(:request_method) { :delete }
let(:response_status) { 204 }
Expand Down Expand Up @@ -76,10 +94,10 @@
let(:request_method) { :patch }

subject do
site = NetboxClientRuby::DCIM::Site.new site_id
site.name = name
site.slug = slug
site
entity = described_class.new entity_id
entity.name = name
entity.slug = slug
entity
end

it 'does not call PATCH until save is called' do
Expand Down Expand Up @@ -110,10 +128,10 @@
let(:request_url) { '/api/dcim/sites/' }

subject do
site = NetboxClientRuby::DCIM::Site.new
site.name = name
site.slug = slug
site
entity = described_class.new
entity.name = name
entity.slug = slug
entity
end

it 'does not POST until save is called' do
Expand Down