# Arsh LabKit Mart — staging test checklist

Do these checks on a staging URL and test database before production.

## Setup
- [ ] Fresh compatible Laravel project boots and `/` loads over HTTPS.
- [ ] Composer packages installed: PhpSpreadsheet, Smalot PDF Parser, DomPDF.
- [ ] Migrations run successfully on a backup/staging MySQL database.
- [ ] Seeder creates the first Admin from private `.env` credentials.
- [ ] Inactive users cannot log in; non-admin cannot open User/Settings pages.

## Locked customer website
- [ ] Compare the homepage against the approved reference image; do not change layout/spacing/colors without approval.
- [ ] Admin adds real products, real prices, GST/HSN and product photos before public launch.
- [ ] Add to Cart increments cart count and order modal displays correct products/quantities.
- [ ] Submitting order stores an order and opens a pre-filled WhatsApp message; test that customer must press Send.
- [ ] Inquiry form stores inquiry and opens WhatsApp with name/mobile/lab/city/state/products/message.

## Lab records
- [ ] Import a copy of the exact Commonreport PDF and compare at least 20 records field-by-field with the source.
- [ ] Confirm row count, serial number/barcode, patient name, test details, amounts and doctor fields before importing the entire archive.
- [ ] Import a matching Excel file; verify original header names and order remain intact.
- [ ] Re-import the exact same file and confirm duplicate-file protection triggers.
- [ ] Add Lab and Collection By names from Masters; confirm both appear in dropdowns.
- [ ] Click Edit, fill only the three added fields, then Save All; confirm original source data did not change.
- [ ] Confirm report Day/Week/Month/custom date and individual Lab totals.
- [ ] Export Excel and PDF; verify the original source fields plus only Lab Name, Collection By and Payment Collected are included.

## Products, stock and billing
- [ ] Product image uploads display correctly on the public site.
- [ ] Purchase increases stock and creates a stock ledger entry.
- [ ] Manual Stock In/Out updates balance and prevents negative stock.
- [ ] Billing uses server-side product price/GST and rejects quantity above available stock.
- [ ] Invoice stores HSN, batch, expiry, quantity, discount, GST and totals; stock reduces once only.
- [ ] Print/Save as PDF matches the approved invoice design and business/GST settings.
- [ ] Test Cash/UPI/Card and Paid/Partially Paid/Unpaid status values.

## Users and privacy
- [ ] Test each role: Admin, Data Entry, Billing, Stock, Website and Viewer.
- [ ] Confirm unauthorized roles receive HTTP 403 for restricted modules.
- [ ] Confirm private Lab Records are not exposed on public routes.
- [ ] Take a database backup and test restoring it to staging.

**Important:** Do not use the software for real patient records until the PDF mapping is verified against the actual source report and GST invoice output has been reviewed for your business's tax requirements.
