diff options
Diffstat (limited to 'spec/integration/go/modules_spec.rb')
| -rw-r--r-- | spec/integration/go/modules_spec.rb | 60 |
1 files changed, 47 insertions, 13 deletions
diff --git a/spec/integration/go/modules_spec.rb b/spec/integration/go/modules_spec.rb index 66dadb0..3be04af 100644 --- a/spec/integration/go/modules_spec.rb +++ b/spec/integration/go/modules_spec.rb @@ -1,6 +1,12 @@ require 'spec_helper' RSpec.describe "modules" do + before do + # Delete go module cache + system('rm -fr ~/.local/pkg') + system('rm -fr /opt/asdf/installs/golang/**/packages/pkg/') + end + include_examples "each report version", "go", "modules" ['1.11', '1.12', '1.13', '1.14'].each do |version| @@ -14,15 +20,15 @@ RSpec.describe "modules" do runner.add_file('.tool-versions', "golang #{version}") end - specify { expect(subject).to match_schema } - specify { expect(subject[:licenses]).not_to be_empty } - specify do + expect(subject).to match_schema + expect(subject[:licenses]).not_to be_empty expect(subject.dependency_names).to match_array([ + "cloud.google.com/go", "github.com/davecgh/go-spew", "github.com/dimfeld/httptreemux/v5", - "github.com/golang/protobuf", "github.com/go-logfmt/logfmt", + "github.com/golang/protobuf", "github.com/google/uuid", "github.com/pmezard/go-difflib", "github.com/stretchr/objx", @@ -30,17 +36,17 @@ RSpec.describe "modules" do "golang.org/x/net", "golang.org/x/oauth2", "golang.org/x/sync", + "golang.org/x/text", "google.golang.org/appengine", "gopkg.in/check.v1", "gopkg.in/yaml.v2" ]) + expect(subject.licenses_for('github.com/dimfeld/httptreemux/v5')).to match_array(['MIT']) + expect(subject.licenses_for('github.com/go-logfmt/logfmt')).to match_array(['MIT']) + expect(subject.licenses_for('github.com/google/uuid')).to match_array(['BSD-3-Clause']) + expect(subject.licenses_for('github.com/stretchr/testify')).to match_array(['MIT']) + expect(subject.licenses_for('golang.org/x/oauth2')).to match_array(['BSD-3-Clause']) end - - specify { expect(subject.licenses_for('github.com/dimfeld/httptreemux/v5')).to match_array(['MIT']) } - specify { expect(subject.licenses_for('github.com/go-logfmt/logfmt')).to match_array(['MIT']) } - specify { expect(subject.licenses_for('github.com/google/uuid')).to match_array(['BSD-3-Clause']) } - specify { expect(subject.licenses_for('github.com/stretchr/testify')).to match_array(['MIT']) } - specify { expect(subject.licenses_for('golang.org/x/oauth2')).to match_array(['BSD-3-Clause']) } end end @@ -51,8 +57,36 @@ RSpec.describe "modules" do runner.clone('https://gitlab.com/gitlab-org/gitaly.git') end - specify { expect(subject).to match_schema } - specify { expect(subject[:licenses]).not_to be_empty } - specify { expect(subject[:dependencies]).not_to be_empty } + specify do + expect(subject).to match_schema + expect(subject[:licenses]).not_to be_empty + expect(subject[:dependencies]).not_to be_empty + end + end + + context "when scanning a project with vendored modules" do + subject { runner.scan } + + before do + runner.mount(dir: fixture_file('go/1.14-vendored-modules')) + end + + specify do + expect(subject).to match_schema + expect(subject.dependency_names).to match_array([ + "github.com/davecgh/go-spew", + "github.com/konsorten/go-windows-terminal-sequences", + "github.com/pmezard/go-difflib", + "github.com/sirupsen/logrus", + "github.com/stretchr/testify", + "golang.org/x/sys" + ]) + expect(subject.licenses_for("github.com/davecgh/go-spew")).to match_array(['unknown']) + expect(subject.licenses_for("github.com/konsorten/go-windows-terminal-sequences")).to match_array(['MIT']) + expect(subject.licenses_for("github.com/pmezard/go-difflib")).to match_array(['unknown']) + expect(subject.licenses_for("github.com/sirupsen/logrus")).to match_array(['MIT']) + expect(subject.licenses_for("github.com/stretchr/testify")).to match_array(['unknown']) + expect(subject.licenses_for("golang.org/x/sys")).to match_array(['BSD-3-Clause']) + end end end |
