mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-16 19:26:12 -04:00
fix: case-open popup re-appears after the case is closed
This commit is contained in:
committed by
Matthias Urhahn
parent
4bab7c61a9
commit
2cce9ae56c
@@ -290,8 +290,8 @@ class PopUpReaction @Inject constructor(
|
|||||||
DualApplePods.LidState.CLOSED -> CasePopUpDecision(
|
DualApplePods.LidState.CLOSED -> CasePopUpDecision(
|
||||||
shouldShow = false,
|
shouldShow = false,
|
||||||
shouldHide = true,
|
shouldHide = true,
|
||||||
shouldResetCooldown = true,
|
shouldResetCooldown = false,
|
||||||
reason = "Lid CLOSED, resetting cooldown",
|
reason = "Lid CLOSED, refreshing cooldown",
|
||||||
)
|
)
|
||||||
|
|
||||||
else -> CasePopUpDecision(
|
else -> CasePopUpDecision(
|
||||||
|
|||||||
@@ -36,10 +36,11 @@ class PopUpReactionLogicTest : BaseTest() {
|
|||||||
private fun evaluate(
|
private fun evaluate(
|
||||||
currentLidState: DualApplePods.LidState?,
|
currentLidState: DualApplePods.LidState?,
|
||||||
lastShownTime: Instant? = null,
|
lastShownTime: Instant? = null,
|
||||||
|
at: Instant = now,
|
||||||
) = popUpReaction.evaluateCasePopUp(
|
) = popUpReaction.evaluateCasePopUp(
|
||||||
currentLidState = currentLidState,
|
currentLidState = currentLidState,
|
||||||
lastShownTime = lastShownTime,
|
lastShownTime = lastShownTime,
|
||||||
now = now,
|
now = at,
|
||||||
cooldownDuration = cooldown,
|
cooldownDuration = cooldown,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -81,11 +82,39 @@ class PopUpReactionLogicTest : BaseTest() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `lid CLOSED - should NOT show, should hide, should reset cooldown`() {
|
fun `lid CLOSED - should NOT show, should hide, should NOT reset cooldown`() {
|
||||||
val decision = evaluate(currentLidState = DualApplePods.LidState.CLOSED)
|
val decision = evaluate(currentLidState = DualApplePods.LidState.CLOSED)
|
||||||
decision.shouldShow shouldBe false
|
decision.shouldShow shouldBe false
|
||||||
decision.shouldHide shouldBe true
|
decision.shouldHide shouldBe true
|
||||||
decision.shouldResetCooldown shouldBe true
|
decision.shouldResetCooldown shouldBe false
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `lid CLOSED followed by residual OPEN within cooldown - should NOT show`() {
|
||||||
|
val closeDecision = evaluate(currentLidState = DualApplePods.LidState.CLOSED)
|
||||||
|
closeDecision.shouldHide shouldBe true
|
||||||
|
closeDecision.shouldResetCooldown shouldBe false
|
||||||
|
|
||||||
|
val residualOpenDecision = evaluate(
|
||||||
|
currentLidState = DualApplePods.LidState.OPEN,
|
||||||
|
lastShownTime = now,
|
||||||
|
at = now.plusMillis(500),
|
||||||
|
)
|
||||||
|
residualOpenDecision.shouldShow shouldBe false
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `lid CLOSED then OPEN after cooldown elapsed - should show`() {
|
||||||
|
val closeDecision = evaluate(currentLidState = DualApplePods.LidState.CLOSED)
|
||||||
|
closeDecision.shouldHide shouldBe true
|
||||||
|
closeDecision.shouldResetCooldown shouldBe false
|
||||||
|
|
||||||
|
val reopenDecision = evaluate(
|
||||||
|
currentLidState = DualApplePods.LidState.OPEN,
|
||||||
|
lastShownTime = now,
|
||||||
|
at = now.plus(cooldown),
|
||||||
|
)
|
||||||
|
reopenDecision.shouldShow shouldBe true
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user