diff --git a/e2e/pinned_dependencies_test.go b/e2e/pinned_dependencies_test.go index 9c2f554bb15..62c2352582b 100644 --- a/e2e/pinned_dependencies_test.go +++ b/e2e/pinned_dependencies_test.go @@ -15,7 +15,10 @@ package e2e import ( "context" + "io/ioutil" + "os" + "github.com/go-git/go-git/v5" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -23,6 +26,7 @@ import ( "github.com/ossf/scorecard/v4/checks" "github.com/ossf/scorecard/v4/clients" "github.com/ossf/scorecard/v4/clients/githubrepo" + "github.com/ossf/scorecard/v4/clients/localdir" scut "github.com/ossf/scorecard/v4/utests" ) @@ -80,5 +84,41 @@ var _ = Describe("E2E TEST:"+checks.CheckPinnedDependencies, func() { Expect(scut.ValidateTestReturn(nil, "dependencies check", &expected, &result, &dl)).Should(BeTrue()) Expect(repoClient.Close()).Should(BeNil()) }) + It("Should return dependencies check for a local repoClient", func() { + dl := scut.TestDetailLogger{} + + tmpDir, err := ioutil.TempDir("", "") + Expect(err).Should(BeNil()) + defer os.RemoveAll(tmpDir) + + _, e := git.PlainClone(tmpDir, false, &git.CloneOptions{ + URL: "http://github.com/ossf-tests/scorecard-check-pinned-dependencies-e2e", + }) + Expect(e).Should(BeNil()) + + repo, err := localdir.MakeLocalDirRepo(tmpDir) + Expect(err).Should(BeNil()) + + x := localdir.CreateLocalDirClient(context.Background(), logger) + err = x.InitRepo(repo, clients.HeadSHA) + Expect(err).Should(BeNil()) + + req := checker.CheckRequest{ + Ctx: context.Background(), + RepoClient: x, + Repo: repo, + Dlogger: &dl, + } + expected := scut.TestReturn{ + Error: nil, + Score: 3, + NumberOfWarn: 139, + NumberOfInfo: 2, + NumberOfDebug: 0, + } + result := checks.PinnedDependencies(&req) + Expect(scut.ValidateTestReturn(nil, "dependencies check", &expected, &result, &dl)).Should(BeTrue()) + Expect(x.Close()).Should(BeNil()) + }) }) })