37 lines
1 KiB
Ruby
37 lines
1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe API::Entities::Nuget::Metadatum do
|
|
let(:metadatum) do
|
|
{
|
|
project_url: 'http://sandbox.com/project',
|
|
license_url: 'http://sandbox.com/license',
|
|
icon_url: 'http://sandbox.com/icon'
|
|
}
|
|
end
|
|
|
|
let(:expected) do
|
|
{
|
|
'projectUrl': 'http://sandbox.com/project',
|
|
'licenseUrl': 'http://sandbox.com/license',
|
|
'iconUrl': 'http://sandbox.com/icon'
|
|
}
|
|
end
|
|
|
|
let(:entity) { described_class.new(metadatum) }
|
|
|
|
subject { entity.as_json }
|
|
|
|
it { is_expected.to eq(expected) }
|
|
|
|
%i[project_url license_url icon_url].each do |optional_field|
|
|
context "metadatum without #{optional_field}" do
|
|
let(:metadatum_without_a_field) { metadatum.except(optional_field) }
|
|
let(:expected_without_a_field) { expected.except(optional_field.to_s.camelize(:lower).to_sym) }
|
|
let(:entity) { described_class.new(metadatum_without_a_field) }
|
|
|
|
it { is_expected.to eq(expected_without_a_field) }
|
|
end
|
|
end
|
|
end
|