@@ -3,6 +3,7 @@ package com.onesignal.user.internal
33import com.onesignal.common.TimeUtils
44import com.onesignal.core.internal.language.ILanguageContext
55import com.onesignal.mocks.MockHelper
6+ import com.onesignal.user.internal.properties.PropertiesModel
67import com.onesignal.user.internal.subscriptions.ISubscriptionManager
78import com.onesignal.user.internal.subscriptions.SubscriptionList
89import io.kotest.core.spec.style.FunSpec
@@ -196,7 +197,7 @@ class UserManagerTests : FunSpec({
196197 verify(exactly = 1) { mockSubscriptionManager.removeSmsSubscription("+15558675309") }
197198 }
198199
199- test("onFocus updates timezone") {
200+ test("onFocus updates timezone when onesignalId exists in property model ") {
200201 // Given
201202 val mockTimeZone = " Europe/Foo"
202203 mockkObject(TimeUtils )
@@ -227,4 +228,36 @@ class UserManagerTests : FunSpec({
227228 unmockkObject(TimeUtils )
228229 }
229230 }
231+
232+ test("onFocus does not update timezone when onesignalId is missing in property model") {
233+ // Given
234+ val mockTimeZone = " Europe/Foo"
235+ mockkObject(TimeUtils )
236+ every { TimeUtils .getTimeZoneId() } returns mockTimeZone
237+
238+ val mockPropertiesModelStore = MockHelper .propertiesModelStore()
239+ every { mockPropertiesModelStore.model.hasProperty(PropertiesModel ::onesignalId.name) } returns false
240+
241+ val userManager =
242+ UserManager (
243+ mockk<ISubscriptionManager >(),
244+ MockHelper .identityModelStore(),
245+ mockPropertiesModelStore,
246+ MockHelper .languageContext(),
247+ MockHelper .applicationService(),
248+ )
249+
250+ val propertiesModel = mockPropertiesModelStore.model
251+
252+ try {
253+ // When
254+ userManager.onFocus(firedOnSubscribe = false)
255+
256+ // Then
257+ verify(exactly = 0) { propertiesModel.timezone = mockTimeZone }
258+ } finally {
259+ // Clean up the mock
260+ unmockkObject(TimeUtils )
261+ }
262+ }
230263})
0 commit comments