summaryrefslogtreecommitdiff
path: root/spec/lib/api/entities/nuget/dependency_group_spec.rb
blob: 5a649be846b7564afd5bec192126914d1628da93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe API::Entities::Nuget::DependencyGroup do
  let(:dependency_group) do
    {
      id: 'http://gitlab.com/Sandbox.App/1.0.0.json#dependencygroup',
      type: 'PackageDependencyGroup',
      target_framework: 'fwk test',
      dependencies: [
        {
          id: 'http://gitlab.com/Sandbox.App/1.0.0.json#dependency',
          type: 'PackageDependency',
          name: 'Dependency',
          range: '2.0.0'
        }
      ]
    }
  end

  let(:expected) do
    {
      '@id': 'http://gitlab.com/Sandbox.App/1.0.0.json#dependencygroup',
      '@type': 'PackageDependencyGroup',
      'targetFramework': 'fwk test',
      'dependencies': [
        {
          '@id': 'http://gitlab.com/Sandbox.App/1.0.0.json#dependency',
          '@type': 'PackageDependency',
          'id': 'Dependency',
          'range': '2.0.0'
        }
      ]
    }
  end
  let(:entity) { described_class.new(dependency_group) }

  subject { entity.as_json }

  it { is_expected.to eq(expected) }

  context 'dependency group without target framework' do
    let(:dependency_group_with_no_target_framework) { dependency_group.tap { |dg| dg[:target_framework] = nil } }
    let(:expected_no_target_framework) { expected.except(:targetFramework) }
    let(:entity) { described_class.new(dependency_group_with_no_target_framework) }

    it { is_expected.to eq(expected_no_target_framework) }
  end
end