QA self-test

Runs through the whole workflow with fake data tagged QA_TEST_, then cleans up. Use this to verify nothing's broken after changes. Should take ~15 seconds.