From 9ec740b0c73e33485e1d754759de46aa99444733 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 6 Nov 2026 10:13:20 +0100 Subject: 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 --- .../app/passwordstore/util/settings/GitSettingsTest.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'app/src/test') 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)) + } } -- cgit v1.2.3