Factor out db, use dedicated exception type.
Fix test runner.
Add failing tests for product change menu.
Fix typo: productCHange -> productChange.