Organize backend into product executable and shared Go modules
This commit is contained in:
1 parent
981e84a4b4
commit
f0720ec66b
382 files changed
+1944
-6989
No files matched your search
@@ -0,0 +1,53 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
sessionmodel "git.sendico.io/tech/sxchnge/product/sessions/model"
|
||||
"testing"
|
||||
|
||||
"git.sendico.io/tech/sxchnge/product/sessions/store"
|
||||
)
|
||||
|
||||
type resolveClientDB struct {
|
||||
refreshtokens.DB
|
||||
calls int
|
||||
client *sessionmodel.Client
|
||||
err error
|
||||
}
|
||||
|
||||
func (db *resolveClientDB) GetClient(ctx context.Context, clientID string) (*sessionmodel.Client, error) {
|
||||
db.calls++
|
||||
return db.client, db.err
|
||||
}
|
||||
|
||||
func TestResolveRejectsBlankClientIDWithoutStorageLookup(t *testing.T) {
|
||||
db := &resolveClientDB{}
|
||||
|
||||
client, err := Resolve(context.Background(), db, " ")
|
||||
if !errors.Is(err, ErrUnknownClientID) {
|
||||
t.Fatalf("expected unknown client id, got %v", err)
|
||||
}
|
||||
if client != nil {
|
||||
t.Fatalf("expected nil client, got %#v", client)
|
||||
}
|
||||
if db.calls != 0 {
|
||||
t.Fatalf("expected no storage lookup for blank client id, got %d", db.calls)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveTrimsClientID(t *testing.T) {
|
||||
want := &sessionmodel.Client{ClientID: "client-1"}
|
||||
db := &resolveClientDB{client: want}
|
||||
|
||||
client, err := Resolve(context.Background(), db, " client-1 ")
|
||||
if err != nil {
|
||||
t.Fatalf("expected client resolution to succeed, got %v", err)
|
||||
}
|
||||
if client != want {
|
||||
t.Fatalf("expected resolved client %#v, got %#v", want, client)
|
||||
}
|
||||
if db.calls != 1 {
|
||||
t.Fatalf("expected one storage lookup, got %d", db.calls)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user