Skip to content

Commit aae1fec

Browse files
committed
Increases coverage for BomComponent class
Signed-off-by: M. Scott Ford <[email protected]>
1 parent 1fae41b commit aae1fec

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

spec/bom_component_spec.rb

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
require 'spec_helper'
2+
require 'bom_component'
3+
4+
RSpec.shared_examples "a valid hash_val result for gem" do
5+
it { expect(result.count).to eq(1) }
6+
it { expect(result[0][:type]).to eq('library') }
7+
it { expect(result[0][:name]).to eq(gem.name) }
8+
it { expect(result[0][:version]).to eq(gem.version) }
9+
it { expect(result[0][:description]).to eq(gem.description) }
10+
it { expect(result[0][:purl]).to eq(gem.purl) }
11+
it { expect(result[0][:hashes].count).to eq(1) }
12+
it { expect(result[0][:hashes][0][:alg]).to eq('SHA-256') }
13+
it { expect(result[0][:hashes][0][:content]).to eq(gem.hash) }
14+
end
15+
16+
RSpec.describe BomComponent do
17+
context '#hash_val' do
18+
let(:base_gem) do
19+
OpenStruct.new(
20+
name: 'Sample',
21+
version: '1.0.0',
22+
description: 'Sample description',
23+
hash: '1f809ab336c437d894df9934a9fc9ffd2ea09b535dfa4e3f75db078531c260c8',
24+
purl: 'pkg:gem/[email protected]'
25+
)
26+
end
27+
28+
let(:gem) do
29+
base_gem
30+
end
31+
32+
subject(:result) { BomComponent.new(gem).hash_val }
33+
34+
context 'with a gem without a license' do
35+
include_examples 'a valid hash_val result for gem'
36+
end
37+
38+
context 'with a gem that has a license_id' do
39+
let(:gem) do
40+
base_gem.tap do |value|
41+
value.license_id = 'License ID'
42+
end
43+
end
44+
45+
include_examples 'a valid hash_val result for gem'
46+
47+
it { expect(result[0][:licenses].count).to eq(1) }
48+
it { expect(result[0][:licenses][0][:license][:id]).to eq(gem.license_id) }
49+
end
50+
51+
context 'with a gem that has a license_name' do
52+
let(:gem) do
53+
base_gem.tap do |value|
54+
value.license_name = 'License Name'
55+
end
56+
end
57+
58+
include_examples 'a valid hash_val result for gem'
59+
60+
it { expect(result[0][:licenses].count).to eq(1) }
61+
it { expect(result[0][:licenses][0][:license][:name]).to eq(gem.license_name) }
62+
end
63+
end
64+
end

0 commit comments

Comments
 (0)