Drop subtests from addOneOfEachMFADevice helper (#30002)

This commit is contained in:
Alan Parra 2023-08-04 10:48:42 -03:00 committed by GitHub
parent f79906ba2e
commit 20c8b5cb0c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -471,7 +471,7 @@ func (d *mfaDevices) webAuthHandler(t *testing.T, challenge *proto.MFAAuthentica
func addOneOfEachMFADevice(t *testing.T, cl *Client, clock clockwork.Clock, origin string) mfaDevices {
const totpName = "totp-dev"
const webName = "webauthn-dev"
devs := mfaDevices{
mfaDevs := mfaDevices{
clock: clock,
webOrigin: origin,
TOTPName: totpName,
@ -479,13 +479,13 @@ func addOneOfEachMFADevice(t *testing.T, cl *Client, clock clockwork.Clock, orig
}
var err error
devs.WebKey, err = mocku2f.Create()
mfaDevs.WebKey, err = mocku2f.Create()
require.NoError(t, err)
devs.WebKey.PreferRPID = true
mfaDevs.WebKey.PreferRPID = true
// Add MFA devices of all kinds.
ctx := context.Background()
for _, test := range []struct {
devs := []struct {
name string
opts mfaAddTestOpts
}{
@ -505,8 +505,8 @@ func addOneOfEachMFADevice(t *testing.T, cl *Client, clock clockwork.Clock, orig
require.NotEmpty(t, challenge.GetTOTP())
require.Equal(t, challenge.GetTOTP().Algorithm, otp.AlgorithmSHA1.String())
devs.TOTPSecret = challenge.GetTOTP().Secret
code, err := totp.GenerateCodeCustom(devs.TOTPSecret, clock.Now(), totp.ValidateOpts{
mfaDevs.TOTPSecret = challenge.GetTOTP().Secret
code, err := totp.GenerateCodeCustom(mfaDevs.TOTPSecret, clock.Now(), totp.ValidateOpts{
Period: uint(challenge.GetTOTP().PeriodSeconds),
Digits: otp.Digits(challenge.GetTOTP().Digits),
Algorithm: otp.AlgorithmSHA1,
@ -523,7 +523,7 @@ func addOneOfEachMFADevice(t *testing.T, cl *Client, clock clockwork.Clock, orig
},
checkRegisterErr: require.NoError,
assertRegisteredDev: func(t *testing.T, got *types.MFADevice) {
want, err := services.NewTOTPDevice(totpName, devs.TOTPSecret, clock.Now())
want, err := services.NewTOTPDevice(totpName, mfaDevs.TOTPSecret, clock.Now())
want.Id = got.Id
require.NoError(t, err)
require.Empty(t, cmp.Diff(want, got))
@ -537,12 +537,12 @@ func addOneOfEachMFADevice(t *testing.T, cl *Client, clock clockwork.Clock, orig
DeviceName: webName,
DeviceType: proto.DeviceType_DEVICE_TYPE_WEBAUTHN,
},
authHandler: devs.totpAuthHandler,
authHandler: mfaDevs.totpAuthHandler,
checkAuthErr: require.NoError,
registerHandler: func(t *testing.T, challenge *proto.MFARegisterChallenge) *proto.MFARegisterResponse {
require.NotNil(t, challenge.GetWebauthn())
ccr, err := devs.WebKey.SignCredentialCreation(origin, wanlib.CredentialCreationFromProto(challenge.GetWebauthn()))
ccr, err := mfaDevs.WebKey.SignCredentialCreation(origin, wanlib.CredentialCreationFromProto(challenge.GetWebauthn()))
require.NoError(t, err)
return &proto.MFARegisterResponse{
Response: &proto.MFARegisterResponse_Webauthn{
@ -554,16 +554,17 @@ func addOneOfEachMFADevice(t *testing.T, cl *Client, clock clockwork.Clock, orig
assertRegisteredDev: func(t *testing.T, got *types.MFADevice) {
// MFADevice device asserted in its entirety by lib/auth/webauthn
// tests, a simple check suffices here.
require.Equal(t, devs.WebKey.KeyHandle, got.GetWebauthn().CredentialId)
require.Equal(t, mfaDevs.WebKey.KeyHandle, got.GetWebauthn().CredentialId)
},
},
},
} {
t.Run(test.name, func(t *testing.T) {
testAddMFADevice(ctx, t, cl, test.opts)
})
}
return devs
for _, dev := range devs {
testAddMFADevice(ctx, t, cl, dev.opts)
}
return mfaDevs
}
type mfaAddTestOpts struct {