aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/tests/harness
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-10-10 16:29:20 +0200
committerChristophe Besson <cbesson@gmail.com>2026-10-10 16:29:20 +0200
commit7957fa686eb6e8cf57bcb62ff4e6d2785693030b (patch)
tree562195088fa40bc4db85193956bdd8aaf00e31f5 /packages/meshbay-hub/tests/harness
parent24547e4efd3a45b36b3bea8c29cfc687230a6d3a (diff)
downloadmeshbay-7957fa686eb6e8cf57bcb62ff4e6d2785693030b.tar.gz
feat(android): back up WhatsApp's own chat backups, and its media if asked
A WhatsApp section takes WhatsApp's folder through the picker, sends its encrypted Databases and Backups (not the dated copies of earlier weeks) into <folder>/<account>-whatsapp, and names the restore set in the manifest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/tests/harness')
-rw-r--r--packages/meshbay-hub/tests/harness/photo_sync_probe.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/packages/meshbay-hub/tests/harness/photo_sync_probe.py b/packages/meshbay-hub/tests/harness/photo_sync_probe.py
index 2a75749..3fcce8a 100644
--- a/packages/meshbay-hub/tests/harness/photo_sync_probe.py
+++ b/packages/meshbay-hub/tests/harness/photo_sync_probe.py
@@ -118,6 +118,17 @@ window.meshbay = {
sent: async () => true, completed: async () => ({}), failed: async () => true,
keepAlive: async () => true,
},
+ whatsappSync: {
+ status: async () => ({
+ on: MODE === 'configured', unmetered: true, destination: dest, options: { media: false },
+ dir: dest && '__FOLDER__/bob-whatsapp', sent: 4, lastCompleted: Date.now(), failure: null,
+ folders: [{ id: 'wa', name: 'WhatsApp' }],
+ }),
+ chooseFolder: async () => ({}), forgetFolder: async () => ({}), configure: async () => ({}),
+ plan: async () => ({ items: [] }), sent: async () => true, manifest: async () => ({ item: null }),
+ manifestSent: async () => true, completed: async () => ({}), failed: async () => true,
+ keepAlive: async () => true,
+ },
messageSync: {
status: async () => ({
permission: 'granted', on: MODE === 'configured', destination: dest,
@@ -177,7 +188,7 @@ setTimeout(() => {
.map((e) => `${e.tagName}.${e.className} ${Math.round(e.getBoundingClientRect().right)}`);
out[f.id] = {
vw, scrollW: d.documentElement.scrollWidth, wide: wide.slice(0, 6),
- text: d.querySelector('#root').innerText.slice(0, 3000),
+ text: d.querySelector('#root').innerText.slice(0, 8000),
err: d.documentElement.dataset.err || '',
checked: [...d.querySelectorAll('#root input:checked')]
.map((i) => i.closest('label').innerText.split('\\n')[0]),