Skip to content

Commit e0efb2d

Browse files
Update ValidateChallenge tests
1 parent b527015 commit e0efb2d

File tree

1 file changed

+29
-11
lines changed

1 file changed

+29
-11
lines changed

authsignal/client_tests.py

+29-11
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
base_url = "https://signal.authsignal.com/v1"
99

10+
base_challenge_url = 'https://api.authsignal.com/v1'
11+
1012
class Test(unittest.TestCase):
1113
def setUp(self):
1214
self.authsignal_client = client.Client(api_key='SECRET')
@@ -109,41 +111,57 @@ def setUp(self):
109111

110112
@responses.activate
111113
def test_it_returns_success_if_user_id_is_correct(self):
112-
responses.add(responses.GET, f"{base_url}/users/legitimate_user_id/actions/alwaysChallenge/a682af7d-c929-4c29-9c2a-71e69ab5c603",
113-
json={"state": "CHALLENGE_SUCCEEDED", "ruleIds": [], "stateUpdatedAt": "2022-07-25T03:19:00.316Z", "createdAt": "2022-07-25T03:19:00.316Z"},
114+
responses.add(responses.POST, f"{base_challenge_url}/validate",
115+
json={
116+
'isValid': True,
117+
'state': 'CHALLENGE_SUCCEEDED',
118+
'stateUpdatedAt': '2024-07-11T22:03:39.037Z',
119+
'userId': 'legitimate_user_id',
120+
'actionCode': 'signin',
121+
'idempotencyKey': 'f2a0275e-bdbb-464a-8398-13c60c98097c'
122+
},
114123
status=200
115124
)
116125

117126
response = self.authsignal_client.validate_challenge(user_id="legitimate_user_id", token=self.jwt_token)
118127

119128
self.assertEqual(response["user_id"], "legitimate_user_id")
120129
self.assertEqual(response["state"], "CHALLENGE_SUCCEEDED")
121-
self.assertTrue(response["success"])
130+
self.assertTrue(response["is_valid"])
122131

123132
@responses.activate
124133
def test_it_returns_success_false_if_user_id_is_incorrect(self):
125-
responses.add(responses.GET, f"{base_url}/users/spoofed_id/actions/alwaysChallenge/a682af7d-c929-4c29-9c2a-71e69ab5c603",
126-
json={"state": "CHALLENGE_SUCCEEDED", "ruleIds": [], "stateUpdatedAt": "2022-07-25T03:19:00.316Z", "createdAt": "2022-07-25T03:19:00.316Z"},
127-
status=200
134+
responses.add(responses.POST, f"{base_challenge_url}/validate",
135+
json={'isValid': False, 'error': 'User is invalid.'},
136+
status=400
128137
)
129138

130139
response = self.authsignal_client.validate_challenge(user_id="spoofed_id", token=self.jwt_token)
131140

132-
self.assertIsNone(response['state'])
133-
self.assertFalse(response['success'])
141+
self.assertIsNone(response['action'])
142+
self.assertFalse(response['is_valid'])
143+
self.assertEqual(response.get("error"), "User is invalid.")
134144

135145
@responses.activate
136146
def test_it_returns_success_true_if_no_user_id_is_provided(self):
137-
responses.add(responses.GET, f"{base_url}/users/legitimate_user_id/actions/alwaysChallenge/a682af7d-c929-4c29-9c2a-71e69ab5c603",
138-
json={"state": "CHALLENGE_SUCCEEDED", "ruleIds": [], "stateUpdatedAt": "2022-07-25T03:19:00.316Z", "createdAt": "2022-07-25T03:19:00.316Z"},
147+
responses.add(responses.POST, f"{base_challenge_url}/validate",
148+
json={
149+
'isValid': True,
150+
'state': 'CHALLENGE_SUCCEEDED',
151+
'stateUpdatedAt': '2024-07-11T22:39:23.613Z',
152+
'userId': 'legitimate_user_id',
153+
'actionCode': 'signin',
154+
'idempotencyKey': '6d09db21-1aa9-4b7f-826f-dbc6a0af79eb',
155+
'verificationMethod': 'EMAIL_MAGIC_LINK'
156+
},
139157
status=200
140158
)
141159

142160
response = self.authsignal_client.validate_challenge(token=self.jwt_token)
143161

144162
self.assertEqual(response["user_id"], "legitimate_user_id")
145163
self.assertEqual(response["state"], "CHALLENGE_SUCCEEDED")
146-
self.assertTrue(response["success"])
164+
self.assertTrue(response["is_valid"])
147165

148166
if __name__ == "__main__":
149167
unittest.main()

0 commit comments

Comments
 (0)