Skip to content

Commit

Permalink
Adding testGetOverdueTransaction_turnsIntoNormalTransaction()
Browse files Browse the repository at this point in the history
  • Loading branch information
philipplackner committed Aug 9, 2023
1 parent a136fb9 commit 5a355f0
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 0 deletions.
34 changes: 34 additions & 0 deletions app/src/androidTest/java/com/ivy/home/HomeScreenRobot.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
package com.ivy.home

import androidx.compose.ui.test.assertIsDisplayed
import androidx.compose.ui.test.hasAnySibling
import androidx.compose.ui.test.hasText
import androidx.compose.ui.test.junit4.AndroidComposeTestRule
import androidx.compose.ui.test.onFirst
import androidx.compose.ui.test.onNodeWithText
import androidx.compose.ui.test.performClick
import androidx.compose.ui.test.performScrollTo
import androidx.test.ext.junit.rules.ActivityScenarioRule
import com.ivy.IvyComposeRule
import com.ivy.common.time.provider.TimeProvider
import com.ivy.data.CurrencyCode
import com.ivy.navigation.Navigator
import com.ivy.navigation.destinations.main.Home
import com.ivy.wallet.ui.RootActivity
Expand Down Expand Up @@ -70,4 +75,33 @@ class HomeScreenRobot(
composeRule.onNodeWithText(transactionTitle).assertIsDisplayed()
return this
}

fun openOverdue(): HomeScreenRobot {
composeRule
.onNodeWithText("Overdue")
.performClick()
return this
}

fun assertBalanceIsDisplayed(amount: Double, currency: CurrencyCode): HomeScreenRobot {
val formattedAmount = if(amount % 1.0 == 0.0) {
amount.toInt().toString()
} else amount.toString()

composeRule
.onAllNodes(
hasText(formattedAmount) and hasAnySibling(hasText(currency)),
useUnmergedTree = true
)
.onFirst()
.assertIsDisplayed()

return this
}

fun clickGet(): HomeScreenRobot {
composeRule.onNodeWithText("Get").performClick()
return this
}

}
28 changes: 28 additions & 0 deletions app/src/androidTest/java/com/ivy/home/HomeScreenTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import androidx.compose.ui.test.performClick
import com.ivy.common.androidtest.IvyAndroidTest
import com.ivy.common.androidtest.test_data.saveAccountWithTransactions
import com.ivy.common.androidtest.test_data.transactionWithTime
import com.ivy.core.persistence.entity.trn.data.TrnTimeType
import com.ivy.data.transaction.TransactionType
import com.ivy.navigation.Navigator
import com.ivy.navigation.destinations.main.Home
import com.ivy.wallet.ui.RootActivity
Expand All @@ -17,6 +19,7 @@ import org.junit.Rule
import org.junit.Test
import java.time.Instant
import java.time.LocalDate
import java.time.ZoneId
import javax.inject.Inject

@HiltAndroidTest
Expand Down Expand Up @@ -59,4 +62,29 @@ class HomeScreenTest: IvyAndroidTest() {
.assertTransactionIsDisplayed("Transaction3")
}

@Test
fun testGetOverdueTransaction_turnsIntoNormalTransaction() = runBlocking<Unit> {
val date = LocalDate.of(2023, 7, 15)
setDate(date)
val dueTransaction = transactionWithTime(
time = date
.minusDays(1) // Make due
.atStartOfDay()
.atZone(ZoneId.systemDefault())
.toInstant()
).copy(
type = TransactionType.Income,
timeType = TrnTimeType.Due,
amount = 5.5
)
db.saveAccountWithTransactions(transactions = listOf(dueTransaction))

HomeScreenRobot(composeRule)
.navigateTo(navigator)
.openOverdue()
.clickGet()
.assertTransactionIsDisplayed(dueTransaction.title!!)
.assertBalanceIsDisplayed(dueTransaction.amount, dueTransaction.currency)
}

}

0 comments on commit 5a355f0

Please sign in to comment.