aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/test
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-06 10:13:20 +0100
committerDanilo M. <danix@danix.xyz>2026-11-06 10:13:20 +0100
commit9ec740b0c73e33485e1d754759de46aa99444733 (patch)
tree6be3d2e29014acc0c48a91fe86fbe8a5d671bb08 /app/src/test
parentc3c433a038e304ddb82b282dad2d09899daf241e (diff)
downloadHardenedPass-9ec740b0c73e33485e1d754759de46aa99444733.tar.gz
HardenedPass-9ec740b0c73e33485e1d754759de46aa99444733.zip
feat(app): optionally push after each change
Changes made in the app could sit unpushed and collide with a later desktop change. The new setting, off by default, pushes after a save, move, rename or delete. It pushes rather than syncs because a rejected push changes nothing, while a pull can stop in a rebase. A failed push only shows a snackbar: the commit stays local and promptOnErrorHandler would delete saved credentials over a missing network. Autofill saves are left out: AutofillSaveActivity closes right after saving, which would cancel the push. TODO.md tracks that. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'app/src/test')
-rw-r--r--app/src/test/java/app/passwordstore/util/settings/GitSettingsTest.kt17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/src/test/java/app/passwordstore/util/settings/GitSettingsTest.kt b/app/src/test/java/app/passwordstore/util/settings/GitSettingsTest.kt
index 6b30c248..111e7f51 100644
--- a/app/src/test/java/app/passwordstore/util/settings/GitSettingsTest.kt
+++ b/app/src/test/java/app/passwordstore/util/settings/GitSettingsTest.kt
@@ -9,7 +9,9 @@ import app.passwordstore.util.extensions.getString
import com.github.ivanshafran.sharedpreferencesmock.SPMockBuilder
import kotlin.test.Test
import kotlin.test.assertEquals
+import kotlin.test.assertFalse
import kotlin.test.assertNull
+import kotlin.test.assertTrue
class GitSettingsTest {
@@ -24,4 +26,19 @@ class GitSettingsTest {
assertEquals("proxy-user", proxy.getString(PreferenceKeys.PROXY_USERNAME))
assertNull(settings.getString(PreferenceKeys.PROXY_USERNAME))
}
+
+ @Test
+ fun pushAfterCommitIsOptIn() {
+ val settings = SPMockBuilder().createSharedPreferences()
+ val gitSettings =
+ GitSettings(
+ settings,
+ SPMockBuilder().createSharedPreferences(),
+ SPMockBuilder().createSharedPreferences(),
+ "/nonexistent",
+ )
+ assertFalse(gitSettings.pushAfterCommit)
+ gitSettings.pushAfterCommit = true
+ assertTrue(settings.getBoolean(PreferenceKeys.PUSH_AFTER_COMMIT, false))
+ }
}