chore(user/v2): solve test TODO that depended on session tokens (#6973)

Closes #6022,

Co-authored-by: Livio Spring <livio.a@gmail.com>
This commit is contained in:
Tim Möhlmann 2023-12-05 17:28:17 +02:00 committed by GitHub
parent dd33538c0a
commit 51cfb9564a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 40 additions and 36 deletions

View File

@ -24,6 +24,10 @@ func TestServer_RegisterPasskey(t *testing.T) {
}) })
require.NoError(t, err) require.NoError(t, err)
// We also need a user session
Tester.RegisterUserPasskey(CTX, userID)
_, sessionToken, _, _ := Tester.CreateVerifiedWebAuthNSession(t, CTX, userID)
type args struct { type args struct {
ctx context.Context ctx context.Context
req *user.RegisterPasskeyRequest req *user.RegisterPasskeyRequest
@ -95,14 +99,12 @@ func TestServer_RegisterPasskey(t *testing.T) {
}, },
wantErr: true, wantErr: true,
}, },
/* TODO: after we are able to obtain a Bearer token for a human user
https://github.com/zitadel/zitadel/issues/6022
{ {
name: "human user", name: "user setting its own passkey",
args: args{ args: args{
ctx: CTX, ctx: Tester.WithAuthorizationToken(CTX, sessionToken),
req: &user.RegisterPasskeyRequest{ req: &user.RegisterPasskeyRequest{
UserId: humanUserID, UserId: userID,
}, },
}, },
want: &user.RegisterPasskeyResponse{ want: &user.RegisterPasskeyResponse{
@ -111,7 +113,6 @@ func TestServer_RegisterPasskey(t *testing.T) {
}, },
}, },
}, },
*/
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {

View File

@ -5,16 +5,22 @@ package user_test
import ( import (
"context" "context"
"testing" "testing"
"time"
"github.com/pquerna/otp/totp"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/zitadel/zitadel/internal/integration" "github.com/zitadel/zitadel/internal/integration"
object "github.com/zitadel/zitadel/pkg/grpc/object/v2beta"
user "github.com/zitadel/zitadel/pkg/grpc/user/v2beta" user "github.com/zitadel/zitadel/pkg/grpc/user/v2beta"
) )
func TestServer_RegisterTOTP(t *testing.T) { func TestServer_RegisterTOTP(t *testing.T) {
// userID := Tester.CreateHumanUser(CTX).GetUserId() userID := Tester.CreateHumanUser(CTX).GetUserId()
Tester.RegisterUserPasskey(CTX, userID)
_, sessionToken, _, _ := Tester.CreateVerifiedWebAuthNSession(t, CTX, userID)
ctx := Tester.WithAuthorizationToken(CTX, sessionToken)
type args struct { type args struct {
ctx context.Context ctx context.Context
@ -29,7 +35,7 @@ func TestServer_RegisterTOTP(t *testing.T) {
{ {
name: "missing user id", name: "missing user id",
args: args{ args: args{
ctx: CTX, ctx: ctx,
req: &user.RegisterTOTPRequest{}, req: &user.RegisterTOTPRequest{},
}, },
wantErr: true, wantErr: true,
@ -37,19 +43,17 @@ func TestServer_RegisterTOTP(t *testing.T) {
{ {
name: "user mismatch", name: "user mismatch",
args: args{ args: args{
ctx: CTX, ctx: ctx,
req: &user.RegisterTOTPRequest{ req: &user.RegisterTOTPRequest{
UserId: "wrong", UserId: "wrong",
}, },
}, },
wantErr: true, wantErr: true,
}, },
/* TODO: after we are able to obtain a Bearer token for a human user
https://github.com/zitadel/zitadel/issues/6022
{ {
name: "human user", name: "success",
args: args{ args: args{
ctx: CTX, ctx: ctx,
req: &user.RegisterTOTPRequest{ req: &user.RegisterTOTPRequest{
UserId: userID, UserId: userID,
}, },
@ -60,7 +64,6 @@ func TestServer_RegisterTOTP(t *testing.T) {
}, },
}, },
}, },
*/
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
@ -80,15 +83,16 @@ func TestServer_RegisterTOTP(t *testing.T) {
func TestServer_VerifyTOTPRegistration(t *testing.T) { func TestServer_VerifyTOTPRegistration(t *testing.T) {
userID := Tester.CreateHumanUser(CTX).GetUserId() userID := Tester.CreateHumanUser(CTX).GetUserId()
Tester.RegisterUserPasskey(CTX, userID)
_, sessionToken, _, _ := Tester.CreateVerifiedWebAuthNSession(t, CTX, userID)
ctx := Tester.WithAuthorizationToken(CTX, sessionToken)
/* TODO: after we are able to obtain a Bearer token for a human user reg, err := Client.RegisterTOTP(ctx, &user.RegisterTOTPRequest{
reg, err := Client.RegisterTOTP(CTX, &user.RegisterTOTPRequest{
UserId: userID, UserId: userID,
}) })
require.NoError(t, err) require.NoError(t, err)
code, err := totp.GenerateCode(reg.Secret, time.Now()) code, err := totp.GenerateCode(reg.Secret, time.Now())
require.NoError(t, err) require.NoError(t, err)
*/
type args struct { type args struct {
ctx context.Context ctx context.Context
@ -103,7 +107,7 @@ func TestServer_VerifyTOTPRegistration(t *testing.T) {
{ {
name: "user mismatch", name: "user mismatch",
args: args{ args: args{
ctx: CTX, ctx: ctx,
req: &user.VerifyTOTPRegistrationRequest{ req: &user.VerifyTOTPRegistrationRequest{
UserId: "wrong", UserId: "wrong",
}, },
@ -113,7 +117,7 @@ func TestServer_VerifyTOTPRegistration(t *testing.T) {
{ {
name: "wrong code", name: "wrong code",
args: args{ args: args{
ctx: CTX, ctx: ctx,
req: &user.VerifyTOTPRegistrationRequest{ req: &user.VerifyTOTPRegistrationRequest{
UserId: userID, UserId: userID,
Code: "123", Code: "123",
@ -121,12 +125,10 @@ func TestServer_VerifyTOTPRegistration(t *testing.T) {
}, },
wantErr: true, wantErr: true,
}, },
/* TODO: after we are able to obtain a Bearer token for a human user
https://github.com/zitadel/zitadel/issues/6022
{ {
name: "success", name: "success",
args: args{ args: args{
ctx: CTX, ctx: ctx,
req: &user.VerifyTOTPRegistrationRequest{ req: &user.VerifyTOTPRegistrationRequest{
UserId: userID, UserId: userID,
Code: code, Code: code,
@ -138,7 +140,6 @@ func TestServer_VerifyTOTPRegistration(t *testing.T) {
}, },
}, },
}, },
*/
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {

View File

@ -11,12 +11,17 @@ import (
"google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/structpb"
"github.com/zitadel/zitadel/internal/integration" "github.com/zitadel/zitadel/internal/integration"
object "github.com/zitadel/zitadel/pkg/grpc/object/v2beta"
user "github.com/zitadel/zitadel/pkg/grpc/user/v2beta" user "github.com/zitadel/zitadel/pkg/grpc/user/v2beta"
) )
func TestServer_RegisterU2F(t *testing.T) { func TestServer_RegisterU2F(t *testing.T) {
userID := Tester.CreateHumanUser(CTX).GetUserId() userID := Tester.CreateHumanUser(CTX).GetUserId()
// We also need a user session
Tester.RegisterUserPasskey(CTX, userID)
_, sessionToken, _, _ := Tester.CreateVerifiedWebAuthNSession(t, CTX, userID)
type args struct { type args struct {
ctx context.Context ctx context.Context
req *user.RegisterU2FRequest req *user.RegisterU2FRequest
@ -45,12 +50,10 @@ func TestServer_RegisterU2F(t *testing.T) {
}, },
wantErr: true, wantErr: true,
}, },
/* TODO: after we are able to obtain a Bearer token for a human user
https://github.com/zitadel/zitadel/issues/6022
{ {
name: "human user", name: "user setting its own passkey",
args: args{ args: args{
ctx: CTX, ctx: Tester.WithAuthorizationToken(CTX, sessionToken),
req: &user.RegisterU2FRequest{ req: &user.RegisterU2FRequest{
UserId: userID, UserId: userID,
}, },
@ -61,7 +64,6 @@ func TestServer_RegisterU2F(t *testing.T) {
}, },
}, },
}, },
*/
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
@ -85,8 +87,11 @@ func TestServer_RegisterU2F(t *testing.T) {
func TestServer_VerifyU2FRegistration(t *testing.T) { func TestServer_VerifyU2FRegistration(t *testing.T) {
userID := Tester.CreateHumanUser(CTX).GetUserId() userID := Tester.CreateHumanUser(CTX).GetUserId()
/* TODO after we are able to obtain a Bearer token for a human user Tester.RegisterUserPasskey(CTX, userID)
pkr, err := Client.RegisterU2F(CTX, &user.RegisterU2FRequest{ _, sessionToken, _, _ := Tester.CreateVerifiedWebAuthNSession(t, CTX, userID)
ctx := Tester.WithAuthorizationToken(CTX, sessionToken)
pkr, err := Client.RegisterU2F(ctx, &user.RegisterU2FRequest{
UserId: userID, UserId: userID,
}) })
require.NoError(t, err) require.NoError(t, err)
@ -94,7 +99,6 @@ func TestServer_VerifyU2FRegistration(t *testing.T) {
attestationResponse, err := Tester.WebAuthN.CreateAttestationResponse(pkr.GetPublicKeyCredentialCreationOptions()) attestationResponse, err := Tester.WebAuthN.CreateAttestationResponse(pkr.GetPublicKeyCredentialCreationOptions())
require.NoError(t, err) require.NoError(t, err)
*/
type args struct { type args struct {
ctx context.Context ctx context.Context
@ -109,7 +113,7 @@ func TestServer_VerifyU2FRegistration(t *testing.T) {
{ {
name: "missing user id", name: "missing user id",
args: args{ args: args{
ctx: CTX, ctx: ctx,
req: &user.VerifyU2FRegistrationRequest{ req: &user.VerifyU2FRegistrationRequest{
U2FId: "123", U2FId: "123",
TokenName: "nice name", TokenName: "nice name",
@ -117,11 +121,10 @@ func TestServer_VerifyU2FRegistration(t *testing.T) {
}, },
wantErr: true, wantErr: true,
}, },
/* TODO after we are able to obtain a Bearer token for a human user
{ {
name: "success", name: "success",
args: args{ args: args{
ctx: CTX, ctx: ctx,
req: &user.VerifyU2FRegistrationRequest{ req: &user.VerifyU2FRegistrationRequest{
UserId: userID, UserId: userID,
U2FId: pkr.GetU2FId(), U2FId: pkr.GetU2FId(),
@ -135,11 +138,10 @@ func TestServer_VerifyU2FRegistration(t *testing.T) {
}, },
}, },
}, },
*/
{ {
name: "wrong credential", name: "wrong credential",
args: args{ args: args{
ctx: CTX, ctx: ctx,
req: &user.VerifyU2FRegistrationRequest{ req: &user.VerifyU2FRegistrationRequest{
UserId: userID, UserId: userID,
U2FId: "123", U2FId: "123",