summaryrefslogtreecommitdiff
path: root/spec/unit/ruby
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-04-12 11:45:35 -0600
committermo khan <mo.khan@gmail.com>2020-04-12 11:45:35 -0600
commit1aa23fba5c3f2633121ac49334797e1fe481da3c (patch)
tree68fb242f2215e9e297c69ee5ba8c4cc2d5433cf9 /spec/unit/ruby
parent0d980c013912a85e3313f564b1a5f865dfed5a60 (diff)
Extract license plugin for rubygems
Diffstat (limited to 'spec/unit/ruby')
-rw-r--r--spec/unit/ruby/license_plugin_spec.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/unit/ruby/license_plugin_spec.rb b/spec/unit/ruby/license_plugin_spec.rb
new file mode 100644
index 0000000..6c6df20
--- /dev/null
+++ b/spec/unit/ruby/license_plugin_spec.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+RSpec.describe Spandx::Ruby::LicensePlugin do
+ subject { described_class.new }
+
+ describe '#enhance' do
+ context 'when the dependency is not managed by the `rubygems` package manager' do
+ let(:dependency) { ::Spandx::Core::Dependency.new(package_manager: :rubygems, name: 'spandx', version: '0.1.0') }
+
+ specify { expect(subject.enhance(dependency)).to eql(dependency) }
+ end
+
+ [
+ { package_manager: :rubygems, name: 'spandx', version: '0.1.0', expected: ['MIT'] },
+ ].each do |item|
+ context "#{item[:package_manager]}-#{item[:name]}-#{item[:version]}" do
+ let(:dependency) { ::Spandx::Core::Dependency.new(package_manager: item[:package_manager], name: item[:name], version: item[:version]) }
+
+ let(:results) do
+ VCR.use_cassette("#{item[:package_manager]}-#{item[:name]}-#{item[:version]}") do
+ subject.enhance(dependency).licenses
+ end
+ end
+
+ specify { expect(results.map(&:id)).to match_array(item[:expected]) }
+ end
+ end
+ end
+end