Skip to content

Commit c2b95b7

Browse files
Add a test case
1 parent 7f7d576 commit c2b95b7

File tree

1 file changed

+38
-2
lines changed

1 file changed

+38
-2
lines changed

WooCommerce/src/test/kotlin/com/woocommerce/android/support/ZendeskTicketRepositoryTest.kt

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.woocommerce.android.support
22

3+
import com.woocommerce.android.applicationpasswords.IsAppPasswordsSupportedForJetpackSite
34
import com.woocommerce.android.support.help.HelpOrigin
45
import com.woocommerce.android.support.zendesk.TicketCustomField
56
import com.woocommerce.android.support.zendesk.TicketType
@@ -25,6 +26,7 @@ import org.junit.Test
2526
import org.mockito.kotlin.any
2627
import org.mockito.kotlin.argumentCaptor
2728
import org.mockito.kotlin.doReturn
29+
import org.mockito.kotlin.given
2830
import org.mockito.kotlin.mock
2931
import org.mockito.kotlin.stub
3032
import org.mockito.kotlin.verify
@@ -46,7 +48,10 @@ internal class ZendeskTicketRepositoryTest : BaseUnitTest() {
4648
private lateinit var requestProvider: RequestProvider
4749
private lateinit var envDataSource: ZendeskEnvironmentDataSource
4850
private lateinit var siteStore: SiteStore
49-
private val ssrFetcher: WCSSRModelCachingFetcher = mock()
51+
private val ssrFetcher: WCSSRModelCachingFetcher = mock {
52+
onBlocking { load(any()) } doReturn WooResult(model = null)
53+
}
54+
private val isAppPasswordsSupportedForJetpackSite: IsAppPasswordsSupportedForJetpackSite = mock()
5055

5156
@Before
5257
fun setup() {
@@ -693,14 +698,45 @@ internal class ZendeskTicketRepositoryTest : BaseUnitTest() {
693698
}
694699
}
695700

701+
@Test
702+
fun `given jetpack site supports app passwords, when creating the request, then include corresponding tag`() =
703+
testBlocking {
704+
val site = SiteModel().apply {
705+
origin = SiteModel.ORIGIN_WPCOM_REST
706+
setIsJetpackConnected(true)
707+
}
708+
given(isAppPasswordsSupportedForJetpackSite.invoke(site)).willReturn(true)
709+
710+
val captor = argumentCaptor<CreateRequest>()
711+
createSUT()
712+
713+
// when
714+
sut.createRequest(
715+
context = mock(),
716+
origin = HelpOrigin.LOGIN_HELP_NOTIFICATION,
717+
ticketType = TicketType.MobileApp,
718+
selectedSite = site,
719+
subject = "subject",
720+
description = "description",
721+
extraTags = emptyList(),
722+
siteAddress = "siteAddress"
723+
).first()
724+
725+
// then
726+
verify(requestProvider).createRequest(captor.capture(), any())
727+
val tags = captor.firstValue.tags
728+
assertThat(tags).contains(ZendeskTags.jetpackSiteUsingAppPasswords)
729+
}
730+
696731
private fun createSUT() {
697732
sut = ZendeskTicketRepository(
698733
zendeskSettings = zendeskSettings,
699734
envDataSource = envDataSource,
700735
siteStore = siteStore,
701736
dispatchers = coroutinesTestRule.testDispatchers,
702737
mock(),
703-
ssrFetcher
738+
ssrFetcher,
739+
isAppPasswordsSupportedForJetpackSite = isAppPasswordsSupportedForJetpackSite
704740
)
705741
}
706742

0 commit comments

Comments
 (0)