SHS TEST GUIDE — SANDY AND MARK Prototype v0.25 | Invented records only | 31 October 2026 BEFORE YOU START Use the private shared app address once hosting is ready. The ChatGPT project link holds the discussion; it does not run the app. On Sandy's Mac only, the prepared local copy is http://pwa-qa.localhost:8797/workspace. The existing Mac copy uses the prefilled Oak & Vale demo sign-in. A restored or hosted copy needs its separately supplied fresh sign-in details. Do not post passwords or setup codes in ChatGPT. Enter only invented customer details, photographs, prices and payments during testing. Use Oak & Vale for the prepared merge test. Leave Harbour Homeworks empty until the separation check at the end. Make sure the shared copy contains the prepared sample, rather than an empty starter business. Work together on one test at a time. For the first correction, Sandy can make the changes while Mark checks the saved result on his computer. Refreshing an idle screen is fine; keep an unfinished or uncertain save open until it is resolved. The app does not promise live screen updates on the other computer. Refresh or reopen the saved record deliberately. FIRST SESSION: CORRECT THE MISTAKEN MERGE 1. Find the original merge. Open Customers. Set Customer record state to Retained merged records. Open History for Alex Fictional, then Review correction of this merge. Read the original reason and the original/current contact details. Expected: the original merge remains visible; no jobs are preselected. 2. Check which jobs can return. Fit shelves and Curtain rail fitting — original Alex job should be eligible. Door adjustment — already moved elsewhere belongs with Carys and must stay excluded. The retained customer's own jobs, including later work, must stay with that customer. Expected: the screen explains each job's current owner and exclusions. 3. Check later contact information is protected. Leave fields on Keep current initially. The retained name may explicitly be restored to Blake Fictional. Its phone was changed after the merge, so Restore before merge must not overwrite that later phone value. Expected: the later phone is kept or its restoration is blocked. 4. Preview, then cancel safely. Select the two eligible original jobs. Choose to restore the retained name to Blake Fictional and keep the later phone. Choose Preview reviewed separation. Read the job moves, exclusions, document amounts and access effects. Enter an invented reason and tick the review confirmation. Choose Confirm reviewed separation. In the final dialog choose Keep reviewing. Open the dialog again and try Escape. Expected: nothing is saved; the selections, choices and reason remain. 5. Save the reviewed correction once. Review the preview again. Confirm, then choose Save reviewed separation. Expected: the original Alex record is reactivated, exactly the two selected jobs return, and the other jobs stay with their current owners. The retained name becomes Blake only because you explicitly chose it. The later phone stays unchanged. 6. Check the saved history from both computers. Reopen both customer histories. Mark should refresh or reopen his idle view after Sandy's save. Compare the original merge and new correction. Expected: both computers show one correction with the saved reason; the original merge remains. Returned jobs show their new ownership move. There is one correction per original merge, not an unlimited undo button. 7. Check documents and sharing. Open Fit shelves and its saved quote/invoice/payment information. Compare references, amounts and recorded receipts with your pre-save notes. Expected: these remain unchanged. Sharing/portal access must not revive. An old customer login should fail if a separate deliberate portal-access test was set up. Do not call this login test passed merely because a restored backup already had its access revoked. 8. Record the result before trying another variation. Note tester, app address/version, steps, expected result and actual result. Include a screenshot of any problem. Use TEST-RESULTS-TEMPLATE.txt. For a subset-only or reactivate-with-no-jobs test, use a new restored sample after preserving this result. Do not reset each other's work. IF SOMETHING BLOCKS A SAVE A message about changed records means someone or something changed the reviewed information. Keep your reason and selections, refresh the preview as directed, inspect the new details and deliberately confirm again. A job with active work, unfinished time/review, unreviewed notes, a current or future booking, or active repeat work may be blocked. Resolve it or choose a smaller eligible selection. The app should not silently save only part of an invalid selection. If a reply is lost, keep the page open and use Check saved separation for that same attempt. Do not create another correction or close the page to guess whether it saved. This form is not a durable offline queue. SECOND SESSION: WALK THROUGH THE WIDER APP Use new invented records with a recognisable prefix, such as Sandy test or Mark test. Keep these separate from the merge sample. Take one item at a time. A. Website and enquiry. Open Oak & Vale's website. Browse the pages, then submit an invented contact enquiry with a preferred date and a synthetic photo if useful. In the owner workspace, reopen the job. Check: message, date and photo are attached to the correct job. The preferred date does not silently become a confirmed appointment. B. Job and customer. Add a private note and next action. Save, leave the record and reopen it. Check: the saved values remain. Try leaving an unfinished edit and choose Keep editing; check the typed text remains. C. Quote and invoice. Create an invented itemised quote and save it. Reopen it and check lines and totals. If exercising the customer portal, use a separate session and a deliberately created test customer login. Check the exact shared quote before accepting it. Create/issue its test invoice and record an invented partial payment. Check: revision, references, totals, balance and history are consistent. No email is sent and no real money is taken by this prototype. D. Materials and calendar. Add a material to the invented job; save and reopen it. Add a fictional team resource and book a visit. Try an overlapping booking, then cancel that attempted change. Check saved work remains and conflicts are clear. E. Website editing. Save a small test wording change as a draft and preview it before local publication. Check that the public test site changes only when intended. On a hosted test, this affects that test site's visitors, never live SHS. F. Business separation. Finish or deliberately discard unfinished forms. Sign into the separate Harbour Homeworks demo using its own supplied test credentials. Check: Oak & Vale's customers, jobs and private documents are absent. Seeing an empty list alone is not a complete security test; record only the behaviour you actually checked. WHAT COUNTS AS A RESULT Passed: you performed the stated steps and saw the expected saved result. Failed: you performed them and saw a different result; keep the evidence. Untested: you have not performed them, or access/setup prevented completion. The saved automated checks passed for the local v0.25 package. Your browser checks and hosted two-computer checks are new evidence. Phone use, complete offline operation and live-business release approval remain separate work.