A successful response is only one branch of a user journey. Try an empty result, a server error and a slow response. Check that repeated clicks do not create repeated work.

Write the expected recovery in plain language before implementing it. The user should know whether to retry, correct an input or wait.