Skip to content

Commit

Permalink
✅ Improve Coverage on ChartConfig
Browse files Browse the repository at this point in the history
Signed-off-by: Leonardo Colman Lopes <[email protected]>
  • Loading branch information
LeoColman committed Feb 10, 2025
1 parent 7353583 commit 9ba02b1
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 14 deletions.
1 change: 1 addition & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ dependencies {
androidTestImplementation(libs.fuel) {
because("Specifically to make Screenshots and upload them to a localhost server")
}
testImplementation(kotlin("reflect"))

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,45 +23,42 @@ sealed class ChartConfig(
val data: Map<Duration, Double>,
@StringRes val title: Int,
@StringRes val verticalAxisTitle: Int,
@StringRes val horizontalAxisTitle: Int,
val maxX: Double = 25.0,
val maxY: Double = 10.0
) {

private data object ThcConcentration : ChartConfig(
@StringRes val horizontalAxisTitle = days

data object ThcConcentration : ChartConfig(
ThcConcentrationDataPoints,
current_thc_concentration,
thc_concentration,
days,
20.0,
100.0
)
private data object Discomfort : ChartConfig(
data object Discomfort : ChartConfig(
DiscomfortDataPoints,
current_withdrawal_discomfort,
discomfort_strength,
days
)
private data object DecreasedAppetite : ChartConfig(
data object DecreasedAppetite : ChartConfig(
DecreasedAppetiteDataPoints,
current_decreased_appetite,
decreased_appetite,
days
)
private data object Irritability : ChartConfig(IrritabilityDataPoints, current_irritability, irritability, days)
private data object NervousnessAnxiety : ChartConfig(
data object Irritability : ChartConfig(IrritabilityDataPoints, current_irritability, irritability)
data object NervousnessAnxiety : ChartConfig(
NervousnessAnxietyDataPoints,
current_nervousness_anxiety,
nervousness_anxiety,
days
)
private data object Anger : ChartConfig(AngerDataPoints, R.string.current_anger, R.string.anger, days)
private data object Restlessness : ChartConfig(RestlessnessDataPoints, current_restlessness, restlessness, days)
private data object SleepDifficulty : ChartConfig(
data object Anger : ChartConfig(AngerDataPoints, R.string.current_anger, R.string.anger,)
data object Restlessness : ChartConfig(RestlessnessDataPoints, current_restlessness, restlessness,)
data object SleepDifficulty : ChartConfig(
SleepDifficultyDataPoints,
current_sleep_difficulty,
sleep_difficulty,
days

)

companion object {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package br.com.colman.petals.withdrawal.data

import io.kotest.core.spec.style.FunSpec
import io.kotest.inspectors.forAll
import io.kotest.matchers.collections.shouldContainExactlyInAnyOrder
import io.kotest.matchers.shouldBe

class ChartConfigTest : FunSpec({

test("Entries should contain all subclasses") {
val classes = ChartConfig::class.sealedSubclasses

ChartConfig.entries().map { it::class } shouldContainExactlyInAnyOrder classes
}

test("All subclasses but ThcConcentration should use the default x and y values") {
ChartConfig.entries().forAll {
if (it is ChartConfig.ThcConcentration) {
it.maxX shouldBe 20.0
it.maxY shouldBe 100.0
} else {
it.maxX shouldBe 25.0
it.maxY shouldBe 10.0
}
}
}
})

0 comments on commit 9ba02b1

Please sign in to comment.