Skip to content

Commit

Permalink
fix: add support for the users API on the fake provider
Browse files Browse the repository at this point in the history
  • Loading branch information
jstrachan committed Feb 18, 2020
1 parent cc0bf0c commit 46fa7bf
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 1 deletion.
2 changes: 2 additions & 0 deletions scm/driver/fake/data.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ type Data struct {
PullRequestsCreated map[int]*scm.PullRequestInput
PullRequestID int
CreateRepositories []*scm.RepositoryInput
CurrentUser scm.User
Users []*scm.User

//All Labels That Exist In The Repo
RepoLabelsExisting []string
Expand Down
5 changes: 4 additions & 1 deletion scm/driver/fake/fake.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ import (
// scm operations have been performed
func NewDefault() (*scm.Client, *Data) {
data := NewData()
data.CurrentUser.Login = "dummy"
data.CurrentUser.Name = "dummy"

client := &wrapper{new(scm.Client)}
client.BaseURL = &url.URL{
Host: "fake.com",
Expand All @@ -25,11 +28,11 @@ func NewDefault() (*scm.Client, *Data) {
client.PullRequests = &pullService{client: client, data: data}
client.Repositories = &repositoryService{client: client, data: data}
client.Reviews = &reviewService{client: client, data: data}
client.Users = &userService{client: client, data: data}

// TODO
/*
client.Contents = &contentService{client}
client.Users = &userService{client}
client.Webhooks = &webhookService{client}
*/
return client.Client, data
Expand Down
29 changes: 29 additions & 0 deletions scm/driver/fake/user.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package fake

import (
"context"

"github.com/jenkins-x/go-scm/scm"
)

type userService struct {
client *wrapper
data *Data
}

func (u *userService) Find(ctx context.Context) (*scm.User, *scm.Response, error) {
return &u.data.CurrentUser, nil, nil
}

func (u *userService) FindEmail(ctx context.Context) (string, *scm.Response, error) {
return u.data.CurrentUser.Email, nil, nil
}

func (u *userService) FindLogin(ctx context.Context, login string) (*scm.User, *scm.Response, error) {
for _, user := range u.data.Users {
if user.Login == login {
return user, nil, nil
}
}
return nil, nil, nil
}

0 comments on commit 46fa7bf

Please sign in to comment.