diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt
index 25e3aac1453214650d875911701b36d384168e63..279d77f645c61916f99cb55435af914994fd9031 100644
--- a/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt
+++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt
@@ -2,6 +2,7 @@ package org.briarproject.mailbox.core.db
 
 import org.briarproject.mailbox.core.TestUtils.deleteTestDirectory
 import org.briarproject.mailbox.core.api.Contact
+import org.briarproject.mailbox.core.settings.Settings
 import org.briarproject.mailbox.core.system.Clock
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.io.TempDir
@@ -85,4 +86,31 @@ abstract class JdbcDatabaseTest {
         db.close()
     }
 
+    @Test
+    @Throws(java.lang.Exception::class)
+    open fun testMergeSettings() {
+        val before = Settings()
+        before["foo"] = "bar"
+        before["baz"] = "bam"
+        val update = Settings()
+        update["baz"] = "qux"
+        val merged = Settings()
+        merged["foo"] = "bar"
+        merged["baz"] = "qux"
+
+        var db: Database = open(false)
+        var txn = db.startTransaction()
+
+        // store 'before'
+        db.mergeSettings(txn, before, "namespace")
+        assertEquals(before, db.getSettings(txn, "namespace"))
+
+        // merge 'update'
+        db.mergeSettings(txn, update, "namespace")
+        assertEquals(merged, db.getSettings(txn, "namespace"))
+
+        db.commitTransaction(txn)
+        db.close()
+    }
+
 }