From 41822ee09281bb1d523b4bc6ff2074c12a1fa778 Mon Sep 17 00:00:00 2001 From: Andrew Reed Date: Tue, 13 Jun 2023 18:03:32 +0100 Subject: [PATCH 1/4] Changes to new android source layout --- build.gradle.kts | 11 +-- .../kotlin/dev/gitlive/firebase/firebase.kt | 12 --- firebase-auth/build.gradle.kts | 4 +- .../androidAndroidTest/AndroidManifest.xml | 5 -- .../kotlin/dev/gitlive/firebase/auth/auth.kt | 14 ---- firebase-common/build.gradle.kts | 2 +- firebase-config/build.gradle.kts | 2 +- .../firebase/remoteconfig/RemoteConfig.kt | 12 --- firebase-crashlytics/build.gradle.kts | 4 +- .../androidAndroidTest/AndroidManifest.xml | 5 -- .../firebase/crashlytics/crashlytics.kt | 15 ---- .../androidAndroidTest/res/values/strings.xml | 3 - .../dev/gitlive/firebase/database/database.kt | 13 --- firebase-firestore/build.gradle.kts | 4 +- .../androidAndroidTest/AndroidManifest.xml | 5 -- .../gitlive/firebase/firestore/firestore.kt | 16 ---- firebase-perf/build.gradle.kts | 4 +- .../androidAndroidTest/AndroidManifest.xml | 5 -- .../gitlive/firebase/perf/metrics/Trace.kt | 81 ------------------- .../dev/gitlive/firebase/perf/performance.kt | 15 ---- gradle.properties | 2 + 21 files changed, 18 insertions(+), 216 deletions(-) delete mode 100644 firebase-app/src/androidAndroidTest/kotlin/dev/gitlive/firebase/firebase.kt delete mode 100644 firebase-auth/src/androidAndroidTest/AndroidManifest.xml delete mode 100644 firebase-auth/src/androidAndroidTest/kotlin/dev/gitlive/firebase/auth/auth.kt delete mode 100644 firebase-config/src/androidAndroidTest/kotlin/dev/gitlive/firebase/remoteconfig/RemoteConfig.kt delete mode 100644 firebase-crashlytics/src/androidAndroidTest/AndroidManifest.xml delete mode 100644 firebase-crashlytics/src/androidAndroidTest/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt delete mode 100644 firebase-crashlytics/src/androidAndroidTest/res/values/strings.xml delete mode 100644 firebase-database/src/androidAndroidTest/kotlin/dev/gitlive/firebase/database/database.kt delete mode 100644 firebase-firestore/src/androidAndroidTest/AndroidManifest.xml delete mode 100644 firebase-firestore/src/androidAndroidTest/kotlin/dev/gitlive/firebase/firestore/firestore.kt delete mode 100644 firebase-perf/src/androidAndroidTest/AndroidManifest.xml delete mode 100644 firebase-perf/src/androidAndroidTest/kotlin/dev/gitlive/firebase/perf/metrics/Trace.kt delete mode 100644 firebase-perf/src/androidAndroidTest/kotlin/dev/gitlive/firebase/perf/performance.kt diff --git a/build.gradle.kts b/build.gradle.kts index 8e19e4f55..50a94120b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -176,11 +176,12 @@ subprojects { if (this@afterEvaluate.name != "firebase-crashlytics") { "jsTestImplementation"(kotlin("test-js")) } - "androidAndroidTestImplementation"(kotlin("test-junit")) - "androidAndroidTestImplementation"("junit:junit:4.13.2") - "androidAndroidTestImplementation"("androidx.test:core:1.4.0") - "androidAndroidTestImplementation"("androidx.test.ext:junit:1.1.3") - "androidAndroidTestImplementation"("androidx.test:runner:1.4.0") + "androidUnitTestImplementation"(kotlin("test-junit")) + "androidInstrumentedTestImplementation"(kotlin("test-junit")) + "androidInstrumentedTestImplementation"("junit:junit:4.13.2") + "androidInstrumentedTestImplementation"("androidx.test:core:1.4.0") + "androidInstrumentedTestImplementation"("androidx.test.ext:junit:1.1.3") + "androidInstrumentedTestImplementation"("androidx.test:runner:1.4.0") } } diff --git a/firebase-app/src/androidAndroidTest/kotlin/dev/gitlive/firebase/firebase.kt b/firebase-app/src/androidAndroidTest/kotlin/dev/gitlive/firebase/firebase.kt deleted file mode 100644 index 10402d8f0..000000000 --- a/firebase-app/src/androidAndroidTest/kotlin/dev/gitlive/firebase/firebase.kt +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:JvmName("tests") -package dev.gitlive.firebase - -import androidx.test.platform.app.InstrumentationRegistry - -actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext - -actual fun runTest(test: suspend () -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/firebase-auth/build.gradle.kts b/firebase-auth/build.gradle.kts index 2b1e440ec..2ab3f2a30 100644 --- a/firebase-auth/build.gradle.kts +++ b/firebase-auth/build.gradle.kts @@ -36,8 +36,8 @@ android { manifest.srcFile("src/androidMain/AndroidManifest.xml") } getByName("androidTest"){ - java.srcDir(file("src/androidAndroidTest/kotlin")) - manifest.srcFile("src/androidAndroidTest/AndroidManifest.xml") + java.srcDir(file("src/androidInstrumentedTest/kotlin")) + manifest.srcFile("src/androidInstrumentedTest/AndroidManifest.xml") } } testOptions { diff --git a/firebase-auth/src/androidAndroidTest/AndroidManifest.xml b/firebase-auth/src/androidAndroidTest/AndroidManifest.xml deleted file mode 100644 index 22ae9ef69..000000000 --- a/firebase-auth/src/androidAndroidTest/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/firebase-auth/src/androidAndroidTest/kotlin/dev/gitlive/firebase/auth/auth.kt b/firebase-auth/src/androidAndroidTest/kotlin/dev/gitlive/firebase/auth/auth.kt deleted file mode 100644 index 5aff507e9..000000000 --- a/firebase-auth/src/androidAndroidTest/kotlin/dev/gitlive/firebase/auth/auth.kt +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:JvmName("tests") -package dev.gitlive.firebase.auth - -import androidx.test.platform.app.InstrumentationRegistry - -actual val emulatorHost: String = "10.0.2.2" - -actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext - -actual fun runTest(test: suspend () -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/firebase-common/build.gradle.kts b/firebase-common/build.gradle.kts index b0d27b29a..4ed3aefa3 100644 --- a/firebase-common/build.gradle.kts +++ b/firebase-common/build.gradle.kts @@ -23,7 +23,7 @@ android { getByName("main") { manifest.srcFile("src/androidMain/AndroidManifest.xml") } - getByName("androidTest").java.srcDir(file("src/androidAndroidTest/kotlin")) + getByName("androidTest").java.srcDir(file("src/androidInstrumentedTest/kotlin")) } testOptions { unitTests.apply { diff --git a/firebase-config/build.gradle.kts b/firebase-config/build.gradle.kts index 06593ead3..ebc16c1f4 100644 --- a/firebase-config/build.gradle.kts +++ b/firebase-config/build.gradle.kts @@ -26,7 +26,7 @@ android { manifest.srcFile("src/androidMain/AndroidManifest.xml") } getByName("androidTest"){ - java.srcDir(file("src/androidAndroidTest/kotlin")) + java.srcDir(file("src/androidInstrumentedTest/kotlin")) } } testOptions { diff --git a/firebase-config/src/androidAndroidTest/kotlin/dev/gitlive/firebase/remoteconfig/RemoteConfig.kt b/firebase-config/src/androidAndroidTest/kotlin/dev/gitlive/firebase/remoteconfig/RemoteConfig.kt deleted file mode 100644 index 821ebf0f3..000000000 --- a/firebase-config/src/androidAndroidTest/kotlin/dev/gitlive/firebase/remoteconfig/RemoteConfig.kt +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:JvmName("tests") -package dev.gitlive.firebase.remoteconfig - -import androidx.test.platform.app.InstrumentationRegistry - -actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext - -actual fun runTest(test: suspend () -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/firebase-crashlytics/build.gradle.kts b/firebase-crashlytics/build.gradle.kts index 712bc858b..b15fd96ca 100644 --- a/firebase-crashlytics/build.gradle.kts +++ b/firebase-crashlytics/build.gradle.kts @@ -26,8 +26,8 @@ android { manifest.srcFile("src/androidMain/AndroidManifest.xml") } getByName("androidTest"){ - java.srcDir(file("src/androidAndroidTest/kotlin")) - manifest.srcFile("src/androidAndroidTest/AndroidManifest.xml") + java.srcDir(file("src/androidInstrumentedTest/kotlin")) + manifest.srcFile("src/androidInstrumentedTest/AndroidManifest.xml") } } testOptions { diff --git a/firebase-crashlytics/src/androidAndroidTest/AndroidManifest.xml b/firebase-crashlytics/src/androidAndroidTest/AndroidManifest.xml deleted file mode 100644 index b054003ba..000000000 --- a/firebase-crashlytics/src/androidAndroidTest/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/firebase-crashlytics/src/androidAndroidTest/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt b/firebase-crashlytics/src/androidAndroidTest/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt deleted file mode 100644 index 6e8d9c0f4..000000000 --- a/firebase-crashlytics/src/androidAndroidTest/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:JvmName("tests") -package dev.gitlive.firebase.crashlytics - -import androidx.test.platform.app.InstrumentationRegistry -import kotlinx.coroutines.CoroutineScope - -actual val emulatorHost: String = "10.0.2.2" - -actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext - -actual fun runTest(test: suspend CoroutineScope.() -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/firebase-crashlytics/src/androidAndroidTest/res/values/strings.xml b/firebase-crashlytics/src/androidAndroidTest/res/values/strings.xml deleted file mode 100644 index e55dcc07c..000000000 --- a/firebase-crashlytics/src/androidAndroidTest/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - 1 - \ No newline at end of file diff --git a/firebase-database/src/androidAndroidTest/kotlin/dev/gitlive/firebase/database/database.kt b/firebase-database/src/androidAndroidTest/kotlin/dev/gitlive/firebase/database/database.kt deleted file mode 100644 index 91653371b..000000000 --- a/firebase-database/src/androidAndroidTest/kotlin/dev/gitlive/firebase/database/database.kt +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:JvmName("tests") -package dev.gitlive.firebase.database - -import androidx.test.platform.app.InstrumentationRegistry - -actual val emulatorHost: String = "10.0.2.2" - -actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext -actual fun runTest(test: suspend () -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/firebase-firestore/build.gradle.kts b/firebase-firestore/build.gradle.kts index cdc9eab83..2b9ee3c58 100644 --- a/firebase-firestore/build.gradle.kts +++ b/firebase-firestore/build.gradle.kts @@ -24,8 +24,8 @@ android { manifest.srcFile("src/androidMain/AndroidManifest.xml") } getByName("androidTest"){ - java.srcDir(file("src/androidAndroidTest/kotlin")) - manifest.srcFile("src/androidAndroidTest/AndroidManifest.xml") + java.srcDir(file("src/androidInstrumentedTest/kotlin")) + manifest.srcFile("src/androidInstrumentedTest/AndroidManifest.xml") } } testOptions { diff --git a/firebase-firestore/src/androidAndroidTest/AndroidManifest.xml b/firebase-firestore/src/androidAndroidTest/AndroidManifest.xml deleted file mode 100644 index 22ae9ef69..000000000 --- a/firebase-firestore/src/androidAndroidTest/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/firebase-firestore/src/androidAndroidTest/kotlin/dev/gitlive/firebase/firestore/firestore.kt b/firebase-firestore/src/androidAndroidTest/kotlin/dev/gitlive/firebase/firestore/firestore.kt deleted file mode 100644 index 9c3f485e2..000000000 --- a/firebase-firestore/src/androidAndroidTest/kotlin/dev/gitlive/firebase/firestore/firestore.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:JvmName("tests") -package dev.gitlive.firebase.firestore - -import androidx.test.platform.app.InstrumentationRegistry -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.runBlocking - -actual val emulatorHost: String = "10.0.2.2" - -actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext - -actual fun runTest(test: suspend CoroutineScope.() -> Unit) = runBlocking { test() } diff --git a/firebase-perf/build.gradle.kts b/firebase-perf/build.gradle.kts index e6d662fb7..0c3268e2b 100644 --- a/firebase-perf/build.gradle.kts +++ b/firebase-perf/build.gradle.kts @@ -26,8 +26,8 @@ android { manifest.srcFile("src/androidMain/AndroidManifest.xml") } getByName("androidTest"){ - java.srcDir(file("src/androidAndroidTest/kotlin")) - manifest.srcFile("src/androidAndroidTest/AndroidManifest.xml") + java.srcDir(file("src/androidInstrumentedTest/kotlin")) + manifest.srcFile("src/androidInstrumentedTest/AndroidManifest.xml") } } testOptions { diff --git a/firebase-perf/src/androidAndroidTest/AndroidManifest.xml b/firebase-perf/src/androidAndroidTest/AndroidManifest.xml deleted file mode 100644 index 22ae9ef69..000000000 --- a/firebase-perf/src/androidAndroidTest/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/firebase-perf/src/androidAndroidTest/kotlin/dev/gitlive/firebase/perf/metrics/Trace.kt b/firebase-perf/src/androidAndroidTest/kotlin/dev/gitlive/firebase/perf/metrics/Trace.kt deleted file mode 100644 index 9580d0e80..000000000 --- a/firebase-perf/src/androidAndroidTest/kotlin/dev/gitlive/firebase/perf/metrics/Trace.kt +++ /dev/null @@ -1,81 +0,0 @@ -package dev.gitlive.firebase.perf.metrics - -import dev.gitlive.firebase.Firebase -import dev.gitlive.firebase.FirebaseOptions -import dev.gitlive.firebase.apps -import dev.gitlive.firebase.initialize -import dev.gitlive.firebase.perf.FirebasePerformance -import dev.gitlive.firebase.perf.performance -import kotlin.test.BeforeTest -import kotlin.test.Test -import kotlin.test.assertEquals - -class AndroidTraceTest { - - private lateinit var performance: FirebasePerformance - - @BeforeTest - fun initializeFirebase() { - Firebase - .takeIf { Firebase.apps(dev.gitlive.firebase.perf.context).isEmpty() } - ?.apply { - initialize( - dev.gitlive.firebase.perf.context, - FirebaseOptions( - applicationId = "1:846484016111:ios:dd1f6688bad7af768c841a", - apiKey = "AIzaSyCK87dcMFhzCz_kJVs2cT2AVlqOTLuyWV0", - databaseUrl = "https://fir-kotlin-sdk.firebaseio.com", - storageBucket = "fir-kotlin-sdk.appspot.com", - projectId = "fir-kotlin-sdk", - gcmSenderId = "846484016111" - ) - ) - } - - performance = Firebase.performance - - - } - - @Test - fun testGetAttributes() { - val trace = performance.newTrace("testGetAttributes") - trace.start() - val values = listOf(1, 2, 3) - - values.forEach { - trace.putAttribute("Test_Get_Attributes_$it", "Test Get Attributes Value $it") - } - - val attributes = trace.getAttributes() - - assertEquals(3, attributes.size) - - attributes.onEachIndexed { index, entry -> - - assertEquals(entry.key.last(), entry.value.last()) - } - - trace.stop() - } - - @Test - fun testGetAttribute() { - val trace = performance.newTrace("testGetAttribute") - trace.start() - trace.putAttribute("Test_Get_Attribute", "Test Get Attribute Value") - - assertEquals("Test Get Attribute Value", trace.getAttribute("Test_Get_Attribute")) - trace.stop() - } - - @Test - fun testPutAttribute() { - val trace = performance.newTrace("testPutAttribute") - trace.start() - trace.putAttribute("Test_Put_Attribute", "Test Put Attribute Value") - - assertEquals("Test Put Attribute Value", trace.getAttribute("Test_Put_Attribute")) - trace.stop() - } -} \ No newline at end of file diff --git a/firebase-perf/src/androidAndroidTest/kotlin/dev/gitlive/firebase/perf/performance.kt b/firebase-perf/src/androidAndroidTest/kotlin/dev/gitlive/firebase/perf/performance.kt deleted file mode 100644 index 3d270a930..000000000 --- a/firebase-perf/src/androidAndroidTest/kotlin/dev/gitlive/firebase/perf/performance.kt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:JvmName("tests") -package dev.gitlive.firebase.perf - -import androidx.test.platform.app.InstrumentationRegistry -import kotlinx.coroutines.CoroutineScope - -actual val emulatorHost: String = "10.0.2.2" - -actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext - -actual fun runTest(test: suspend CoroutineScope.() -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/gradle.properties b/gradle.properties index bbc44ae48..fe135f97d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,6 +20,8 @@ testOptions.unitTests.isIncludeAndroidResources=true kotlin.mpp.enableCInteropCommonization=true kotlin.native.cacheKind=none +kotlin.mpp.androidSourceSetLayoutVersion=2 + # Set to true to skip tests and even compilation of the iOS target. skipIosTarget=false # Skip iOS Tests From 956977510eec01942a529a05b80bf0ac1406196e Mon Sep 17 00:00:00 2001 From: Andrew Reed Date: Tue, 13 Jun 2023 18:03:46 +0100 Subject: [PATCH 2/4] Changes to new android source layout --- .../kotlin/dev/gitlive/firebase/firebase.kt | 12 +++ .../AndroidManifest.xml | 5 ++ .../kotlin/dev/gitlive/firebase/auth/auth.kt | 14 ++++ .../firebase/remoteconfig/RemoteConfig.kt | 12 +++ .../AndroidManifest.xml | 5 ++ .../firebase/crashlytics/crashlytics.kt | 15 ++++ .../res/values/strings.xml | 3 + .../dev/gitlive/firebase/database/database.kt | 13 +++ .../AndroidManifest.xml | 5 ++ .../gitlive/firebase/firestore/firestore.kt | 16 ++++ .../AndroidManifest.xml | 5 ++ .../gitlive/firebase/perf/metrics/Trace.kt | 81 +++++++++++++++++++ .../dev/gitlive/firebase/perf/performance.kt | 15 ++++ 13 files changed, 201 insertions(+) create mode 100644 firebase-app/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/firebase.kt create mode 100644 firebase-auth/src/androidInstrumentedTest/AndroidManifest.xml create mode 100644 firebase-auth/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/auth/auth.kt create mode 100644 firebase-config/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/remoteconfig/RemoteConfig.kt create mode 100644 firebase-crashlytics/src/androidInstrumentedTest/AndroidManifest.xml create mode 100644 firebase-crashlytics/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt create mode 100644 firebase-crashlytics/src/androidInstrumentedTest/res/values/strings.xml create mode 100644 firebase-database/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/database/database.kt create mode 100644 firebase-firestore/src/androidInstrumentedTest/AndroidManifest.xml create mode 100644 firebase-firestore/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/firestore/firestore.kt create mode 100644 firebase-perf/src/androidInstrumentedTest/AndroidManifest.xml create mode 100644 firebase-perf/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/perf/metrics/Trace.kt create mode 100644 firebase-perf/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/perf/performance.kt diff --git a/firebase-app/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/firebase.kt b/firebase-app/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/firebase.kt new file mode 100644 index 000000000..10402d8f0 --- /dev/null +++ b/firebase-app/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/firebase.kt @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. + */ + +@file:JvmName("tests") +package dev.gitlive.firebase + +import androidx.test.platform.app.InstrumentationRegistry + +actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext + +actual fun runTest(test: suspend () -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/firebase-auth/src/androidInstrumentedTest/AndroidManifest.xml b/firebase-auth/src/androidInstrumentedTest/AndroidManifest.xml new file mode 100644 index 000000000..22ae9ef69 --- /dev/null +++ b/firebase-auth/src/androidInstrumentedTest/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + diff --git a/firebase-auth/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/auth/auth.kt b/firebase-auth/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/auth/auth.kt new file mode 100644 index 000000000..5aff507e9 --- /dev/null +++ b/firebase-auth/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/auth/auth.kt @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. + */ + +@file:JvmName("tests") +package dev.gitlive.firebase.auth + +import androidx.test.platform.app.InstrumentationRegistry + +actual val emulatorHost: String = "10.0.2.2" + +actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext + +actual fun runTest(test: suspend () -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/firebase-config/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/remoteconfig/RemoteConfig.kt b/firebase-config/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/remoteconfig/RemoteConfig.kt new file mode 100644 index 000000000..821ebf0f3 --- /dev/null +++ b/firebase-config/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/remoteconfig/RemoteConfig.kt @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. + */ + +@file:JvmName("tests") +package dev.gitlive.firebase.remoteconfig + +import androidx.test.platform.app.InstrumentationRegistry + +actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext + +actual fun runTest(test: suspend () -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/firebase-crashlytics/src/androidInstrumentedTest/AndroidManifest.xml b/firebase-crashlytics/src/androidInstrumentedTest/AndroidManifest.xml new file mode 100644 index 000000000..b054003ba --- /dev/null +++ b/firebase-crashlytics/src/androidInstrumentedTest/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + diff --git a/firebase-crashlytics/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt b/firebase-crashlytics/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt new file mode 100644 index 000000000..6e8d9c0f4 --- /dev/null +++ b/firebase-crashlytics/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/crashlytics/crashlytics.kt @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. + */ + +@file:JvmName("tests") +package dev.gitlive.firebase.crashlytics + +import androidx.test.platform.app.InstrumentationRegistry +import kotlinx.coroutines.CoroutineScope + +actual val emulatorHost: String = "10.0.2.2" + +actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext + +actual fun runTest(test: suspend CoroutineScope.() -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/firebase-crashlytics/src/androidInstrumentedTest/res/values/strings.xml b/firebase-crashlytics/src/androidInstrumentedTest/res/values/strings.xml new file mode 100644 index 000000000..e55dcc07c --- /dev/null +++ b/firebase-crashlytics/src/androidInstrumentedTest/res/values/strings.xml @@ -0,0 +1,3 @@ + + 1 + \ No newline at end of file diff --git a/firebase-database/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/database/database.kt b/firebase-database/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/database/database.kt new file mode 100644 index 000000000..91653371b --- /dev/null +++ b/firebase-database/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/database/database.kt @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. + */ + +@file:JvmName("tests") +package dev.gitlive.firebase.database + +import androidx.test.platform.app.InstrumentationRegistry + +actual val emulatorHost: String = "10.0.2.2" + +actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext +actual fun runTest(test: suspend () -> Unit) = kotlinx.coroutines.test.runTest { test() } diff --git a/firebase-firestore/src/androidInstrumentedTest/AndroidManifest.xml b/firebase-firestore/src/androidInstrumentedTest/AndroidManifest.xml new file mode 100644 index 000000000..22ae9ef69 --- /dev/null +++ b/firebase-firestore/src/androidInstrumentedTest/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + diff --git a/firebase-firestore/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/firestore/firestore.kt b/firebase-firestore/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/firestore/firestore.kt new file mode 100644 index 000000000..9c3f485e2 --- /dev/null +++ b/firebase-firestore/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/firestore/firestore.kt @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. + */ + +@file:JvmName("tests") +package dev.gitlive.firebase.firestore + +import androidx.test.platform.app.InstrumentationRegistry +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.runBlocking + +actual val emulatorHost: String = "10.0.2.2" + +actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext + +actual fun runTest(test: suspend CoroutineScope.() -> Unit) = runBlocking { test() } diff --git a/firebase-perf/src/androidInstrumentedTest/AndroidManifest.xml b/firebase-perf/src/androidInstrumentedTest/AndroidManifest.xml new file mode 100644 index 000000000..22ae9ef69 --- /dev/null +++ b/firebase-perf/src/androidInstrumentedTest/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + diff --git a/firebase-perf/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/perf/metrics/Trace.kt b/firebase-perf/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/perf/metrics/Trace.kt new file mode 100644 index 000000000..9580d0e80 --- /dev/null +++ b/firebase-perf/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/perf/metrics/Trace.kt @@ -0,0 +1,81 @@ +package dev.gitlive.firebase.perf.metrics + +import dev.gitlive.firebase.Firebase +import dev.gitlive.firebase.FirebaseOptions +import dev.gitlive.firebase.apps +import dev.gitlive.firebase.initialize +import dev.gitlive.firebase.perf.FirebasePerformance +import dev.gitlive.firebase.perf.performance +import kotlin.test.BeforeTest +import kotlin.test.Test +import kotlin.test.assertEquals + +class AndroidTraceTest { + + private lateinit var performance: FirebasePerformance + + @BeforeTest + fun initializeFirebase() { + Firebase + .takeIf { Firebase.apps(dev.gitlive.firebase.perf.context).isEmpty() } + ?.apply { + initialize( + dev.gitlive.firebase.perf.context, + FirebaseOptions( + applicationId = "1:846484016111:ios:dd1f6688bad7af768c841a", + apiKey = "AIzaSyCK87dcMFhzCz_kJVs2cT2AVlqOTLuyWV0", + databaseUrl = "https://fir-kotlin-sdk.firebaseio.com", + storageBucket = "fir-kotlin-sdk.appspot.com", + projectId = "fir-kotlin-sdk", + gcmSenderId = "846484016111" + ) + ) + } + + performance = Firebase.performance + + + } + + @Test + fun testGetAttributes() { + val trace = performance.newTrace("testGetAttributes") + trace.start() + val values = listOf(1, 2, 3) + + values.forEach { + trace.putAttribute("Test_Get_Attributes_$it", "Test Get Attributes Value $it") + } + + val attributes = trace.getAttributes() + + assertEquals(3, attributes.size) + + attributes.onEachIndexed { index, entry -> + + assertEquals(entry.key.last(), entry.value.last()) + } + + trace.stop() + } + + @Test + fun testGetAttribute() { + val trace = performance.newTrace("testGetAttribute") + trace.start() + trace.putAttribute("Test_Get_Attribute", "Test Get Attribute Value") + + assertEquals("Test Get Attribute Value", trace.getAttribute("Test_Get_Attribute")) + trace.stop() + } + + @Test + fun testPutAttribute() { + val trace = performance.newTrace("testPutAttribute") + trace.start() + trace.putAttribute("Test_Put_Attribute", "Test Put Attribute Value") + + assertEquals("Test Put Attribute Value", trace.getAttribute("Test_Put_Attribute")) + trace.stop() + } +} \ No newline at end of file diff --git a/firebase-perf/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/perf/performance.kt b/firebase-perf/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/perf/performance.kt new file mode 100644 index 000000000..3d270a930 --- /dev/null +++ b/firebase-perf/src/androidInstrumentedTest/kotlin/dev/gitlive/firebase/perf/performance.kt @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. + */ + +@file:JvmName("tests") +package dev.gitlive.firebase.perf + +import androidx.test.platform.app.InstrumentationRegistry +import kotlinx.coroutines.CoroutineScope + +actual val emulatorHost: String = "10.0.2.2" + +actual val context: Any = InstrumentationRegistry.getInstrumentation().targetContext + +actual fun runTest(test: suspend CoroutineScope.() -> Unit) = kotlinx.coroutines.test.runTest { test() } From d80e4d0b079a516131174f4138c6c3e7bc2ef17c Mon Sep 17 00:00:00 2001 From: Andrew Reed Date: Wed, 14 Jun 2023 09:16:54 +0100 Subject: [PATCH 3/4] Made android instrument depend on common --- firebase-app/build.gradle.kts | 6 ++++++ firebase-auth/build.gradle.kts | 6 ++++++ firebase-common/build.gradle.kts | 5 +++++ firebase-config/build.gradle.kts | 6 ++++++ firebase-crashlytics/build.gradle.kts | 6 ++++++ firebase-database/build.gradle.kts | 6 ++++++ firebase-firestore/build.gradle.kts | 5 +++++ firebase-functions/build.gradle.kts | 6 ++++++ firebase-installations/build.gradle.kts | 6 ++++++ firebase-perf/build.gradle.kts | 6 ++++++ 10 files changed, 58 insertions(+) diff --git a/firebase-app/build.gradle.kts b/firebase-app/build.gradle.kts index e9dac4b24..8bff0e01b 100644 --- a/firebase-app/build.gradle.kts +++ b/firebase-app/build.gradle.kts @@ -99,12 +99,18 @@ kotlin { implementation(project(":firebase-common")) } } + val commonTest by getting val androidMain by getting { dependencies { api("com.google.firebase:firebase-common") } } + val androidInstrumentedTest by getting { + dependencies { + dependsOn(commonTest) + } + } if (supportIosTarget) { val iosMain by getting diff --git a/firebase-auth/build.gradle.kts b/firebase-auth/build.gradle.kts index 2ab3f2a30..5e210b39f 100644 --- a/firebase-auth/build.gradle.kts +++ b/firebase-auth/build.gradle.kts @@ -125,12 +125,18 @@ kotlin { implementation(project(":firebase-common")) } } + val commonTest by getting val androidMain by getting { dependencies { api("com.google.firebase:firebase-auth") } } + val androidInstrumentedTest by getting { + dependencies { + dependsOn(commonTest) + } + } if (supportIosTarget) { val iosMain by getting diff --git a/firebase-common/build.gradle.kts b/firebase-common/build.gradle.kts index 4ed3aefa3..03af1cbea 100644 --- a/firebase-common/build.gradle.kts +++ b/firebase-common/build.gradle.kts @@ -101,6 +101,11 @@ kotlin { api("com.google.firebase:firebase-common") } } + val androidInstrumentedTest by getting { + dependencies { + dependsOn(commonTest) + } + } if (supportIosTarget) { val iosMain by getting diff --git a/firebase-config/build.gradle.kts b/firebase-config/build.gradle.kts index ebc16c1f4..7ad3439a3 100644 --- a/firebase-config/build.gradle.kts +++ b/firebase-config/build.gradle.kts @@ -107,12 +107,18 @@ kotlin { implementation(project(":firebase-common")) } } + val commonTest by getting val androidMain by getting { dependencies { api("com.google.firebase:firebase-config") } } + val androidInstrumentedTest by getting { + dependencies { + dependsOn(commonTest) + } + } if (supportIosTarget) { val iosMain by getting diff --git a/firebase-crashlytics/build.gradle.kts b/firebase-crashlytics/build.gradle.kts index b15fd96ca..18993398e 100644 --- a/firebase-crashlytics/build.gradle.kts +++ b/firebase-crashlytics/build.gradle.kts @@ -84,12 +84,18 @@ kotlin { implementation(project(":firebase-common")) } } + val commonTest by getting val androidMain by getting { dependencies { api("com.google.firebase:firebase-crashlytics") } } + val androidInstrumentedTest by getting { + dependencies { + dependsOn(commonTest) + } + } if (supportIosTarget) { val iosMain by getting diff --git a/firebase-database/build.gradle.kts b/firebase-database/build.gradle.kts index ef75443c2..09b331930 100644 --- a/firebase-database/build.gradle.kts +++ b/firebase-database/build.gradle.kts @@ -101,12 +101,18 @@ kotlin { implementation(project(":firebase-common")) } } + val commonTest by getting val androidMain by getting { dependencies { api("com.google.firebase:firebase-database") } } + val androidInstrumentedTest by getting { + dependencies { + dependsOn(commonTest) + } + } if (supportIosTarget) { val iosMain by getting diff --git a/firebase-firestore/build.gradle.kts b/firebase-firestore/build.gradle.kts index 2b9ee3c58..8de964601 100644 --- a/firebase-firestore/build.gradle.kts +++ b/firebase-firestore/build.gradle.kts @@ -114,6 +114,11 @@ kotlin { api("com.google.firebase:firebase-firestore") } } + val androidInstrumentedTest by getting { + dependencies { + dependsOn(commonTest) + } + } if (supportIosTarget) { val iosMain by getting diff --git a/firebase-functions/build.gradle.kts b/firebase-functions/build.gradle.kts index a38a92d93..6ad904f67 100644 --- a/firebase-functions/build.gradle.kts +++ b/firebase-functions/build.gradle.kts @@ -94,12 +94,18 @@ kotlin { implementation(project(":firebase-common")) } } + val commonTest by getting val androidMain by getting { dependencies { api("com.google.firebase:firebase-functions") } } + val androidInstrumentedTest by getting { + dependencies { + dependsOn(commonTest) + } + } if (supportIosTarget) { val iosMain by getting diff --git a/firebase-installations/build.gradle.kts b/firebase-installations/build.gradle.kts index d5c58a3b8..62324a2f9 100644 --- a/firebase-installations/build.gradle.kts +++ b/firebase-installations/build.gradle.kts @@ -92,12 +92,18 @@ kotlin { implementation(project(":firebase-common")) } } + val commonTest by getting val androidMain by getting { dependencies { api("com.google.firebase:firebase-installations") } } + val androidInstrumentedTest by getting { + dependencies { + dependsOn(commonTest) + } + } if (supportIosTarget) { val iosMain by getting diff --git a/firebase-perf/build.gradle.kts b/firebase-perf/build.gradle.kts index 0c3268e2b..032c5d9e1 100644 --- a/firebase-perf/build.gradle.kts +++ b/firebase-perf/build.gradle.kts @@ -95,12 +95,18 @@ kotlin { implementation(project(":firebase-common")) } } + val commonTest by getting val androidMain by getting { dependencies { api("com.google.firebase:firebase-perf") } } + val androidInstrumentedTest by getting { + dependencies { + dependsOn(commonTest) + } + } if (supportIosTarget) { val iosMain by getting From b173a5fe9801dc1b1d8ae7c7de82b2bb4409ba29 Mon Sep 17 00:00:00 2001 From: nbransby Date: Sun, 3 Sep 2023 16:13:57 +0300 Subject: [PATCH 4/4] upgrade kotlin to 1.9.10 remove manual npm module creation drop legacy js compiler produce es modules instead of commonjs --- build.gradle.kts | 38 +------------------ firebase-app/build.gradle.kts | 2 +- firebase-app/package.json | 31 --------------- firebase-auth/build.gradle.kts | 2 +- firebase-auth/package.json | 31 --------------- firebase-common/build.gradle.kts | 4 +- firebase-common/package.json | 31 --------------- firebase-config/build.gradle.kts | 2 +- firebase-config/package.json | 31 --------------- firebase-crashlytics/package.json | 31 --------------- firebase-database/build.gradle.kts | 15 +++++++- firebase-database/package.json | 31 --------------- .../firebase/database/externals/database.kt | 2 - firebase-firestore/build.gradle.kts | 4 +- firebase-firestore/package.json | 31 --------------- firebase-functions/build.gradle.kts | 2 +- firebase-functions/package.json | 31 --------------- firebase-installations/build.gradle.kts | 2 +- firebase-installations/package.json | 31 --------------- firebase-perf/build.gradle.kts | 2 +- firebase-perf/package.json | 31 --------------- firebase-storage/build.gradle.kts | 2 +- firebase-storage/package.json | 31 --------------- gradle.properties | 2 +- 24 files changed, 27 insertions(+), 393 deletions(-) delete mode 100644 firebase-app/package.json delete mode 100644 firebase-auth/package.json delete mode 100644 firebase-common/package.json delete mode 100644 firebase-config/package.json delete mode 100644 firebase-crashlytics/package.json delete mode 100644 firebase-database/package.json delete mode 100644 firebase-firestore/package.json delete mode 100644 firebase-functions/package.json delete mode 100644 firebase-installations/package.json delete mode 100644 firebase-perf/package.json delete mode 100644 firebase-storage/package.json diff --git a/build.gradle.kts b/build.gradle.kts index 6dd10de20..96d97b40a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,8 +7,8 @@ repositories { } plugins { - kotlin("multiplatform") version "1.8.20" apply false - kotlin("native.cocoapods") version "1.8.20" apply false + kotlin("multiplatform") version "1.9.10" apply false + kotlin("native.cocoapods") version "1.9.10" apply false id("base") id("com.github.ben-manes.versions") version "0.42.0" } @@ -32,23 +32,6 @@ buildscript { val targetSdkVersion by extra(32) val minSdkVersion by extra(19) -tasks { - val updateVersions by registering { - dependsOn( - "firebase-app:updateVersion", "firebase-app:updateDependencyVersion", - "firebase-auth:updateVersion", "firebase-auth:updateDependencyVersion", - "firebase-common:updateVersion", "firebase-common:updateDependencyVersion", - "firebase-config:updateVersion", "firebase-config:updateDependencyVersion", - "firebase-database:updateVersion", "firebase-database:updateDependencyVersion", - "firebase-firestore:updateVersion", "firebase-firestore:updateDependencyVersion", - "firebase-functions:updateVersion", "firebase-functions:updateDependencyVersion", - "firebase-installations:updateVersion", "firebase-installations:updateDependencyVersion", - "firebase-perf:updateVersion", "firebase-perf:updateDependencyVersion", - "firebase-storage:updateVersion", "firebase-storage:updateDependencyVersion" - ) - } -} - subprojects { group = "dev.gitlive" @@ -85,23 +68,6 @@ subprojects { ) } } - - if (skipPublishing) return@tasks - - val updateVersion by registering(Exec::class) { - commandLine("npm", "--allow-same-version", "--prefix", projectDir, "version", "${project.property("${project.name}.version")}") - } - - val updateDependencyVersion by registering(Copy::class) { - mustRunAfter("updateVersion") - val from = file("package.json") - from.writeText( - from.readText() - .replace("version\": \"([^\"]+)".toRegex(), "version\": \"${project.property("${project.name}.version")}") - .replace("firebase-common\": \"([^\"]+)".toRegex(), "firebase-common\": \"${project.property("firebase-common.version")}") - .replace("firebase-app\": \"([^\"]+)".toRegex(), "firebase-app\": \"${project.property("firebase-app.version")}") - ) - } } afterEvaluate { diff --git a/firebase-app/build.gradle.kts b/firebase-app/build.gradle.kts index e565e7164..94a209ef1 100644 --- a/firebase-app/build.gradle.kts +++ b/firebase-app/build.gradle.kts @@ -75,7 +75,7 @@ kotlin { } js { - useCommonJs() + useEsModules() nodejs { testTask { useKarma { diff --git a/firebase-app/package.json b/firebase-app/package.json deleted file mode 100644 index ad462e03f..000000000 --- a/firebase-app/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-app", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-app.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk", - "dependencies": { - "@gitlive/firebase-common": "1.10.0", - "firebase": "9.19.1", - "kotlin": "1.8.20", - "kotlinx-coroutines-core": "1.6.4" - } -} diff --git a/firebase-auth/build.gradle.kts b/firebase-auth/build.gradle.kts index a92c8c61d..ef4e62cbd 100644 --- a/firebase-auth/build.gradle.kts +++ b/firebase-auth/build.gradle.kts @@ -92,7 +92,7 @@ kotlin { } js { - useCommonJs() + useEsModules() nodejs { testTask { useKarma { diff --git a/firebase-auth/package.json b/firebase-auth/package.json deleted file mode 100644 index fe344e504..000000000 --- a/firebase-auth/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-auth", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-auth.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk", - "dependencies": { - "@gitlive/firebase-app": "1.10.0", - "firebase": "9.19.1", - "kotlin": "1.8.20", - "kotlinx-coroutines-core": "1.6.4" - } -} diff --git a/firebase-common/build.gradle.kts b/firebase-common/build.gradle.kts index 00443365c..9f8255816 100644 --- a/firebase-common/build.gradle.kts +++ b/firebase-common/build.gradle.kts @@ -9,7 +9,7 @@ version = project.property("firebase-common.version") as String plugins { id("com.android.library") kotlin("multiplatform") - kotlin("plugin.serialization") version "1.8.20" + kotlin("plugin.serialization") version "1.9.10" } android { @@ -70,7 +70,7 @@ kotlin { } js { - useCommonJs() + useEsModules() nodejs { testTask { useKarma { diff --git a/firebase-common/package.json b/firebase-common/package.json deleted file mode 100644 index ad254de8f..000000000 --- a/firebase-common/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-common", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-common.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-multiplatform-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-multiplatform-sdk", - "dependencies": { - "firebase": "9.19.1", - "kotlin": "1.8.20", - "kotlinx-coroutines-core": "1.6.4", - "kotlinx-serialization-kotlinx-serialization-runtime": "1.3.2" - } -} diff --git a/firebase-config/build.gradle.kts b/firebase-config/build.gradle.kts index 3d9d17ed7..01d73407e 100644 --- a/firebase-config/build.gradle.kts +++ b/firebase-config/build.gradle.kts @@ -94,7 +94,7 @@ kotlin { } js { - useCommonJs() + useEsModules() browser { testTask { useKarma { diff --git a/firebase-config/package.json b/firebase-config/package.json deleted file mode 100644 index 195116866..000000000 --- a/firebase-config/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-config", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-config.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk", - "dependencies": { - "@gitlive/firebase-app": "1.10.0", - "firebase": "9.19.1", - "kotlin": "1.8.20", - "kotlinx-coroutines-core": "1.6.4" - } -} diff --git a/firebase-crashlytics/package.json b/firebase-crashlytics/package.json deleted file mode 100644 index 1a32ade20..000000000 --- a/firebase-crashlytics/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-crashlytics", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-crashlytics.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk", - "dependencies": { - "@gitlive/firebase-app": "1.10.0", - "firebase": "9.19.1", - "kotlin": "1.6.10", - "kotlinx-coroutines-core": "1.6.1-native-mt" - } -} diff --git a/firebase-database/build.gradle.kts b/firebase-database/build.gradle.kts index 41ac78581..95a8e01ed 100644 --- a/firebase-database/build.gradle.kts +++ b/firebase-database/build.gradle.kts @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile + /* * Copyright (c) 2020 GitLive Ltd. Use of this source code is governed by the Apache 2.0 license. */ @@ -8,7 +10,7 @@ plugins { id("com.android.library") kotlin("native.cocoapods") kotlin("multiplatform") - kotlin("plugin.serialization") version "1.8.20" + kotlin("plugin.serialization") version "1.9.10" } repositories { @@ -80,8 +82,10 @@ kotlin { } js { - useCommonJs() + useEsModules() + binaries.library() nodejs { + testTask { useKarma { useChromeHeadless() @@ -97,6 +101,13 @@ kotlin { } } + // Enables ES6 classes generation + tasks.withType().configureEach { + kotlinOptions { + useEsClasses = true + } + } + sourceSets { all { languageSettings.apply { diff --git a/firebase-database/package.json b/firebase-database/package.json deleted file mode 100644 index 966515c71..000000000 --- a/firebase-database/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-database", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-database.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk", - "dependencies": { - "@gitlive/firebase-app": "1.10.0", - "firebase": "9.19.1", - "kotlin": "1.8.20", - "kotlinx-coroutines-core": "1.6.4" - } -} diff --git a/firebase-database/src/jsMain/kotlin/dev/gitlive/firebase/database/externals/database.kt b/firebase-database/src/jsMain/kotlin/dev/gitlive/firebase/database/externals/database.kt index 52f71422b..a538b4c2c 100644 --- a/firebase-database/src/jsMain/kotlin/dev/gitlive/firebase/database/externals/database.kt +++ b/firebase-database/src/jsMain/kotlin/dev/gitlive/firebase/database/externals/database.kt @@ -1,6 +1,4 @@ @file:JsModule("firebase/database") -@file:JsNonModule - package dev.gitlive.firebase.database.externals import dev.gitlive.firebase.* diff --git a/firebase-firestore/build.gradle.kts b/firebase-firestore/build.gradle.kts index 622647bf9..e07bfc2ed 100644 --- a/firebase-firestore/build.gradle.kts +++ b/firebase-firestore/build.gradle.kts @@ -8,7 +8,7 @@ plugins { id("com.android.library") kotlin("native.cocoapods") kotlin("multiplatform") - kotlin("plugin.serialization") version "1.8.20" + kotlin("plugin.serialization") version "1.9.10" } android { @@ -81,7 +81,7 @@ kotlin { } js { - useCommonJs() + useEsModules() nodejs { testTask { useKarma { diff --git a/firebase-firestore/package.json b/firebase-firestore/package.json deleted file mode 100644 index dd417f8b3..000000000 --- a/firebase-firestore/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-firestore", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-firestore.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk", - "dependencies": { - "@gitlive/firebase-app": "1.10.0", - "firebase": "9.19.1", - "kotlin": "1.8.20", - "kotlinx-coroutines-core": "1.6.4" - } -} diff --git a/firebase-functions/build.gradle.kts b/firebase-functions/build.gradle.kts index 837ed61fd..a4ee99304 100644 --- a/firebase-functions/build.gradle.kts +++ b/firebase-functions/build.gradle.kts @@ -60,7 +60,7 @@ kotlin { } js { - useCommonJs() + useEsModules() nodejs { testTask { useKarma { diff --git a/firebase-functions/package.json b/firebase-functions/package.json deleted file mode 100644 index e0db81fe6..000000000 --- a/firebase-functions/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-functions", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-functions.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk", - "dependencies": { - "@gitlive/firebase-app": "1.10.0", - "firebase": "9.19.1", - "kotlin": "1.8.20", - "kotlinx-coroutines-core": "1.6.4" - } -} diff --git a/firebase-installations/build.gradle.kts b/firebase-installations/build.gradle.kts index bad88df8e..a19ba6ec0 100644 --- a/firebase-installations/build.gradle.kts +++ b/firebase-installations/build.gradle.kts @@ -73,7 +73,7 @@ kotlin { } js { - useCommonJs() + useEsModules() nodejs { testTask { useKarma { diff --git a/firebase-installations/package.json b/firebase-installations/package.json deleted file mode 100644 index 94aaac8c5..000000000 --- a/firebase-installations/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-installations", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-installations.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk", - "dependencies": { - "@gitlive/firebase-app": "1.10.0", - "firebase": "9.19.1", - "kotlin": "1.8.20", - "kotlinx-coroutines-core": "1.6.4" - } -} diff --git a/firebase-perf/build.gradle.kts b/firebase-perf/build.gradle.kts index 548cd0c32..b014696d2 100644 --- a/firebase-perf/build.gradle.kts +++ b/firebase-perf/build.gradle.kts @@ -79,7 +79,7 @@ kotlin { } js { - useCommonJs() + useEsModules() browser { testTask { useKarma { diff --git a/firebase-perf/package.json b/firebase-perf/package.json deleted file mode 100644 index ac32fe16c..000000000 --- a/firebase-perf/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-perf", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-perf.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk", - "dependencies": { - "@gitlive/firebase-app": "1.10.0", - "firebase": "9.19.1", - "kotlin": "1.6.10", - "kotlinx-coroutines-core": "1.6.1-native-mt" - } -} diff --git a/firebase-storage/build.gradle.kts b/firebase-storage/build.gradle.kts index c49c2d52e..66c6e8377 100644 --- a/firebase-storage/build.gradle.kts +++ b/firebase-storage/build.gradle.kts @@ -73,7 +73,7 @@ kotlin { } js { - useCommonJs() + useEsModules() nodejs { testTask { useKarma { diff --git a/firebase-storage/package.json b/firebase-storage/package.json deleted file mode 100644 index 6b757c5ec..000000000 --- a/firebase-storage/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "@gitlive/firebase-storage", - "version": "1.10.0", - "description": "Wrapper around firebase for usage in Kotlin Multiplatform projects", - "main": "firebase-storage.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/GitLiveApp/firebase-kotlin-sdk.git" - }, - "keywords": [ - "kotlin", - "multiplatform", - "kotlin-js", - "firebase" - ], - "author": "dev.gitlive", - "license": "Apache-2.0", - "bugs": { - "url": "https://github.com/GitLiveApp/firebase-kotlin-sdk/issues" - }, - "homepage": "https://github.com/GitLiveApp/firebase-kotlin-sdk", - "dependencies": { - "@gitlive/firebase-app": "1.10.0", - "firebase": "9.19.1", - "kotlin": "1.6.10", - "kotlinx-coroutines-core": "1.6.1-native-mt" - } -} diff --git a/gradle.properties b/gradle.properties index 3590d0d98..ae256bcad 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ android.useAndroidX=true kapt.use.worker.api=true kotlin.code.style=official kotlin.incremental.multiplatform=true -kotlin.js.compiler=both +kotlin.js.compiler=ir kotlin.js.experimental.generateKotlinExternals=false #kotlin.mpp.enableCompatibilityMetadataVariant=true #kotlin.mpp.enableGranularSourceSetsMetadata=true