https://mabry.dev/posts/javascript-testing-guide/