@@ -3,8 +3,6 @@ package com.segment.analytics.destinations.plugins
3
3
import android.app.Application
4
4
import android.util.Log
5
5
import com.segment.analytics.kotlin.core.*
6
- import com.segment.analytics.kotlin.core.platform.Plugin
7
- import com.segment.analytics.kotlin.core.utilities.getString
8
6
import io.intercom.android.sdk.Company
9
7
import io.intercom.android.sdk.Intercom
10
8
import io.intercom.android.sdk.UserAttributes
@@ -15,9 +13,11 @@ import kotlinx.coroutines.CoroutineDispatcher
15
13
import kotlinx.coroutines.CoroutineScope
16
14
import kotlinx.coroutines.test.TestCoroutineDispatcher
17
15
import kotlinx.coroutines.test.TestCoroutineScope
18
- import kotlinx.serialization.json.*
16
+ import kotlinx.serialization.json.JsonObject
17
+ import kotlinx.serialization.json.buildJsonObject
18
+ import kotlinx.serialization.json.put
19
+ import kotlinx.serialization.json.putJsonObject
19
20
import org.junit.jupiter.api.Assertions.assertEquals
20
- import org.junit.jupiter.api.Assertions.assertNotNull
21
21
import org.junit.jupiter.api.BeforeEach
22
22
import org.junit.jupiter.api.Test
23
23
import java.io.ByteArrayInputStream
@@ -77,35 +77,30 @@ internal class IntercomDestinationTest {
77
77
@BeforeEach
78
78
internal fun setUp () {
79
79
analytics = Analytics (configuration)
80
- intercomDestination = spyk( IntercomDestination (application) )
80
+ intercomDestination = IntercomDestination (application)
81
81
}
82
82
83
83
@Test
84
84
fun `intercom client initialized when settings is updated` () {
85
- val settings = slot<Settings >()
85
+ val mobileApiKey = slot<String >()
86
+ val appId = slot<String >()
86
87
87
88
analytics.add(intercomDestination)
88
89
89
90
verify {
90
- intercomDestination.update(capture(settings), Plugin .UpdateType .Initial )
91
- Intercom .initialize(any(), any(), any())
91
+ Intercom .initialize(any(), capture(mobileApiKey), capture(appId))
92
92
Intercom .client()
93
93
}
94
94
assertEquals(intercom, intercomDestination.intercom)
95
- with (settings.captured) {
96
- val integration = this .integrations[intercomDestination.key]?.jsonObject
97
- assertNotNull(integration)
98
- assertEquals(" android_sdk-4c2bc22f45f0f20629d4a70c3bb803845039800b" , integration?.getString(" mobileApiKey" ))
99
- assertEquals(" qe2y1u8q" , integration?.getString(" appId" ))
100
- }
95
+ assertEquals(" android_sdk-4c2bc22f45f0f20629d4a70c3bb803845039800b" , mobileApiKey.captured)
96
+ assertEquals(" qe2y1u8q" , appId.captured)
101
97
}
102
98
103
99
@Test
104
100
fun `intercom client not re-initialized when settings is fresh` () {
105
101
analytics.add(intercomDestination)
106
102
analytics.checkSettings()
107
103
verify (exactly = 1 ) {
108
- intercomDestination.update(any(), Plugin .UpdateType .Initial )
109
104
Intercom .initialize(any(), any(), any())
110
105
Intercom .client()
111
106
}
0 commit comments