Skip to content

Commit

Permalink
Fixed and added tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kidinov committed Jan 29, 2024
1 parent c537a9d commit 3821eb7
Showing 1 changed file with 39 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import com.woocommerce.android.ui.payments.tracking.PaymentsFlowTracker
import com.woocommerce.android.ui.products.ProductDetailRepository
import com.woocommerce.android.ui.products.addons.AddonRepository
import com.woocommerce.android.util.ContinuationWrapper
import com.woocommerce.android.util.captureValues
import com.woocommerce.android.viewmodel.BaseUnitTest
import com.woocommerce.android.viewmodel.MultiLiveEvent.Event.ShowSnackbar
import com.woocommerce.android.viewmodel.MultiLiveEvent.Event.ShowUndoSnackbar
Expand Down Expand Up @@ -326,7 +327,7 @@ class OrderDetailViewModelTest : BaseUnitTest() {
}

@Test
fun `given receipt is available and order is paid, when view model started, then state with receipt isReceiptButtonsVisible true emitted`() =
fun `given receipt is available and order is paid, when view model started, then state with receipt is visible emitted`() =
testBlocking {
// GIVEN
whenever(paymentReceiptHelper.isReceiptAvailable(any())).thenReturn(true)
Expand All @@ -350,11 +351,13 @@ class OrderDetailViewModelTest : BaseUnitTest() {
viewModel.start()

// THEN
assertThat(detailViewState!!.orderInfo!!.isReceiptButtonsVisible).isTrue()
assertThat(detailViewState!!.orderInfo!!.receiptButtonStatus).isEqualTo(
OrderDetailViewState.ReceiptButtonStatus.Visible
)
}

@Test
fun `given receipt is available and order not paid, when view model started, then state with receipt isReceiptButtonsVisible false emitted`() =
fun `given receipt is available and order not paid, when view model started, then state with receipt is hidden emitted`() =
testBlocking {
// GIVEN
whenever(paymentReceiptHelper.isReceiptAvailable(any())).thenReturn(true)
Expand All @@ -378,11 +381,13 @@ class OrderDetailViewModelTest : BaseUnitTest() {
viewModel.start()

// THEN
assertThat(detailViewState!!.orderInfo!!.isReceiptButtonsVisible).isFalse()
assertThat(detailViewState!!.orderInfo!!.receiptButtonStatus).isEqualTo(
OrderDetailViewState.ReceiptButtonStatus.Hidden
)
}

@Test
fun `given receipt is not available, when view model started, then state with receipt isReceiptButtonsVisible false emitted`() =
fun `given receipt is not available, when view model started, then state with receipt is hidden emitted`() =
testBlocking {
// GIVEN
whenever(paymentReceiptHelper.isReceiptAvailable(any())).thenReturn(false)
Expand All @@ -402,7 +407,9 @@ class OrderDetailViewModelTest : BaseUnitTest() {
viewModel.start()

// THEN
assertThat(detailViewState!!.orderInfo!!.isReceiptButtonsVisible).isFalse()
assertThat(detailViewState!!.orderInfo!!.receiptButtonStatus).isEqualTo(
OrderDetailViewState.ReceiptButtonStatus.Hidden
)
}

@Test
Expand Down Expand Up @@ -1275,6 +1282,32 @@ class OrderDetailViewModelTest : BaseUnitTest() {
assertThat((viewModel.event.value as PreviewReceipt).billingEmail).isEqualTo(order.billingAddress.email)
}

@Test
fun `when onSeeReceiptClicked clicked, then loading receipt status emitted`() =
testBlocking {
// GIVEN
whenever(orderDetailRepository.getOrderById(any())).thenReturn(order)
whenever(orderDetailRepository.fetchOrderNotes(any())).thenReturn(false)
whenever(addonsRepository.containsAddonsFrom(any())).thenReturn(false)
val receiptUrl = "https://example.com"
whenever(paymentReceiptHelper.getReceiptUrl(order.id)).thenReturn(Result.success(receiptUrl))

// WHEN
viewModel.start()

val states = viewModel.viewStateData.liveData.captureValues()

viewModel.onSeeReceiptClicked()

// THEN
assertThat((states.last()).orderInfo!!.receiptButtonStatus).isEqualTo(
OrderDetailViewState.ReceiptButtonStatus.Visible
)
assertThat((states[states.size - 2]).orderInfo!!.receiptButtonStatus).isEqualTo(
OrderDetailViewState.ReceiptButtonStatus.Loading
)
}

@Test
fun `given order is paid, when status is processing order complete button should be visible`() =
testBlocking {
Expand Down

0 comments on commit 3821eb7

Please sign in to comment.