From 574d33000ac192c863c8656cc165289264ee97fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hochst=C3=B6ger=20Matthias?= <116495532+mhochsto@users.noreply.github.com> Date: Wed, 14 Aug 2024 10:47:22 +0200 Subject: [PATCH] chore: added startNotification() testcase --- android/build.gradle | 7 ++++++- .../reactnative/AbrevvaBleModuleTest.kt | 21 ++++++++++--------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 6c1f4a3..71e50ed 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -75,6 +75,11 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + testOptions { + unitTests.all { + useJUnitPlatform() + } + } } repositories { @@ -102,4 +107,4 @@ dependencies { androidTestImplementation("androidx.test.ext:junit:1.2.1") androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1") -} +} \ No newline at end of file diff --git a/android/src/test/java/com/evva/xesar/abrevva/reactnative/AbrevvaBleModuleTest.kt b/android/src/test/java/com/evva/xesar/abrevva/reactnative/AbrevvaBleModuleTest.kt index 6b89e84..6690799 100644 --- a/android/src/test/java/com/evva/xesar/abrevva/reactnative/AbrevvaBleModuleTest.kt +++ b/android/src/test/java/com/evva/xesar/abrevva/reactnative/AbrevvaBleModuleTest.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.bluetooth.BluetoothManager import android.content.Context import android.os.ParcelUuid -import android.util.Log import com.evva.xesar.abrevva.ble.BleManager import com.facebook.react.bridge.Arguments import com.facebook.react.bridge.Promise @@ -65,12 +64,13 @@ class AbrevvaBleModuleTest { } + /* https://github.com/mockk/mockk/issues/586#issuecomment-1404973825 */ @SuppressLint("MissingPermission") @Test fun `startNotifications notification recieved closure should generate key correctly`() { + mockkConstructor(BleManager::class) val callbackSlot = slot<(data: ByteArray) -> Unit>() val keySlot = slot() - val successCallback = slot<(success: Boolean) -> Unit>() val deviceId = "e7f635ac-27ae-4bc6-a5ca-3f07872f49e9" val service = "01a660db-5dbd-488a-bd01-b42449817c82" val characteristic = "d0d71305-05b2-4add-9ea9-bcd1cc82211c" @@ -81,24 +81,25 @@ class AbrevvaBleModuleTest { "characteristic" to characteristic ) ) - mockkConstructor(BleManager::class) - mockkStatic(Log::class) - every { Log.e(any(), any()) } returns 0 every { Arguments.createMap() } returns options every { anyConstructed().startNotifications( any(), any(), any(), - capture(successCallback), - capture(callbackSlot) + any(), + capture(callbackSlot), + any() ) } returns Unit - every { anyConstructed().isBleEnabled() } returns false every { contextMock.emitDeviceEvent(capture(keySlot), any()) } returns Unit - abrevvaBleModule.startNotifications(options, promiseMock) + abrevvaBleModule = AbrevvaBleModule(contextMock) + + abrevvaBleModule.startNotifications( + options, promiseMock + ) + callbackSlot.captured.invoke(ByteArray(0)) - callbackSlot.captured(ByteArray(1)) assert(keySlot.captured == "notification|e7f635ac-27ae-4bc6-a5ca-3f07872f49e9|01a660db-5dbd-488a-bd01-b42449817c82|d0d71305-05b2-4add-9ea9-bcd1cc82211c") }