summaryrefslogtreecommitdiff
path: root/spec/unit/cli
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-03-11 17:50:55 -0600
committermo khan <mo.khan@gmail.com>2020-03-11 17:50:55 -0600
commit131d42efc439d7a47ccf980f29c00d9dc504d34d (patch)
treed040ae64c81b470d8b66b7b5ff5502bfdd308298 /spec/unit/cli
parent15e2145af2f2b226a04b776a1e14fd3e9b9bc6af (diff)
Add directory scanning
Diffstat (limited to 'spec/unit/cli')
-rw-r--r--spec/unit/cli/scan_spec.rb31
1 files changed, 27 insertions, 4 deletions
diff --git a/spec/unit/cli/scan_spec.rb b/spec/unit/cli/scan_spec.rb
index 8d3cd4d..7e2991c 100644
--- a/spec/unit/cli/scan_spec.rb
+++ b/spec/unit/cli/scan_spec.rb
@@ -4,7 +4,7 @@ RSpec.describe Spandx::Cli::Commands::Scan do
subject { described_class.new(lockfile, options) }
let(:output) { StringIO.new }
- let(:lockfile) { nil }
+ let(:lockfile) { '.' }
let(:options) { {} }
before do
@@ -12,10 +12,33 @@ RSpec.describe Spandx::Cli::Commands::Scan do
.to_return(status: 200, body: IO.read(fixture_file('spdx/json/licenses.json')))
end
- it 'executes `scan` command successfully' do
- subject.execute(output: output)
+ context 'when scanning a directory' do
+ let(:lockfile) { '.' }
+ let(:result) { JSON.parse(output.string) }
+
+ before do
+ VCR.use_cassette('scan-directory') do
+ subject.execute(output: output)
+ end
+ end
+
+ specify { expect(result['packages'].count).to be(47) }
+ specify { expect(result).to include('version' => '1.0') }
+ specify { expect(result['packages']).to include('name' => 'net-hippie', 'version' => '0.3.2', 'licenses' => ['MIT']) }
+ end
+
+ context 'when recursively scanning a directory' do
+ let(:lockfile) { fixture_file('.') }
+ let(:result) { JSON.parse(output.string) }
+ let(:options) { { 'recursive' => true } }
+
+ before do
+ VCR.use_cassette('scan-directory-recursively') do
+ subject.execute(output: output)
+ end
+ end
- expect(output.string).to eq("OK\n")
+ specify { expect(result['packages'].count).to be(26) }
end
context 'when scanning Gemfile.lock' do