Skip to content

Commit 48ac644

Browse files
committed
add linux version & test
1 parent 5c1f8b3 commit 48ac644

File tree

17 files changed

+88
-21
lines changed

17 files changed

+88
-21
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.github.jan.supabase
22

3-
internal actual fun getOSInformation(): OSInformation = OSInformation(
3+
internal actual fun getOSInformation(): OSInformation? = OSInformation(
44
name = "Android",
55
version = android.os.Build.VERSION.RELEASE
66
)

Supabase/src/commonMain/kotlin/io/github/jan/supabase/PlatformTarget.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ enum class PlatformTarget {
1010
JVM, ANDROID, JS, WASM_JS, IOS, WINDOWS, MACOS, TVOS, WATCHOS, LINUX;
1111
}
1212

13-
internal data class OSInformation(
13+
data class OSInformation(
1414
val name: String,
1515
val version: String
1616
) {
@@ -38,4 +38,4 @@ expect val CurrentPlatformTarget: PlatformTarget
3838
/**
3939
* The current operating system information
4040
*/
41-
internal expect fun getOSInformation(): OSInformation
41+
internal expect fun getOSInformation(): OSInformation?

Supabase/src/commonMain/kotlin/io/github/jan/supabase/SupabaseClient.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ internal class SupabaseClientImpl(
119119
supabaseKey,
120120
config.networkConfig.httpConfigOverrides,
121121
config.networkConfig.requestTimeout.inWholeMilliseconds,
122-
config.networkConfig.httpEngine
122+
config.networkConfig.httpEngine,
123+
config.osInformation
123124
)
124125

125126
override val pluginManager = PluginManager(config.plugins.toList().associate { (key, value) ->

Supabase/src/commonMain/kotlin/io/github/jan/supabase/SupabaseClientBuilder.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ class SupabaseClientBuilder @PublishedApi internal constructor(private val supab
9090
*/
9191
var accessToken: AccessTokenProvider? = null
9292

93+
/**
94+
* The current operating system information.
95+
*/
96+
var osInformation: OSInformation? = OSInformation.CURRENT
97+
9398
private val httpConfigOverrides = mutableListOf<HttpConfigOverride>()
9499
private val plugins = mutableMapOf<String, PluginProvider>()
95100

@@ -124,7 +129,8 @@ class SupabaseClientBuilder @PublishedApi internal constructor(private val supab
124129
defaultSerializer = defaultSerializer,
125130
coroutineDispatcher = coroutineDispatcher,
126131
accessToken = accessToken,
127-
plugins = plugins
132+
plugins = plugins,
133+
osInformation = osInformation
128134
)
129135
return SupabaseClientImpl(
130136
config

Supabase/src/commonMain/kotlin/io/github/jan/supabase/SupabaseClientConfig.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ internal data class SupabaseClientConfig(
1313
val defaultSerializer: SupabaseSerializer,
1414
val coroutineDispatcher: CoroutineDispatcher,
1515
val accessToken: AccessTokenProvider?,
16-
val plugins: Map<String, PluginProvider>
16+
val plugins: Map<String, PluginProvider>,
17+
val osInformation: OSInformation?
1718
)
1819

1920
internal data class SupabaseNetworkConfig(

Supabase/src/commonMain/kotlin/io/github/jan/supabase/network/KtorSupabaseHttpClient.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ class KtorSupabaseHttpClient @SupabaseInternal constructor(
4343
private val supabaseKey: String,
4444
modifiers: List<HttpClientConfig<*>.() -> Unit> = listOf(),
4545
private val requestTimeout: Long,
46-
engine: HttpClientEngine? = null
46+
engine: HttpClientEngine? = null,
47+
private val osInformation: OSInformation?
4748
): SupabaseHttpClient() {
4849

4950
init {
@@ -112,7 +113,7 @@ class KtorSupabaseHttpClient @SupabaseInternal constructor(
112113
append("apikey", supabaseKey)
113114
}
114115
append("X-Client-Info", "supabase-kt/${BuildConfig.PROJECT_VERSION}")
115-
OSInformation.CURRENT?.let {
116+
osInformation?.let {
116117
append("X-Supabase-Client-Platform", it.name)
117118
append("X-Supabase-Client-Platform-Version", it.version)
118119
}

Supabase/src/iosMain/kotlin/io/github/jan/supabase/PlatformTarget.ios.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.github.jan.supabase
22

33
import io.supabase.supabase.getOSVersion
44

5-
internal actual fun getOSInformation(): OSInformation = OSInformation(
5+
internal actual fun getOSInformation(): OSInformation? = OSInformation(
66
name = "iOS",
77
version = getOSVersion()
88
)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
package io.github.jan.supabase
22

3-
internal actual fun getOSInformation(): OSInformation = TODO("")
3+
internal actual fun getOSInformation(): OSInformation? = null
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package io.github.jan.supabase
22

3-
internal actual fun getOSInformation(): OSInformation = OSInformation(
3+
internal actual fun getOSInformation(): OSInformation? = OSInformation(
44
name = System.getProperty("os.name"),
55
version = System.getProperty("os.version")
66
)

Supabase/src/jvmTest/kotlin/PlatformTargetTest.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import io.github.jan.supabase.CurrentPlatformTarget
22
import io.github.jan.supabase.PlatformTarget
3+
import io.github.jan.supabase.getOSInformation
34
import kotlin.test.Test
45
import kotlin.test.assertEquals
56

@@ -10,4 +11,13 @@ actual class PlatformTargetTest {
1011
assertEquals(PlatformTarget.JVM, CurrentPlatformTarget, "The current platform target should be DESKTOP")
1112
}
1213

14+
@Test
15+
fun testGetOSInformation() {
16+
System.setProperty("os.name", "Linux")
17+
System.setProperty("os.version", "5.4.0")
18+
val osInfo = getOSInformation()
19+
assertEquals("Linux", osInfo?.name, "OS name should be Linux")
20+
assertEquals("5.4.0", osInfo?.version, "OS version should be 5.4.0")
21+
}
22+
1323
}

0 commit comments

Comments
 (0)