Skip to content

Commit ee775e6

Browse files
committed
test: ep userid mapping tests
1 parent b784cfd commit ee775e6

File tree

1 file changed

+199
-0
lines changed

1 file changed

+199
-0
lines changed
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
package emailpassword
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/assert"
7+
"github.com/supertokens/supertokens-golang/supertokens"
8+
"github.com/supertokens/supertokens-golang/test/unittesting"
9+
)
10+
11+
func TestCreateUserIdMappingGetUserById(t *testing.T) {
12+
BeforeEach()
13+
unittesting.StartUpST("localhost", "8080")
14+
defer AfterEach()
15+
16+
initForUserIdMappingTest(t)
17+
18+
querier, err := supertokens.GetNewQuerierInstanceOrThrowError("")
19+
assert.NoError(t, err)
20+
21+
cdiVersion, err := querier.GetQuerierAPIVersion()
22+
assert.NoError(t, err)
23+
24+
if unittesting.MaxVersion(cdiVersion, "2.14") != cdiVersion {
25+
return
26+
}
27+
28+
signUpResponse, err := SignUp("test@example.com", "testpass123")
29+
assert.NoError(t, err)
30+
31+
assert.NotNil(t, signUpResponse.OK)
32+
33+
externalUserId := "externalId"
34+
externalUserIdInfo := "externalIdInfo"
35+
createResp, err := supertokens.CreateUserIdMapping(signUpResponse.OK.User.ID, externalUserId, &externalUserIdInfo, false)
36+
assert.NoError(t, err)
37+
assert.NotNil(t, createResp.OK)
38+
39+
{ // Using supertokens ID
40+
userResp, err := GetUserByID(signUpResponse.OK.User.ID)
41+
assert.NoError(t, err)
42+
assert.Equal(t, externalUserId, userResp.ID)
43+
}
44+
45+
{ // Using external ID
46+
userResp, err := GetUserByID(externalUserId)
47+
assert.NoError(t, err)
48+
assert.Equal(t, externalUserId, userResp.ID)
49+
}
50+
}
51+
52+
func TestCreateUserIdMappingGetUserByEmail(t *testing.T) {
53+
BeforeEach()
54+
unittesting.StartUpST("localhost", "8080")
55+
defer AfterEach()
56+
57+
initForUserIdMappingTest(t)
58+
59+
querier, err := supertokens.GetNewQuerierInstanceOrThrowError("")
60+
assert.NoError(t, err)
61+
62+
cdiVersion, err := querier.GetQuerierAPIVersion()
63+
assert.NoError(t, err)
64+
65+
if unittesting.MaxVersion(cdiVersion, "2.14") != cdiVersion {
66+
return
67+
}
68+
69+
signUpResponse, err := SignUp("test@example.com", "testpass123")
70+
assert.NoError(t, err)
71+
72+
assert.NotNil(t, signUpResponse.OK)
73+
74+
externalUserId := "externalId"
75+
externalUserIdInfo := "externalIdInfo"
76+
createResp, err := supertokens.CreateUserIdMapping(signUpResponse.OK.User.ID, externalUserId, &externalUserIdInfo, false)
77+
assert.NoError(t, err)
78+
assert.NotNil(t, createResp.OK)
79+
80+
userResp, err := GetUserByEmail("test@example.com")
81+
assert.NoError(t, err)
82+
assert.Equal(t, externalUserId, userResp.ID)
83+
}
84+
85+
func TestCreateUserIdMappingSignIn(t *testing.T) {
86+
BeforeEach()
87+
unittesting.StartUpST("localhost", "8080")
88+
defer AfterEach()
89+
90+
initForUserIdMappingTest(t)
91+
92+
querier, err := supertokens.GetNewQuerierInstanceOrThrowError("")
93+
assert.NoError(t, err)
94+
95+
cdiVersion, err := querier.GetQuerierAPIVersion()
96+
assert.NoError(t, err)
97+
98+
if unittesting.MaxVersion(cdiVersion, "2.14") != cdiVersion {
99+
return
100+
}
101+
102+
signUpResponse, err := SignUp("test@example.com", "testpass123")
103+
assert.NoError(t, err)
104+
105+
assert.NotNil(t, signUpResponse.OK)
106+
107+
externalUserId := "externalId"
108+
externalUserIdInfo := "externalIdInfo"
109+
createResp, err := supertokens.CreateUserIdMapping(signUpResponse.OK.User.ID, externalUserId, &externalUserIdInfo, false)
110+
assert.NoError(t, err)
111+
assert.NotNil(t, createResp.OK)
112+
113+
signInResp, err := SignIn("test@example.com", "testpass123")
114+
assert.NoError(t, err)
115+
assert.NotNil(t, signInResp.OK)
116+
assert.Equal(t, externalUserId, signInResp.OK.User.ID)
117+
}
118+
119+
func TestCreateUserIdMappingPasswordReset(t *testing.T) {
120+
BeforeEach()
121+
unittesting.StartUpST("localhost", "8080")
122+
defer AfterEach()
123+
124+
initForUserIdMappingTest(t)
125+
126+
querier, err := supertokens.GetNewQuerierInstanceOrThrowError("")
127+
assert.NoError(t, err)
128+
129+
cdiVersion, err := querier.GetQuerierAPIVersion()
130+
assert.NoError(t, err)
131+
132+
if unittesting.MaxVersion(cdiVersion, "2.14") != cdiVersion {
133+
return
134+
}
135+
136+
signUpResponse, err := SignUp("test@example.com", "testpass123")
137+
assert.NoError(t, err)
138+
139+
assert.NotNil(t, signUpResponse.OK)
140+
141+
externalUserId := "externalId"
142+
externalUserIdInfo := "externalIdInfo"
143+
createResp, err := supertokens.CreateUserIdMapping(signUpResponse.OK.User.ID, externalUserId, &externalUserIdInfo, false)
144+
assert.NoError(t, err)
145+
assert.NotNil(t, createResp.OK)
146+
147+
prTokenResp, err := CreateResetPasswordToken(externalUserId)
148+
assert.NoError(t, err)
149+
assert.NotNil(t, prTokenResp.OK)
150+
151+
prResp, err := ResetPasswordUsingToken(prTokenResp.OK.Token, "newpass123")
152+
assert.NoError(t, err)
153+
assert.NotNil(t, prResp.OK)
154+
155+
signInResp, err := SignIn("test@example.com", "newpass123")
156+
assert.NoError(t, err)
157+
assert.NotNil(t, signInResp.OK)
158+
assert.Equal(t, externalUserId, signInResp.OK.User.ID)
159+
}
160+
161+
func TestCreateUserIdMappingUpdateEmailPassword(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+
externalUserId := "externalId"
184+
externalUserIdInfo := "externalIdInfo"
185+
createResp, err := supertokens.CreateUserIdMapping(signUpResponse.OK.User.ID, externalUserId, &externalUserIdInfo, false)
186+
assert.NoError(t, err)
187+
assert.NotNil(t, createResp.OK)
188+
189+
newEmail := "email@example.com"
190+
newPass := "newpass123"
191+
updateResp, err := UpdateEmailOrPassword(externalUserId, &newEmail, &newPass)
192+
assert.NoError(t, err)
193+
assert.NotNil(t, updateResp.OK)
194+
195+
signInResp, err := SignIn(newEmail, newPass)
196+
assert.NoError(t, err)
197+
assert.NotNil(t, signInResp.OK)
198+
assert.Equal(t, externalUserId, signInResp.OK.User.ID)
199+
}

0 commit comments

Comments
 (0)