package prproject import ( "context" "testing" "edge-infra.dev/pkg/lib/logging" "github.com/google/go-github/v47/github" "edge-infra.dev/pkg/f8n/devinfra/jack/plugin" ) var c = &plugin.MockGithubClient{ GithubIssues: &plugin.MockIssueService{}, GithubProjects: &plugin.MockProjectsService{}, GithubOrganizations: &plugin.MockOrganizationsService{}, } var cv4 = &plugin.MockGithubV4Client{} var projectIDs = &plugin.ProjectPlugin{ IDs: []int64{1}, } var orp = &plugin.OrgRepoPlugins{ Project: *projectIDs, } var hp = &plugin.HandlerParams{ Ctx: context.Background(), Client: c, ClientV4: cv4, Org: "some-org", Repo: "some-repo", Log: *logging.NewLogger(), Params: *orp, } func TestPrClosed(_ *testing.T) { projectIDs.IDs = []int64{150} orp = &plugin.OrgRepoPlugins{ Project: *projectIDs, } hp.Params = *orp c.GithubOrganizations = &plugin.MockOrganizationsService{ Login: hp.Org, Name: hp.Org, URL: hp.Org, Projects: []int{2}, } merged := false sha := "" pe := &github.PullRequestEvent{ Action: github.String("closed"), Repo: &github.Repository{ Owner: &github.User{Login: github.String(hp.Org)}, Organization: &github.Organization{ Login: github.String(hp.Org), Name: github.String(hp.Org), URL: github.String(hp.Org), }, }, PullRequest: &github.PullRequest{ Merged: &merged, MergeCommitSHA: &sha, }, } handlePR(*hp, *pe) } func TestGetFieldVersion(t *testing.T) { field := ProjectV2SingleSelectField{ ID: 123, Options: []fieldOption{ fieldOption{ ID: "1", Name: "0.19", }, fieldOption{ ID: "2", Name: "0.20", }, }, } if id, err := getMatchingVersionOption(field, "0.20.15"); id != "2" || err != nil { t.Error("Failed to get version for 0.20") } if id, err := getMatchingVersionOption(field, "0.19.15"); id != "1" || err != nil { t.Error("Failed to get version for 0.19") } if id, err := getMatchingVersionOption(field, "0.21"); id != "" || err != errReleaseNotFound { t.Error("Getting version 0.21 did not fail") } }