diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-06 10:13:20 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-06 10:13:20 +0100 |
| commit | 9ec740b0c73e33485e1d754759de46aa99444733 (patch) | |
| tree | 6be3d2e29014acc0c48a91fe86fbe8a5d671bb08 /app/src/test | |
| parent | c3c433a038e304ddb82b282dad2d09899daf241e (diff) | |
| download | HardenedPass-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.kt | 17 |
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)) + } } |
