Javascript Testing: The Good and Bad Parts