Fix up network module tests (#48160)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/48160

Shift to mockito-kotlin and fix ReactCookieJarContainerTest so it's not just testing a mock.

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D66898956

fbshipit-source-id: 5ccc652b86e5a80b81d257d3ec645d7bc813301b
This commit is contained in:
Thomas Nardone
2024-12-16 13:00:50 -08:00
committed by Facebook GitHub Bot
parent 1cbda5f64e
commit 3960a2dd8c
2 changed files with 20 additions and 22 deletions
@@ -13,17 +13,11 @@ import okhttp3.HttpUrl
import org.assertj.core.api.Assertions.assertThat
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.any
import org.mockito.Mockito.mock
import org.mockito.Mockito.`when` as whenever
import org.mockito.kotlin.any
import org.mockito.kotlin.mock
import org.mockito.kotlin.whenever
import org.robolectric.RobolectricTestRunner
/**
* Returns Mockito.any() as nullable type to avoid java.lang.IllegalStateException when null is
* returned.
*/
private fun <T> nonNullAny(type: Class<T>): T = any(type)
/** Tests for {@link NetworkingModule}. */
@RunWith(RobolectricTestRunner::class)
class ReactCookieJarContainerTest {
@@ -31,25 +25,26 @@ class ReactCookieJarContainerTest {
@Test
fun testMissingJar() {
val jarContainer: ReactCookieJarContainer = mock(ReactCookieJarContainer::class.java)
val jarContainer = ReactCookieJarContainer()
assertThat(jarContainer.loadForRequest(httpUrl).size).isEqualTo(0)
}
@Test
fun testEmptyCookies() {
val jarContainer: ReactCookieJarContainer = mock(ReactCookieJarContainer::class.java)
val cookies: List<Cookie> = emptyList()
whenever(jarContainer.loadForRequest(nonNullAny(HttpUrl::class.java))).thenReturn(cookies)
val jarContainer = ReactCookieJarContainer()
val cookieJar = mock<CookieJar>()
jarContainer.setCookieJar(cookieJar)
whenever(cookieJar.loadForRequest(any())).thenReturn(emptyList())
assertThat(jarContainer.loadForRequest(httpUrl).size).isEqualTo(0)
}
@Test
fun testValidCookies() {
val jarContainer = ReactCookieJarContainer()
val cookieJar: CookieJar = mock(CookieJar::class.java)
val cookieJar = mock<CookieJar>()
jarContainer.setCookieJar(cookieJar)
val cookies: MutableList<Cookie> = mutableListOf()
cookies.add(Cookie.Builder().name("valid").value("valid value").domain("domain").build())
val cookies =
listOf(Cookie.Builder().name("valid").value("valid value").domain("domain").build())
whenever(cookieJar.loadForRequest(httpUrl)).thenReturn(cookies)
assertThat(jarContainer.loadForRequest(httpUrl).size).isEqualTo(1)
}
@@ -57,10 +52,10 @@ class ReactCookieJarContainerTest {
@Test
fun testInvalidCookies() {
val jarContainer = ReactCookieJarContainer()
val cookieJar: CookieJar = mock(CookieJar::class.java)
val cookieJar = mock<CookieJar>()
jarContainer.setCookieJar(cookieJar)
val cookies: MutableList<Cookie> = mutableListOf()
cookies.add(Cookie.Builder().name("valid").value("înválíd välūė").domain("domain").build())
val cookies =
listOf(Cookie.Builder().name("valid").value("înválíd välūė").domain("domain").build())
whenever(cookieJar.loadForRequest(httpUrl)).thenReturn(cookies)
assertThat(jarContainer.loadForRequest(httpUrl).size).isEqualTo(0)
}
@@ -20,8 +20,11 @@ import org.junit.Before
import org.junit.Test
import org.mockito.ArgumentCaptor
import org.mockito.MockedStatic
import org.mockito.Mockito.*
import org.mockito.Mockito.mockStatic
import org.mockito.kotlin.any
import org.mockito.kotlin.mock
import org.mockito.kotlin.never
import org.mockito.kotlin.verify
class ResponseUtilTest {
private lateinit var reactContext: ReactApplicationContext
@@ -29,7 +32,7 @@ class ResponseUtilTest {
@Before
fun setUp() {
reactContext = mock(ReactApplicationContext::class.java)
reactContext = mock()
arguments = mockStatic(Arguments::class.java)
arguments.`when`<WritableArray>(Arguments::createArray).thenAnswer { JavaOnlyArray() }
@@ -247,6 +250,6 @@ class ResponseUtilTest {
ResponseUtil.onRequestSuccess(null, 1)
ResponseUtil.onResponseReceived(null, 1, 200, Arguments.createMap(), "http://example.com")
verify(reactContext, never()).emitDeviceEvent(anyString(), any())
verify(reactContext, never()).emitDeviceEvent(any<String>(), any())
}
}