Add a unit test that ensures that deleting a device purges the associated refresh token (#19230)

This commit is contained in:
Andrew Morgan 2025-11-28 17:01:15 +00:00 committed by GitHub
parent 78ec3043d6
commit 778897a4e9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 28 additions and 0 deletions

1
changelog.d/19230.misc Normal file
View File

@ -0,0 +1 @@
Add a unit test for ensuring associated refresh tokens are erased when a device is delted.

View File

@ -449,6 +449,33 @@ class DeviceTestCase(unittest.HomeserverTestCase):
],
)
def test_delete_device_removes_refresh_tokens(self) -> None:
"""Deleting a device should also purge any refresh tokens for it."""
self._record_users()
self.get_success(
self.store.add_refresh_token_to_user(
user_id=user1,
token="refresh_token",
device_id="abc",
expiry_ts=None,
ultimate_session_expiry_ts=None,
)
)
self.get_success(self.handler.delete_devices(user1, ["abc"]))
remaining_refresh_token = self.get_success(
self.store.db_pool.simple_select_one(
table="refresh_tokens",
keyvalues={"user_id": user1, "device_id": "abc"},
retcols=("id",),
desc="get_refresh_token_for_device",
allow_none=True,
)
)
self.assertIsNone(remaining_refresh_token)
class DehydrationTestCase(unittest.HomeserverTestCase):
servlets = [