Skip to content

Commit a9945b4

Browse files
committed
test: add currency configuration to transaction tests
1 parent a41226e commit a9945b4

File tree

7 files changed

+28
-10
lines changed

7 files changed

+28
-10
lines changed

shared/src/androidUnitTest/kotlin/com/prof18/moneyflow/AddTransactionRoborazziTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class AddTransactionRoborazziTest : RoborazziTestBase() {
4242
dateLabel = "11 July 2021",
4343
addTransactionAction = null,
4444
resetAction = {},
45+
currencyConfig = RoborazziSampleData.sampleCurrencyConfig,
4546
)
4647
}
4748
}

shared/src/androidUnitTest/kotlin/com/prof18/moneyflow/AllTransactionsRoborazziTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class AllTransactionsRoborazziTest : RoborazziTestBase() {
2727
stateFlow = MutableStateFlow(
2828
AllTransactionsUiState(
2929
transactions = RoborazziSampleData.sampleTransactions,
30+
currencyConfig = RoborazziSampleData.sampleCurrencyConfig,
3031
),
3132
),
3233
loadNextPage = {},

shared/src/androidUnitTest/kotlin/com/prof18/moneyflow/CategoriesRoborazziTest.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.prof18.moneyflow
22

33
import androidx.test.ext.junit.runners.AndroidJUnit4
44
import com.github.takahirom.roborazzi.RobolectricDeviceQualifiers
5+
import com.prof18.moneyflow.database.model.TransactionType
56
import com.prof18.moneyflow.domain.entities.Category
67
import com.prof18.moneyflow.presentation.categories.CategoriesScreen
78
import com.prof18.moneyflow.presentation.categories.CategoryModel
@@ -34,11 +35,15 @@ class CategoriesRoborazziTest : RoborazziTestBase() {
3435
id = 0,
3536
name = "Food",
3637
icon = CategoryIcon.IC_HAMBURGER_SOLID,
38+
type = TransactionType.OUTCOME,
39+
createdAtMillis = 0,
3740
),
3841
Category(
3942
id = 1,
4043
name = "Drinks",
4144
icon = CategoryIcon.IC_COCKTAIL_SOLID,
45+
type = TransactionType.OUTCOME,
46+
createdAtMillis = 0,
4247
),
4348
),
4449
),

shared/src/androidUnitTest/kotlin/com/prof18/moneyflow/ComponentsRoborazziTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class ComponentsRoborazziTest : RoborazziTestBase() {
4949
onLongPress = {},
5050
onClick = {},
5151
hideSensitiveData = true,
52+
currencyConfig = RoborazziSampleData.sampleCurrencyConfig,
5253
)
5354
}
5455
}

shared/src/androidUnitTest/kotlin/com/prof18/moneyflow/HomeRoborazziTest.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@ class HomeRoborazziTest : RoborazziTestBase() {
2828
HomeScreen(
2929
homeModel = HomeModel.HomeState(
3030
balanceRecap = BalanceRecap(
31-
totalBalance = 5000.0,
32-
monthlyIncome = 1000.0,
33-
monthlyExpenses = 50.0,
31+
totalBalanceCents = 500_000,
32+
monthlyIncomeCents = 100_000,
33+
monthlyExpensesCents = 50_00,
3434
),
3535
latestTransactions = RoborazziSampleData.sampleTransactions,
36+
currencyConfig = RoborazziSampleData.sampleCurrencyConfig,
3637
),
3738
hideSensitiveDataState = false,
3839
navigateToAllTransactions = {},

shared/src/androidUnitTest/kotlin/com/prof18/moneyflow/RoborazziTestBase.kt

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import androidx.compose.ui.test.onRoot
77
import androidx.test.ext.junit.rules.ActivityScenarioRule
88
import com.github.takahirom.roborazzi.RoborazziRule
99
import com.github.takahirom.roborazzi.captureRoboImage
10+
import com.prof18.moneyflow.domain.entities.CurrencyConfig
1011
import com.prof18.moneyflow.domain.entities.MoneyTransaction
1112
import com.prof18.moneyflow.domain.entities.TransactionTypeUI
1213
import com.prof18.moneyflow.presentation.categories.data.CategoryUIData
@@ -25,10 +26,13 @@ open class RoborazziTestBase(
2526
@get:Rule
2627
val roborazziRule: RoborazziRule = roborazziOf(composeRule, captureType)
2728

28-
private val snapshotDir: File = File(
29-
System.getProperty("roborazzi.test.record.dir")
30-
?: File(System.getProperty("user.dir")).resolve("image/roborazzi").path,
31-
).also { directory ->
29+
private val snapshotDir: File = run {
30+
val defaultDir = System.getProperty("user.dir")
31+
?.let { File(it).resolve("image/roborazzi").path }
32+
?: "image/roborazzi"
33+
val path = System.getProperty("roborazzi.test.record.dir") ?: defaultDir
34+
File(path)
35+
}.also { directory ->
3236
directory.mkdirs()
3337
}
3438

@@ -45,6 +49,12 @@ open class RoborazziTestBase(
4549
}
4650

4751
internal object RoborazziSampleData {
52+
val sampleCurrencyConfig = CurrencyConfig(
53+
code = "EUR",
54+
symbol = "",
55+
decimalPlaces = 2,
56+
)
57+
4858
val sampleCategory = CategoryUIData(
4959
id = 1,
5060
name = "Food",
@@ -56,7 +66,7 @@ internal object RoborazziSampleData {
5666
id = 0,
5767
title = "Ice Cream",
5868
icon = CategoryIcon.IC_ICE_CREAM_SOLID,
59-
amount = 10.0,
69+
amountCents = 1_000,
6070
type = TransactionTypeUI.EXPENSE,
6171
milliseconds = 0,
6272
formattedDate = "12 July 2021",
@@ -65,7 +75,7 @@ internal object RoborazziSampleData {
6575
id = 1,
6676
title = "Tip",
6777
icon = CategoryIcon.IC_MONEY_CHECK_ALT_SOLID,
68-
amount = 50.0,
78+
amountCents = 5_000,
6979
type = TransactionTypeUI.INCOME,
7080
milliseconds = 0,
7181
formattedDate = "12 July 2021",

shared/src/commonMain/kotlin/com/prof18/moneyflow/data/MoneyRepository.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import kotlinx.coroutines.flow.combine
2020
import kotlinx.coroutines.flow.first
2121
import kotlinx.coroutines.flow.flatMapLatest
2222
import kotlinx.coroutines.flow.map
23-
2423
import kotlin.math.abs
2524

2625
internal class MoneyRepository(

0 commit comments

Comments
 (0)