@@ -5,6 +5,7 @@ import com.duckduckgo.common.test.CoroutineTestRule
5
5
import com.duckduckgo.js.messaging.api.JsCallbackData
6
6
import com.duckduckgo.subscriptions.api.SubscriptionStatus.AUTO_RENEWABLE
7
7
import com.duckduckgo.subscriptions.api.SubscriptionStatus.EXPIRED
8
+ import com.duckduckgo.subscriptions.impl.AccessTokenResult
8
9
import com.duckduckgo.subscriptions.impl.SubscriptionsConstants
9
10
import com.duckduckgo.subscriptions.impl.SubscriptionsConstants.MONTHLY
10
11
import com.duckduckgo.subscriptions.impl.SubscriptionsConstants.YEARLY
@@ -20,6 +21,7 @@ import org.junit.Test
20
21
import org.junit.runner.RunWith
21
22
import org.mockito.kotlin.mock
22
23
import org.mockito.kotlin.whenever
24
+ import org.robolectric.RobolectricTestRunner
23
25
24
26
@RunWith(AndroidJUnit4 ::class )
25
27
class RealSubscriptionsJSHelperTest {
@@ -168,4 +170,45 @@ class RealSubscriptionsJSHelperTest {
168
170
assertEquals(expected.featureName, result.featureName)
169
171
assertEquals(expected.params.toString(), result.params.toString())
170
172
}
173
+
174
+ @Test
175
+ fun whenGetAuthAccessTokenRequestWithSuccessfulTokenThenReturnJsCallbackDataWithToken () = runTest {
176
+ val method = " getAuthAccessToken"
177
+ val id = " 123"
178
+ val expectedToken = " test-access-token"
179
+
180
+ whenever(mockSubscriptionsManager.getAccessToken()).thenReturn(AccessTokenResult .Success (expectedToken))
181
+
182
+ val result = testee.processJsCallbackMessage(featureName, method, id, null )
183
+
184
+ val jsonPayload = JSONObject ().apply {
185
+ put(" accessToken" , expectedToken)
186
+ }
187
+
188
+ val expected = JsCallbackData (jsonPayload, featureName, method, id)
189
+
190
+ assertEquals(expected.id, result?.id)
191
+ assertEquals(expected.featureName, result?.featureName)
192
+ assertEquals(expected.method, result?.method)
193
+ assertEquals(expected.params.toString(), result?.params.toString())
194
+ }
195
+
196
+ @Test
197
+ fun whenGetAuthAccessTokenRequestWithFailedTokenThenReturnJsCallbackDataWithEmptyObject () = runTest {
198
+ val method = " getAuthAccessToken"
199
+ val id = " 123"
200
+
201
+ whenever(mockSubscriptionsManager.getAccessToken()).thenReturn(AccessTokenResult .Failure (" Token not found" ))
202
+
203
+ val result = testee.processJsCallbackMessage(featureName, method, id, null )
204
+
205
+ val jsonPayload = JSONObject ()
206
+
207
+ val expected = JsCallbackData (jsonPayload, featureName, method, id)
208
+
209
+ assertEquals(expected.id, result?.id)
210
+ assertEquals(expected.featureName, result?.featureName)
211
+ assertEquals(expected.method, result?.method)
212
+ assertEquals(expected.params.toString(), result?.params.toString())
213
+ }
171
214
}
0 commit comments