Test: Synchronisation - msupply-foundation/open-msupply GitHub Wiki
Synchronisation Tests
Test environment
Device: [Android Lenovo-X505X>]. OMS server mode: [server exe? standalone?] OMS client mode: [browser? desktop-client?] mSupply Cloud: mSupply 7.14?
Installations
Installation Android
- Install app. Starts.
- Welcome screen with buttons to choose either "Client" or "Server"
- Choose "Server"
Installation Other
- Just install! ;-)
Initialisation
- Enter "asdf" as url, site name and password and press enter. Get "Invalid url" error
- Enter valid url and press enter. Site name note found
- Enter a valid site name. Incorrect password
- Enter valid password. Starts initialising!
- Pulls central... pulls remote... integration... Done. Note: The integration count would ideally be the sum of the first 2, but many records sent to OMS are not supported in OMS.
- Login screen. Login!
Synchronisation UI
- After login there are usually 1 or 2 pending logs to sync. These should show on the sync icon badge at the bottom left of navigation drawer.
- Badge shows correctly whether or not the drawer is expanded to full width.
- Pressing the "Sync" button in navigation takes you the Sync page
- If OMS hasn't already synced your logs, it should say however many to push. Otherwise the progress will likely show about "2/2" under "Push" if already synced.
- Create an outbound shipment with 1 line. The badge on "Sync" should update promptly.
- On Primary Server make a new master list and add 3 items. On omSupply sync. Should get "Pull Central" 4/4. (Should be at least 4, don't fret if something extra snuck, but not 50 extra.).
- "Integrate" should also say 4/4.
- On Primary make a CI with 3 lines to the OMS store. Should get "Pull remote" 4/4, and "Number of records to push" up to 4-5. This for the transfer/inbound shipment made on OMS needing to be sent back to the central server on the next sync cycle.
- "Integrate" should also say 4/4.
Sync Integration: Open mSupply <-> Legacy mSupply Desktop
Ordering and Inbound Shipment
- OMS Internal order -> Desktop requisition generated and all lines show correctly
- Desktop enter some values into requisition and create customer invoice. Allocate lines, confirm invoice
- OMS generates inbound shipment with all lines and shows status is "Picked"
- Desktop finalise shipment
- OMS shows status "Shipped"
Requisitions and Outbound Shipments
- Desktop Internal Order -> OMS requisition generated with correct lines
- OMS requisition enter in values and create shipment
- OMS shipment "Confirm Allocated"
- OMS shipment "Confirm Picked"
- OMS shipment "Confirm Shipped"
- Desktop supplier invoice confirm
- OMS shipment "Delivered"
- Desktop supplier invoice finalise
- OMS shipment "Verified"
- OMS requisition finalise
Sync Integration: Open mSupply <-> Open mSupply
- OMS_B Internal Order -> OMS_A requisition generated with correct lines
- OMS_A requisition enter in values and create outbound shipment
- OMS_B nothing (outbound shipment "New")
- OMS_A outbound shipment press "Confirm Allocated"
- OMS_B nothing
- OMS_A outbound shipment press "Confirm Picked"
- OMS_B inbound shipment "Picked"
- OMS_A outbound shipment press "Confirm Shipped"
- OMS_B inbound shipment "Shipped"
- OMS_B inbound shipment press "Confirm Delivered"
- OMS_B inbound shipment editable now!
- OMS_A outbound shipment "Delivered"
- OMS_B inbound shipment press "Confirm Verified"
- OMS_A outbound shipment "Verified"
- OMS_A requisition press "Confirm Finalise"
- OMS_B internal order "Finalised
Sync Integration: Open mSupply <-> Legacy mSupply Mobile
- OMS Internal order -> Desktop requisition generated and all lines show correctly
- Desktop enter some values into requisition and create customer invoice. Allocate lines, confirm invoice
- OMS generates inbound shipment with all lines and shows status is "Picked"
- Desktop finalise shipment
- OMS shows status "Shipped"
Requisitions and Outbound Shipments
- Desktop Internal Order -> OMS requisition generated with correct lines
- OMS requisition enter in values and create shipment
- OMS shipment "Confirm Allocated"
- OMS shipment "Confirm Picked"
- OMS shipment "Confirm Shipped"
- Desktop supplier invoice confirm
- OMS shipment "Delivered"
- Desktop supplier invoice finalise
- OMS shipment "Verified"
- OMS requisition finalise
Reinitialise
- Get an idea in your head of what data you had, perhaps from all your testing above
- Clear app data and restart app
- Reinitialise the app
- Is all the data from before reinitialising the app appear to still be there?
Version-updates
- Set up a remote site in previous oms version
- Sync
- Now get the latest release-version for oms
- Upgrade it
- Login
- Logins should be smooth. No errors after version-upgrade
- All the previous data is all maintained well