Testing: verify full-screen backup (updates/uninstalls) + snapshot transfer (#237) on a dev build #242

Open
opened 2026-07-10 21:27:58 +00:00 by jmiller · 0 comments
Owner

Verification checklist for the work merged to dev this cycle. None of it is tested end-to-end yet (php -l clean only). Deploy the latest 02.58.x-dev to a test site and work through these.

0. Deploy & preconditions

  • Install latest 02.58.x-dev (php-8.3 cli/joomla.php extension:install --path=/tmp/pkg.zip)
  • Options: backup_before_update = Yes, default_profile = small profile
  • Options → Snapshot Transfer: Allow Snapshot Injection = Yes (for inject tests)
  • live_site has https:// (dashboard warning gone)

1. Full-screen backup — core Joomla update

  • Joomla Update → Install the Update → redirected to full-screen backup (view=runbackup), runs to 100%, then auto-continues the update (no white screen, no double backup)

2. Full-screen backup — extension update & uninstall

  • Extensions → Update: select one, Update → full-screen backup fires, then update proceeds with selection intact
  • Extensions → Manage: select a throwaway ext, Uninstall → full-screen backup fires, then uninstall proceeds

3. Dashboard Backup Now + View-record

  • Dashboard → pick profile → Backup Now → full-screen screen; on completion a View backup record button appears
  • Confirm that button does NOT appear on the update/uninstall flows

4. Snapshot transfer (#237)

  • Download: Snapshots → Download → get snapshot-<id>-….msbsnap
  • Import: Snapshots → Import Snapshot → upload it → new snapshot record appears (with Joomla-major-mismatch warning if applicable)
  • Restore mode overwrite → matching items replaced
  • Restore mode create → existing untouched, only new items added
  • Restore mode duplicate → items appear as NEW records (new IDs); open a duplicated article: category, tags, custom fields present; no alias-collision errors; check snapshot log for skipped lines

5. Inject API (master → slave)

  • POST /api/index.php/v1/mokosuitebackup/snapshot/inject with Authorization: Bearer <slave token> and body {"snapshot":{…},"mode":"overwrite"} → 200 {data:{success:true, snapshot_id}}
  • Repeat with mode = create and duplicate
  • Omit mode → falls back to the Options default
  • With Allow Snapshot Injection = Off → 403

Most fragile: step 4 duplicate (tag/UCM/nested-set linkage) and step 2 com_installer resume (selection restored + re-submitted). On failure, attach the on-screen message + the snapshot/backup log.

https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i

Verification checklist for the work merged to `dev` this cycle. None of it is tested end-to-end yet (`php -l` clean only). Deploy the latest `02.58.x-dev` to a test site and work through these. ## 0. Deploy & preconditions - [ ] Install latest `02.58.x-dev` (`php-8.3 cli/joomla.php extension:install --path=/tmp/pkg.zip`) - [ ] Options: `backup_before_update` = Yes, `default_profile` = small profile - [ ] Options → Snapshot Transfer: **Allow Snapshot Injection** = Yes (for inject tests) - [ ] `live_site` has `https://` (dashboard warning gone) ## 1. Full-screen backup — core Joomla update - [ ] Joomla Update → Install the Update → redirected to full-screen backup (`view=runbackup`), runs to 100%, then **auto-continues** the update (no white screen, no double backup) ## 2. Full-screen backup — extension update & uninstall - [ ] Extensions → Update: select one, Update → full-screen backup fires, then update proceeds with selection intact - [ ] Extensions → Manage: select a throwaway ext, Uninstall → full-screen backup fires, then uninstall proceeds ## 3. Dashboard Backup Now + View-record - [ ] Dashboard → pick profile → Backup Now → full-screen screen; on completion a **View backup record** button appears - [ ] Confirm that button does NOT appear on the update/uninstall flows ## 4. Snapshot transfer (#237) - [ ] Download: Snapshots → Download → get `snapshot-<id>-….msbsnap` - [ ] Import: Snapshots → Import Snapshot → upload it → new snapshot record appears (with Joomla-major-mismatch warning if applicable) - [ ] Restore mode **overwrite** → matching items replaced - [ ] Restore mode **create** → existing untouched, only new items added - [ ] Restore mode **duplicate** → items appear as NEW records (new IDs); open a duplicated article: category, tags, custom fields present; no alias-collision errors; check snapshot log for `skipped` lines ## 5. Inject API (master → slave) - [ ] `POST /api/index.php/v1/mokosuitebackup/snapshot/inject` with `Authorization: Bearer <slave token>` and body `{"snapshot":{…},"mode":"overwrite"}` → 200 `{data:{success:true, snapshot_id}}` - [ ] Repeat with `mode` = `create` and `duplicate` - [ ] Omit `mode` → falls back to the Options default - [ ] With Allow Snapshot Injection = Off → 403 **Most fragile:** step 4 `duplicate` (tag/UCM/nested-set linkage) and step 2 `com_installer` resume (selection restored + re-submitted). On failure, attach the on-screen message + the snapshot/backup **log**. https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i
Sign in to join this conversation.