Browse Source

Add test for DatabaseSessionStore.getAllSessions(), and update data when session is not found.

pull/2448/head
Benoit Marty 7 months ago
parent
commit
b634fb43e2
  1. 65
      libraries/session-storage/impl/src/test/kotlin/io/element/android/libraries/sessionstorage/impl/DatabaseSessionStoreTests.kt

65
libraries/session-storage/impl/src/test/kotlin/io/element/android/libraries/sessionstorage/impl/DatabaseSessionStoreTests.kt

@ -83,6 +83,24 @@ class DatabaseSessionStoreTests { @@ -83,6 +83,24 @@ class DatabaseSessionStoreTests {
assertThat(latestSession).isEqualTo(aSessionData)
}
@Test
fun `getAllSessions should return all the sessions`() = runTest {
val noSessions = databaseSessionStore.getAllSessions()
assertThat(noSessions).isEmpty()
database.sessionDataQueries.insertSessionData(aSessionData)
val otherSessionData = aSessionData.copy(userId = "otherUserId")
database.sessionDataQueries.insertSessionData(otherSessionData)
val allSessions = databaseSessionStore.getAllSessions().map {
it.toDbModel()
}
assertThat(allSessions).isEqualTo(
listOf(
aSessionData,
otherSessionData,
)
)
}
@Test
fun `getSession returns a matching session in DB if exists`() = runTest {
database.sessionDataQueries.insertSessionData(aSessionData)
@ -160,4 +178,51 @@ class DatabaseSessionStoreTests { @@ -160,4 +178,51 @@ class DatabaseSessionStoreTests {
assertThat(alteredSession.oidcData).isEqualTo(secondSessionData.oidcData)
assertThat(alteredSession.passphrase).isEqualTo(secondSessionData.passphrase)
}
@Test
fun `update data, session not found`() = runTest {
val firstSessionData = SessionData(
userId = "userId",
deviceId = "deviceId",
accessToken = "accessToken",
refreshToken = "refreshToken",
homeserverUrl = "homeserverUrl",
slidingSyncProxy = "slidingSyncProxy",
loginTimestamp = 1,
oidcData = "aOidcData",
isTokenValid = 1,
loginType = null,
passphrase = "aPassphrase",
)
val secondSessionData = SessionData(
userId = "userIdUnknown",
deviceId = "deviceIdAltered",
accessToken = "accessTokenAltered",
refreshToken = "refreshTokenAltered",
homeserverUrl = "homeserverUrlAltered",
slidingSyncProxy = "slidingSyncProxyAltered",
loginTimestamp = 2,
oidcData = "aOidcDataAltered",
isTokenValid = 1,
loginType = null,
passphrase = "aPassphraseAltered",
)
assertThat(firstSessionData.userId).isNotEqualTo(secondSessionData.userId)
database.sessionDataQueries.insertSessionData(firstSessionData)
databaseSessionStore.updateData(secondSessionData.toApiModel())
// Get the session and check that it has not been altered
val notAlteredSession = databaseSessionStore.getSession(firstSessionData.userId)!!.toDbModel()
assertThat(notAlteredSession.userId).isEqualTo(firstSessionData.userId)
assertThat(notAlteredSession.deviceId).isEqualTo(firstSessionData.deviceId)
assertThat(notAlteredSession.accessToken).isEqualTo(firstSessionData.accessToken)
assertThat(notAlteredSession.refreshToken).isEqualTo(firstSessionData.refreshToken)
assertThat(notAlteredSession.homeserverUrl).isEqualTo(firstSessionData.homeserverUrl)
assertThat(notAlteredSession.slidingSyncProxy).isEqualTo(firstSessionData.slidingSyncProxy)
assertThat(notAlteredSession.loginTimestamp).isEqualTo(firstSessionData.loginTimestamp)
assertThat(notAlteredSession.oidcData).isEqualTo(firstSessionData.oidcData)
assertThat(notAlteredSession.passphrase).isEqualTo(firstSessionData.passphrase)
}
}

Loading…
Cancel
Save