11package com.woocommerce.android.support
22
3+ import com.woocommerce.android.applicationpasswords.IsAppPasswordsSupportedForJetpackSite
34import com.woocommerce.android.support.help.HelpOrigin
45import com.woocommerce.android.support.zendesk.TicketCustomField
56import com.woocommerce.android.support.zendesk.TicketType
@@ -25,6 +26,7 @@ import org.junit.Test
2526import org.mockito.kotlin.any
2627import org.mockito.kotlin.argumentCaptor
2728import org.mockito.kotlin.doReturn
29+ import org.mockito.kotlin.given
2830import org.mockito.kotlin.mock
2931import org.mockito.kotlin.stub
3032import 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