Skip to content

Commit

Permalink
add test.
Browse files Browse the repository at this point in the history
Signed-off-by: Spencer Schrock <[email protected]>
  • Loading branch information
spencerschrock committed Aug 28, 2023
1 parent 814d80a commit a1f21f9
Showing 1 changed file with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions clients/githubrepo/tarball_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,24 @@
package githubrepo

import (
"bytes"
"context"
"errors"
"fmt"
"io"
"log"
"net/http"
"net/http/httptest"
"os"
"strings"
"sync"
"testing"

"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/google/go-github/v53/github"

"github.com/ossf/scorecard/v4/clients"
)

type listfileTest struct {
Expand Down Expand Up @@ -175,3 +183,59 @@ func TestExtractTarball(t *testing.T) {
})
}
}

// temporarily redirect default logger output somewhere else.
func setLogOutput(t *testing.T, w io.Writer) {
t.Helper()
old := log.Writer()
log.SetOutput(w)
t.Cleanup(func() { log.SetOutput(old) })
}

//nolint:paralleltest // modifying log output
func Test_setup_empty_repo(t *testing.T) {
tests := []struct {
name string
repo string
wantLog bool
}{
{
name: "org .github has no log message",
repo: ".github",
wantLog: false,
},
{
name: "non .github repo has log message",
repo: "foo",
wantLog: true,
},
}
// server always responds with bad request to trigger errTarballNotFound
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusBadRequest)
}))
t.Cleanup(ts.Close)
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
h := tarballHandler{
httpClient: http.DefaultClient,
}
archiveURL := ts.URL + "/{archive_format}"
r := github.Repository{
Name: &tt.repo,
ArchiveURL: &archiveURL,
}
var buf bytes.Buffer
setLogOutput(t, &buf)
h.init(context.Background(), &r, clients.HeadSHA)
err := h.setup()
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if (tt.wantLog) != (buf.Len() > 0) {
t.Errorf("wanted log: %t, log: %q", tt.wantLog, buf.String())
}
})
}
}

0 comments on commit a1f21f9

Please sign in to comment.