| package issuetracker |
| |
| import ( |
| "context" |
| "testing" |
| |
| "cloud.google.com/go/storage" |
| "github.com/stretchr/testify/require" |
| "google.golang.org/api/option" |
| |
| "go.skia.org/infra/bugs-central/go/bugs" |
| "go.skia.org/infra/go/httputils" |
| "go.skia.org/infra/go/testutils/unittest" |
| ) |
| |
| const ( |
| gcsTestBucket = "skia-infra-testdata" |
| testResultsFileName = "issuetracker-results.json" |
| ) |
| |
| func TestIssueTrackerSearch(t *testing.T) { |
| unittest.LargeTest(t) |
| ctx := context.Background() |
| |
| // The test bucket is a public bucket, so we don't need to worry about authentication. |
| unauthedClient := httputils.DefaultClientConfig().Client() |
| |
| storageClient, err := storage.NewClient(ctx, option.WithHTTPClient(unauthedClient)) |
| require.NoError(t, err) |
| issueTrackerBucket = gcsTestBucket |
| resultsFileName = testResultsFileName |
| |
| it, err := New(storageClient, bugs.InitOpenIssues(), &IssueTrackerQueryConfig{ |
| Query: "componentid:1346 status:open", |
| Client: "Android", |
| }) |
| require.NoError(t, err) |
| issues, countsData, err := it.Search(ctx) |
| require.NoError(t, err) |
| require.Equal(t, 24, len(issues)) |
| require.Equal(t, 0, countsData.P0Count) |
| require.Equal(t, 0, countsData.P1Count) |
| require.Equal(t, 11, countsData.P2Count) |
| require.Equal(t, 4, countsData.P3Count) |
| require.Equal(t, 9, countsData.P4Count) |
| |
| // Use a query that does not match. Should throw an error. |
| it, err = New(storageClient, bugs.InitOpenIssues(), &IssueTrackerQueryConfig{ |
| Query: "does not match", |
| Client: "Android", |
| }) |
| require.NoError(t, err) |
| _, _, err = it.Search(ctx) |
| require.Error(t, err) |
| } |