Skip to content

Commit

Permalink
Add unit tests for new logic
Browse files Browse the repository at this point in the history
  • Loading branch information
JorgeMucientes committed Oct 1, 2024
1 parent 9f3558a commit f9c4914
Showing 1 changed file with 42 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,17 @@ class BlazeCampaignCreationPreviewViewModelTests : BaseUnitTest() {
.isEqualTo(defaultCampaignDetails.destinationParameters.targetUrl)
}

@Test
fun `when screen is opened, then fetch objectives`() = testBlocking {
setup {
whenever(blazeRepository.fetchObjectives()).doReturn(Result.success(Unit))
}

advanceUntilIdle()

verify(blazeRepository).fetchObjectives()
}

@Test
fun `when tapping on edit ad, then open edit ad screen`() = testBlocking {
setup()
Expand Down Expand Up @@ -477,14 +488,44 @@ class BlazeCampaignCreationPreviewViewModelTests : BaseUnitTest() {
assertThat(event).isInstanceOf(BlazeCampaignCreationPreviewViewModel.NavigateToEditAdScreen::class.java)
}

@Test
fun `given objective is missing, when tapping on confirm, then show a dialog`() = testBlocking {
setup {
whenever(blazeRepository.generateDefaultCampaignDetails(PRODUCT_ID)).doReturn(
defaultCampaignDetails.copy(
campaignImage = BlazeCampaignImage.LocalImage("image"),
tagLine = "tagline",
description = "description",
objectiveId = ""
)
)
}

val state = viewModel.viewState.runAndCaptureValues {
viewModel.onConfirmClicked()
}.last()

assertThat(state.dialogState).isNotNull
assertThat(state.dialogState!!.message).isEqualTo(
UiString.UiStringRes(R.string.blaze_campaign_preview_missing_objective_dialog_text)
)
assertThat(state.dialogState!!.positiveButton!!.text).isEqualTo(
UiString.UiStringRes(R.string.blaze_campaign_preview_missing_objective_dialog_positive_button)
)
assertThat(state.dialogState!!.negativeButton!!.text).isEqualTo(
UiString.UiStringRes(R.string.cancel)
)
}

@Test
fun `given campaign requirements met, when tapping on confirm, then open payment summary`() = testBlocking {
setup {
whenever(blazeRepository.generateDefaultCampaignDetails(PRODUCT_ID)).doReturn(
defaultCampaignDetails.copy(
campaignImage = BlazeCampaignImage.LocalImage("image"),
tagLine = "tagline",
description = "description"
description = "description",
objectiveId = "sales"
)
)
}
Expand Down

0 comments on commit f9c4914

Please sign in to comment.