Skip to content

Commit d07c49e

Browse files
committed
fix: more tests
1 parent 84cca89 commit d07c49e

File tree

2 files changed

+97
-1
lines changed

2 files changed

+97
-1
lines changed

recipe/emailpassword/userIdMapping_create_test.go

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"testing"
55

66
"github.com/stretchr/testify/assert"
7+
"github.com/supertokens/supertokens-golang/recipe/usermetadata"
78
"github.com/supertokens/supertokens-golang/supertokens"
89
"github.com/supertokens/supertokens-golang/test/unittesting"
910
)
@@ -19,7 +20,10 @@ func initForUserIdMappingTest(t *testing.T) {
1920
AppName: "SuperTokens",
2021
WebsiteDomain: "supertokens.io",
2122
},
22-
RecipeList: []supertokens.Recipe{Init(nil)},
23+
RecipeList: []supertokens.Recipe{
24+
Init(nil),
25+
usermetadata.Init(nil),
26+
},
2327
}
2428

2529
err := supertokens.Init(config)
@@ -153,3 +157,48 @@ func TestCreateUserIdMappingWhenAlreadyExists(t *testing.T) {
153157
assert.False(t, createResp.UserIdMappingAlreadyExistsError.DoesSuperTokensUserIdExist)
154158
}
155159
}
160+
161+
func TestCreateUserIdMappingWithMetadataAndWithAndWithoutForce(t *testing.T) {
162+
BeforeEach()
163+
unittesting.StartUpST("localhost", "8080")
164+
defer AfterEach()
165+
166+
initForUserIdMappingTest(t)
167+
168+
querier, err := supertokens.GetNewQuerierInstanceOrThrowError("")
169+
assert.NoError(t, err)
170+
171+
cdiVersion, err := querier.GetQuerierAPIVersion()
172+
assert.NoError(t, err)
173+
174+
if unittesting.MaxVersion(cdiVersion, "2.14") != cdiVersion {
175+
return
176+
}
177+
178+
signUpResponse, err := SignUp("test@example.com", "testpass123")
179+
assert.NoError(t, err)
180+
181+
assert.NotNil(t, signUpResponse.OK)
182+
183+
userMetadata := map[string]interface{}{
184+
"role": "admin",
185+
}
186+
metadataResp, err := usermetadata.UpdateUserMetadata(signUpResponse.OK.User.ID, userMetadata)
187+
assert.NoError(t, err)
188+
assert.NotNil(t, metadataResp)
189+
{ // without force
190+
externalUserId := "externalId"
191+
externalUserIdInfo := "externalIdInfo"
192+
createResp, err := supertokens.CreateUserIdMapping(signUpResponse.OK.User.ID, externalUserId, &externalUserIdInfo, false)
193+
assert.Contains(t, err.Error(), "UserId is already in use in UserMetadata recipe")
194+
assert.Nil(t, createResp.OK)
195+
}
196+
197+
{ // without force
198+
externalUserId := "externalId"
199+
externalUserIdInfo := "externalIdInfo"
200+
createResp, err := supertokens.CreateUserIdMapping(signUpResponse.OK.User.ID, externalUserId, &externalUserIdInfo, true)
201+
assert.NoError(t, err)
202+
assert.NotNil(t, createResp.OK)
203+
}
204+
}

recipe/emailpassword/userIdMapping_delete_test.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"testing"
55

66
"github.com/stretchr/testify/assert"
7+
"github.com/supertokens/supertokens-golang/recipe/usermetadata"
78
"github.com/supertokens/supertokens-golang/supertokens"
89
"github.com/supertokens/supertokens-golang/test/unittesting"
910
)
@@ -177,3 +178,49 @@ func TestDeleteUserIdMappingOfAnyUsrId(t *testing.T) {
177178
assert.NotNil(t, getResp.UnknownMappingError)
178179
}
179180
}
181+
182+
func TestDeleteUserIdMappingWithMetadataAndWithAndWithoutForce(t *testing.T) {
183+
BeforeEach()
184+
unittesting.StartUpST("localhost", "8080")
185+
defer AfterEach()
186+
187+
initForUserIdMappingTest(t)
188+
189+
querier, err := supertokens.GetNewQuerierInstanceOrThrowError("")
190+
assert.NoError(t, err)
191+
192+
cdiVersion, err := querier.GetQuerierAPIVersion()
193+
assert.NoError(t, err)
194+
195+
if unittesting.MaxVersion(cdiVersion, "2.14") != cdiVersion {
196+
return
197+
}
198+
199+
signUpResponse, err := SignUp("test@example.com", "testpass123")
200+
assert.NoError(t, err)
201+
assert.NotNil(t, signUpResponse.OK)
202+
203+
externalUserId := "externalId"
204+
externalUserIdInfo := "externalIdInfo"
205+
createResp, err := supertokens.CreateUserIdMapping(signUpResponse.OK.User.ID, externalUserId, &externalUserIdInfo, false)
206+
assert.NoError(t, err)
207+
assert.NotNil(t, createResp.OK)
208+
209+
userMetadata := map[string]interface{}{
210+
"role": "admin",
211+
}
212+
metadataResp, err := usermetadata.UpdateUserMetadata(externalUserId, userMetadata)
213+
assert.NoError(t, err)
214+
assert.NotNil(t, metadataResp)
215+
{ // without force
216+
deleteResp, err := supertokens.DeleteUserIdMapping(signUpResponse.OK.User.ID, nil, false)
217+
assert.Contains(t, err.Error(), "UserId is already in use in UserMetadata recipe")
218+
assert.Nil(t, deleteResp.OK)
219+
}
220+
221+
{ // without force
222+
deleteResp, err := supertokens.DeleteUserIdMapping(signUpResponse.OK.User.ID, nil, true)
223+
assert.NoError(t, err)
224+
assert.NotNil(t, deleteResp.OK)
225+
}
226+
}

0 commit comments

Comments
 (0)