From eaa2265236c88142a2002c8ef1df754eacbd35a5 Mon Sep 17 00:00:00 2001
From: Vladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Date: Mon, 8 Oct 2018 16:36:35 +0200
Subject: [PATCH] save in tests immediately

---
 platform/credential-store/src/PasswordSafeImpl.kt | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/platform/credential-store/src/PasswordSafeImpl.kt b/platform/credential-store/src/PasswordSafeImpl.kt
index 448adb1d157c..9fd8e5c7a3cd 100644
--- a/platform/credential-store/src/PasswordSafeImpl.kt
+++ b/platform/credential-store/src/PasswordSafeImpl.kt
@@ -74,7 +74,7 @@ class PasswordSafeImpl @JvmOverloads constructor(val settings: PasswordSafeSetti
 
   private var _currentProvider: Lazy<CredentialStore> = if (provider == null) SynchronizedClearableLazy { computeProvider(settings) } else lazyOf(provider)
 
-  internal val currentProviderIfComputed: CredentialStore?
+  private val currentProviderIfComputed: CredentialStore?
     get() = if (_currentProvider.isInitialized()) _currentProvider.value else null
 
   internal var currentProvider: CredentialStore
@@ -154,8 +154,15 @@ class PasswordSafeImpl @JvmOverloads constructor(val settings: PasswordSafeSetti
   override fun getAsync(attributes: CredentialAttributes): Promise<Credentials?> = runAsync { get(attributes) }
 
   override fun save() {
-    if ((currentProviderIfComputed as? KeePassCredentialStore ?: return).isNeedToSave()) {
-      saveAlarm.request()
+    val keePassCredentialStore = currentProviderIfComputed as? KeePassCredentialStore ?: return
+
+    if (ApplicationManager.getApplication().isUnitTestMode) {
+      keePassCredentialStore.save()
+      return
+    }
+
+    if (keePassCredentialStore.isNeedToSave()) {
+      saveAlarm.request(ApplicationManager.getApplication().isUnitTestMode)
     }
   }
 
-- 
GitLab