don't trigger update from checkPassword, it is already  called by userExists, this is enough.
do not write to database when the value is the same
add test cases. also split test classes in a file each, looks like only the first class is being executed