Fix ApplicationReleaseTest
This commit is contained in:
parent
fbc1e3b227
commit
cb705a87c0
2 changed files with 87 additions and 63 deletions
|
|
@ -37,16 +37,8 @@ class GetApplicationRelease(
|
||||||
it.version
|
it.version
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val checksumRegex = """---(\R|.)*Checksums(\R|.)*""".toRegex()
|
|
||||||
|
|
||||||
val release = releases.firstOrNull()
|
val latest = releases.getLatest() ?: return Result.NoNewUpdate
|
||||||
?.copy(
|
|
||||||
info = releases.joinToString("\r---\r") {
|
|
||||||
"## ${it.version}\r\r" +
|
|
||||||
it.info.replace(checksumRegex, "")
|
|
||||||
}
|
|
||||||
)
|
|
||||||
if (release == null) return Result.NoNewUpdate
|
|
||||||
// KMK <--
|
// KMK <--
|
||||||
|
|
||||||
lastChecked.set(now.toEpochMilli())
|
lastChecked.set(now.toEpochMilli())
|
||||||
|
|
@ -56,11 +48,11 @@ class GetApplicationRelease(
|
||||||
isPreview = arguments.isPreview,
|
isPreview = arguments.isPreview,
|
||||||
commitCount = arguments.commitCount,
|
commitCount = arguments.commitCount,
|
||||||
versionName = arguments.versionName,
|
versionName = arguments.versionName,
|
||||||
versionTag = release.version,
|
versionTag = latest.version,
|
||||||
)
|
)
|
||||||
return when {
|
return when {
|
||||||
isNewVersion && arguments.isThirdParty -> Result.ThirdPartyInstallation
|
isNewVersion && arguments.isThirdParty -> Result.ThirdPartyInstallation
|
||||||
isNewVersion -> Result.NewUpdate(release)
|
isNewVersion -> Result.NewUpdate(latest)
|
||||||
else -> Result.NoNewUpdate
|
else -> Result.NoNewUpdate
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -154,3 +146,15 @@ class GetApplicationRelease(
|
||||||
data object ThirdPartyInstallation : Result
|
data object ThirdPartyInstallation : Result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal fun List<Release>.getLatest(): Release? {
|
||||||
|
val checksumRegex = """---(\R|.)*Checksums(\R|.)*""".toRegex()
|
||||||
|
|
||||||
|
return firstOrNull()
|
||||||
|
?.copy(
|
||||||
|
info = joinToString("\r---\r") {
|
||||||
|
"## ${it.version}\r\r" +
|
||||||
|
it.info.replace(checksumRegex, "")
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,13 +35,17 @@ class GetApplicationReleaseTest {
|
||||||
every { preference.get() } returns 0
|
every { preference.get() } returns 0
|
||||||
every { preference.set(any()) }.answers { }
|
every { preference.set(any()) }.answers { }
|
||||||
|
|
||||||
coEvery { releaseService.latest(any()) } returns Release(
|
val releases = listOf(
|
||||||
"v2.0.0",
|
Release(
|
||||||
"info",
|
"v2.0.0",
|
||||||
"http://example.com/release_link",
|
"info",
|
||||||
listOf("http://example.com/assets"),
|
"http://example.com/release_link",
|
||||||
|
listOf("http://example.com/assets"),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
coEvery { releaseService.releaseNotes(any()) } returns releases
|
||||||
|
|
||||||
val result = getApplicationRelease.await(
|
val result = getApplicationRelease.await(
|
||||||
GetApplicationRelease.Arguments(
|
GetApplicationRelease.Arguments(
|
||||||
isPreview = false,
|
isPreview = false,
|
||||||
|
|
@ -60,14 +64,16 @@ class GetApplicationReleaseTest {
|
||||||
every { preference.get() } returns 0
|
every { preference.get() } returns 0
|
||||||
every { preference.set(any()) }.answers { }
|
every { preference.set(any()) }.answers { }
|
||||||
|
|
||||||
val release = Release(
|
val releases = listOf(
|
||||||
"r2000",
|
Release(
|
||||||
"info",
|
"r2000",
|
||||||
"http://example.com/release_link",
|
"info",
|
||||||
listOf("http://example.com/assets"),
|
"http://example.com/release_link",
|
||||||
|
listOf("http://example.com/assets"),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
coEvery { releaseService.latest(any()) } returns release
|
coEvery { releaseService.releaseNotes(any()) } returns releases
|
||||||
|
|
||||||
val result = getApplicationRelease.await(
|
val result = getApplicationRelease.await(
|
||||||
GetApplicationRelease.Arguments(
|
GetApplicationRelease.Arguments(
|
||||||
|
|
@ -80,7 +86,7 @@ class GetApplicationReleaseTest {
|
||||||
)
|
)
|
||||||
|
|
||||||
// KMK: Don't cast, will throw exception if the result is different from expected
|
// KMK: Don't cast, will throw exception if the result is different from expected
|
||||||
result shouldBe GetApplicationRelease.Result.NewUpdate(release)
|
result shouldBe GetApplicationRelease.Result.NewUpdate(releases.getLatest()!!)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -88,14 +94,17 @@ class GetApplicationReleaseTest {
|
||||||
every { preference.get() } returns 0
|
every { preference.get() } returns 0
|
||||||
every { preference.set(any()) }.answers { }
|
every { preference.set(any()) }.answers { }
|
||||||
|
|
||||||
val release = Release(
|
val releases =
|
||||||
"v2.0.0",
|
listOf(
|
||||||
"info",
|
Release(
|
||||||
"http://example.com/release_link",
|
"v2.0.0",
|
||||||
listOf("http://example.com/assets"),
|
"info",
|
||||||
)
|
"http://example.com/release_link",
|
||||||
|
listOf("http://example.com/assets"),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
coEvery { releaseService.latest(any()) } returns release
|
coEvery { releaseService.releaseNotes(any()) } returns releases
|
||||||
|
|
||||||
val result = getApplicationRelease.await(
|
val result = getApplicationRelease.await(
|
||||||
GetApplicationRelease.Arguments(
|
GetApplicationRelease.Arguments(
|
||||||
|
|
@ -108,7 +117,7 @@ class GetApplicationReleaseTest {
|
||||||
)
|
)
|
||||||
|
|
||||||
// KMK: Don't cast, will throw exception if the result is different from expected
|
// KMK: Don't cast, will throw exception if the result is different from expected
|
||||||
result shouldBe GetApplicationRelease.Result.NewUpdate(release)
|
result shouldBe GetApplicationRelease.Result.NewUpdate(releases.getLatest()!!)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -116,14 +125,16 @@ class GetApplicationReleaseTest {
|
||||||
every { preference.get() } returns 0
|
every { preference.get() } returns 0
|
||||||
every { preference.set(any()) }.answers { }
|
every { preference.set(any()) }.answers { }
|
||||||
|
|
||||||
val release = Release(
|
val releases = listOf(
|
||||||
"v1.0.0",
|
Release(
|
||||||
"info",
|
"v1.0.0",
|
||||||
"http://example.com/release_link",
|
"info",
|
||||||
listOf("http://example.com/assets"),
|
"http://example.com/release_link",
|
||||||
|
listOf("http://example.com/assets"),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
coEvery { releaseService.latest(any()) } returns release
|
coEvery { releaseService.releaseNotes(any()) } returns releases
|
||||||
|
|
||||||
val result = getApplicationRelease.await(
|
val result = getApplicationRelease.await(
|
||||||
GetApplicationRelease.Arguments(
|
GetApplicationRelease.Arguments(
|
||||||
|
|
@ -143,14 +154,16 @@ class GetApplicationReleaseTest {
|
||||||
every { preference.get() } returns Instant.now().toEpochMilli()
|
every { preference.get() } returns Instant.now().toEpochMilli()
|
||||||
every { preference.set(any()) }.answers { }
|
every { preference.set(any()) }.answers { }
|
||||||
|
|
||||||
val release = Release(
|
val releases = listOf(
|
||||||
"v2.0.0",
|
Release(
|
||||||
"info",
|
"v2.0.0",
|
||||||
"http://example.com/release_link",
|
"info",
|
||||||
listOf("http://example.com/assets"),
|
"http://example.com/release_link",
|
||||||
|
listOf("http://example.com/assets"),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
coEvery { releaseService.latest(any()) } returns release
|
coEvery { releaseService.releaseNotes(any()) } returns releases
|
||||||
|
|
||||||
val result = getApplicationRelease.await(
|
val result = getApplicationRelease.await(
|
||||||
GetApplicationRelease.Arguments(
|
GetApplicationRelease.Arguments(
|
||||||
|
|
@ -163,6 +176,7 @@ class GetApplicationReleaseTest {
|
||||||
)
|
)
|
||||||
|
|
||||||
coVerify(exactly = 0) { releaseService.latest(any()) }
|
coVerify(exactly = 0) { releaseService.latest(any()) }
|
||||||
|
coVerify(exactly = 0) { releaseService.releaseNotes(any()) }
|
||||||
result shouldBe GetApplicationRelease.Result.NoNewUpdate
|
result shouldBe GetApplicationRelease.Result.NoNewUpdate
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -173,14 +187,16 @@ class GetApplicationReleaseTest {
|
||||||
every { preference.get() } returns 0
|
every { preference.get() } returns 0
|
||||||
every { preference.set(any()) }.answers { }
|
every { preference.set(any()) }.answers { }
|
||||||
|
|
||||||
val release = Release(
|
val releases = listOf(
|
||||||
"r1234",
|
Release(
|
||||||
"info",
|
"r1234",
|
||||||
"http://example.com/release_link",
|
"info",
|
||||||
listOf("http://example.com/assets"),
|
"http://example.com/release_link",
|
||||||
|
listOf("http://example.com/assets"),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
coEvery { releaseService.latest(any()) } returns release
|
coEvery { releaseService.releaseNotes(any()) } returns releases
|
||||||
|
|
||||||
val result = getApplicationRelease.await(
|
val result = getApplicationRelease.await(
|
||||||
GetApplicationRelease.Arguments(
|
GetApplicationRelease.Arguments(
|
||||||
|
|
@ -192,7 +208,7 @@ class GetApplicationReleaseTest {
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
result shouldBe GetApplicationRelease.Result.NewUpdate(release)
|
result shouldBe GetApplicationRelease.Result.NewUpdate(releases.getLatest()!!)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -200,14 +216,16 @@ class GetApplicationReleaseTest {
|
||||||
every { preference.get() } returns 0
|
every { preference.get() } returns 0
|
||||||
every { preference.set(any()) }.answers { }
|
every { preference.set(any()) }.answers { }
|
||||||
|
|
||||||
val release = Release(
|
val releases = listOf(
|
||||||
"r1234",
|
Release(
|
||||||
"info",
|
"r1234",
|
||||||
"http://example.com/release_link",
|
"info",
|
||||||
listOf("http://example.com/assets"),
|
"http://example.com/release_link",
|
||||||
|
listOf("http://example.com/assets"),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
coEvery { releaseService.latest(any()) } returns release
|
coEvery { releaseService.releaseNotes(any()) } returns releases
|
||||||
|
|
||||||
val result = getApplicationRelease.await(
|
val result = getApplicationRelease.await(
|
||||||
GetApplicationRelease.Arguments(
|
GetApplicationRelease.Arguments(
|
||||||
|
|
@ -227,14 +245,16 @@ class GetApplicationReleaseTest {
|
||||||
every { preference.get() } returns 0
|
every { preference.get() } returns 0
|
||||||
every { preference.set(any()) }.answers { }
|
every { preference.set(any()) }.answers { }
|
||||||
|
|
||||||
val release = Release(
|
val releases = listOf(
|
||||||
"v2.0.0",
|
Release(
|
||||||
"info",
|
"v2.0.0",
|
||||||
"http://example.com/release_link",
|
"info",
|
||||||
listOf("http://example.com/assets"),
|
"http://example.com/release_link",
|
||||||
|
listOf("http://example.com/assets"),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
coEvery { releaseService.latest(any()) } returns release
|
coEvery { releaseService.releaseNotes(any()) } returns releases
|
||||||
|
|
||||||
val result = getApplicationRelease.await(
|
val result = getApplicationRelease.await(
|
||||||
GetApplicationRelease.Arguments(
|
GetApplicationRelease.Arguments(
|
||||||
|
|
@ -246,7 +266,7 @@ class GetApplicationReleaseTest {
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
result shouldBe GetApplicationRelease.Result.NewUpdate(release)
|
result shouldBe GetApplicationRelease.Result.NewUpdate(releases.getLatest()!!)
|
||||||
}
|
}
|
||||||
// KMK <--
|
// KMK <--
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue