package miniauth import ( "testing" "git.keks.cloud/kekskurse/miniauth/pkg/userstore" "github.com/stretchr/testify/assert" ) func TestInvalideUsernames(t *testing.T) { tts := []struct { name string username string exptErr error }{ { name: "not-to-short", username: "abc", exptErr: ErrUserHasInvalideChars, }, { name: "not-to-long", username: "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", exptErr: ErrUserHasInvalideChars, }, { name: "special charakters", username: "abcöfg", exptErr: ErrUserHasInvalideChars, }, { name: "with a dot", username: "kekskurse.16", exptErr: ErrUserHasInvalideChars, }, { name: "username-ok", username: "kekskurse", exptErr: nil, }, { name: "username already taken", username: "testuser", exptErr: ErrUsernameIsTaken, }, } ma := getMiniAuth(t) _, err := ma.store.UserWrite("testuser", "testpassword") assert.Nil(t, err, "[setup] should be abel to write user without error") for _, tt := range tts { t.Run(tt.name, func(t *testing.T) { err := ma.checkUsernameForRegistration(tt.username) assert.Equal(t, tt.exptErr, err) }) } } func getMiniAuth(t *testing.T) Miniauth { us, err := userstore.NewDummyStore() assert.Nil(t, err, "[setup] should be abel to creat dummy store") m := NewMiniauth(us) return m }