gogcli/internal/googleapi/tasks_test.go
2025-12-31 19:47:32 +01:00

55 lines
1.4 KiB
Go

package googleapi
import (
"context"
"testing"
"github.com/steipete/gogcli/internal/config"
"github.com/steipete/gogcli/internal/secrets"
)
type tasksStubStore struct {
tok secrets.Token
err error
}
func (s *tasksStubStore) Keys() ([]string, error) { return nil, nil }
func (s *tasksStubStore) SetToken(string, secrets.Token) error { return nil }
func (s *tasksStubStore) DeleteToken(string) error { return nil }
func (s *tasksStubStore) ListTokens() ([]secrets.Token, error) { return nil, nil }
func (s *tasksStubStore) GetDefaultAccount() (string, error) { return "", nil }
func (s *tasksStubStore) SetDefaultAccount(string) error { return nil }
func (s *tasksStubStore) GetToken(string) (secrets.Token, error) {
if s.err != nil {
return secrets.Token{}, s.err
}
return s.tok, nil
}
func TestNewTasks(t *testing.T) {
origRead := readClientCredentials
origOpen := openSecretsStore
t.Cleanup(func() {
readClientCredentials = origRead
openSecretsStore = origOpen
})
readClientCredentials = func() (config.ClientCredentials, error) {
return config.ClientCredentials{ClientID: "id", ClientSecret: "secret"}, nil
}
openSecretsStore = func() (secrets.Store, error) {
return &tasksStubStore{tok: secrets.Token{RefreshToken: "rt"}}, nil
}
svc, err := NewTasks(context.Background(), "a@b.com")
if err != nil {
t.Fatalf("NewTasks: %v", err)
}
if svc == nil {
t.Fatalf("expected service")
}
}