Merge pull request #117 from kirmanak/base-url-fix
Fix ignoring port in server URLs
This commit is contained in:
@@ -14,8 +14,8 @@ import javax.inject.Singleton
|
|||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
class BaseUrlInterceptor @Inject constructor(
|
class BaseUrlInterceptor @Inject constructor(
|
||||||
private val serverUrlProviderProvider: Provider<ServerUrlProvider>,
|
|
||||||
private val logger: Logger,
|
private val logger: Logger,
|
||||||
|
private val serverUrlProviderProvider: Provider<ServerUrlProvider>,
|
||||||
) : LocalInterceptor {
|
) : LocalInterceptor {
|
||||||
|
|
||||||
private val serverUrlProvider: ServerUrlProvider
|
private val serverUrlProvider: ServerUrlProvider
|
||||||
@@ -29,6 +29,7 @@ class BaseUrlInterceptor @Inject constructor(
|
|||||||
.newBuilder()
|
.newBuilder()
|
||||||
.host(baseUrl.host)
|
.host(baseUrl.host)
|
||||||
.scheme(baseUrl.scheme)
|
.scheme(baseUrl.scheme)
|
||||||
|
.port(baseUrl.port)
|
||||||
.build()
|
.build()
|
||||||
val newRequest = oldRequest.newBuilder().url(correctUrl).build()
|
val newRequest = oldRequest.newBuilder().url(correctUrl).build()
|
||||||
logger.d { "Replaced ${oldRequest.url} with ${newRequest.url}" }
|
logger.d { "Replaced ${oldRequest.url} with ${newRequest.url}" }
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package gq.kirmanak.mealient.datasource.impl
|
||||||
|
|
||||||
|
import com.google.common.truth.Truth.assertThat
|
||||||
|
import gq.kirmanak.mealient.datasource.ServerUrlProvider
|
||||||
|
import gq.kirmanak.mealient.test.BaseUnitTest
|
||||||
|
import io.mockk.coEvery
|
||||||
|
import io.mockk.every
|
||||||
|
import io.mockk.impl.annotations.MockK
|
||||||
|
import io.mockk.mockk
|
||||||
|
import io.mockk.slot
|
||||||
|
import okhttp3.Interceptor
|
||||||
|
import okhttp3.Request
|
||||||
|
import org.junit.Before
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class BaseUrlInterceptorTest : BaseUnitTest() {
|
||||||
|
|
||||||
|
private lateinit var subject: Interceptor
|
||||||
|
|
||||||
|
@MockK
|
||||||
|
lateinit var serverUrlProvider: ServerUrlProvider
|
||||||
|
|
||||||
|
@MockK(relaxUnitFun = true)
|
||||||
|
lateinit var chain: Interceptor.Chain
|
||||||
|
|
||||||
|
@Before
|
||||||
|
override fun setUp() {
|
||||||
|
super.setUp()
|
||||||
|
subject = BaseUrlInterceptor(logger) { serverUrlProvider }
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `when intercept is called expect it changes the url`() {
|
||||||
|
val requestSlot = slot<Request>()
|
||||||
|
every { chain.proceed(capture(requestSlot)) } returns mockk()
|
||||||
|
every { chain.request() } returns buildRequest()
|
||||||
|
coEvery { serverUrlProvider.getUrl() } returns "https://mealie:3241/"
|
||||||
|
subject.intercept(chain)
|
||||||
|
assertThat(requestSlot.captured.url.toString()).isEqualTo("https://mealie:3241/")
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun buildRequest(
|
||||||
|
url: String = "http://localhost",
|
||||||
|
) = Request.Builder().apply {
|
||||||
|
url(url)
|
||||||
|
}.build()
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user