Skip to content

Commit 5fc6211

Browse files
test: adds test for create_reset_password_link
1 parent d5ebe65 commit 5fc6211

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

tests/emailpassword/test_passwordreset.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import asyncio
1515
import json
1616
from typing import Any, Dict, Union
17+
from urllib.parse import urlparse
1718

1819
from fastapi import FastAPI
1920
from fastapi.requests import Request
@@ -22,6 +23,7 @@
2223
from supertokens_python import InputAppInfo, SupertokensConfig, init
2324
from supertokens_python.framework.fastapi import get_middleware
2425
from supertokens_python.recipe import emailpassword, session
26+
from supertokens_python.recipe.emailpassword.asyncio import create_reset_password_link
2527
from supertokens_python.recipe.session import SessionContainer
2628
from supertokens_python.recipe.session.asyncio import (
2729
create_new_session,
@@ -339,3 +341,38 @@ async def send_email(
339341
assert dict_response["status"] == "OK"
340342
assert dict_response["user"]["id"] == user_info["id"]
341343
assert dict_response["user"]["email"] == user_info["email"]
344+
345+
346+
@mark.asyncio
347+
async def test_create_reset_password_link(
348+
driver_config_client: TestClient,
349+
):
350+
init(
351+
supertokens_config=SupertokensConfig("http://localhost:3567"),
352+
app_info=InputAppInfo(
353+
app_name="SuperTokens Demo",
354+
api_domain="http://api.supertokens.io",
355+
website_domain="http://supertokens.io",
356+
api_base_path="/auth",
357+
),
358+
framework="fastapi",
359+
recipe_list=[
360+
emailpassword.init(),
361+
session.init(get_token_transfer_method=lambda _, __, ___: "cookie"),
362+
],
363+
)
364+
start_st()
365+
366+
response_1 = sign_up_request(
367+
driver_config_client, "[email protected]", "validpass123"
368+
)
369+
assert response_1.status_code == 200
370+
dict_response = json.loads(response_1.text)
371+
user_info = dict_response["user"]
372+
assert dict_response["status"] == "OK"
373+
link = await create_reset_password_link("public", user_info["id"])
374+
url = urlparse(link.link) # type: ignore
375+
queries = url.query.strip("&").split("&")
376+
assert url.path == "/auth/reset-password"
377+
assert "tenantId=public" in queries
378+
assert "rid=emailpassword" in queries

tests/thirdpartyemailpassword/test_email_delivery.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from fastapi.requests import Request
2222
from fastapi.testclient import TestClient
2323
from pytest import fixture, mark
24+
from urllib.parse import urlparse
2425

2526
from supertokens_python import InputAppInfo, SupertokensConfig, init
2627
from supertokens_python.framework.fastapi import get_middleware
@@ -37,6 +38,9 @@
3738
session,
3839
thirdpartyemailpassword,
3940
)
41+
from supertokens_python.recipe.thirdpartyemailpassword.asyncio import (
42+
create_reset_password_link,
43+
)
4044
from supertokens_python.recipe.emailverification.emaildelivery.services import (
4145
SMTPService as EVSMTPService,
4246
)
@@ -1036,3 +1040,38 @@ async def send_email(
10361040

10371041
assert email == "[email protected]"
10381042
assert email_verify_url != ""
1043+
1044+
1045+
@mark.asyncio
1046+
async def test_create_reset_password_link(
1047+
driver_config_client: TestClient,
1048+
):
1049+
init(
1050+
supertokens_config=SupertokensConfig("http://localhost:3567"),
1051+
app_info=InputAppInfo(
1052+
app_name="SuperTokens Demo",
1053+
api_domain="http://api.supertokens.io",
1054+
website_domain="http://supertokens.io",
1055+
api_base_path="/auth",
1056+
),
1057+
framework="fastapi",
1058+
recipe_list=[
1059+
thirdpartyemailpassword.init(),
1060+
session.init(get_token_transfer_method=lambda _, __, ___: "cookie"),
1061+
],
1062+
)
1063+
start_st()
1064+
1065+
response_1 = sign_up_request(
1066+
driver_config_client, "[email protected]", "validpass123"
1067+
)
1068+
assert response_1.status_code == 200
1069+
dict_response = json.loads(response_1.text)
1070+
user_info = dict_response["user"]
1071+
assert dict_response["status"] == "OK"
1072+
link = await create_reset_password_link("public", user_info["id"])
1073+
url = urlparse(link.link) # type: ignore
1074+
queries = url.query.strip("&").split("&")
1075+
assert url.path == "/auth/reset-password"
1076+
assert "tenantId=public" in queries
1077+
assert "rid=thirdpartyemailpassword" in queries

0 commit comments

Comments
 (0)