1. You have a mistake in the README - instead of .sample.env there is .env.example.
2. The test for dnsLookup is failing for me:
Expected: "ENOTFOUND"
Received: "EAI_AGAIN"
I looked at the docs and seems that this behavior depends on operating system (I’m on linux).
3. Tests in shorturl.test.ts depend on the order (i.e. if you put 'GET /:short_url' first, the tests will fail).
4. url-validator.test.ts doesn’t test anything, because error-handler.ts handles error and returns status 200, therefore catch is not called (and if it were called, it would fail anyway because to use toHaveBeenCalled you need to use mock/spy).
That just some things I noticed after quick look.
P.S. Kudos for TypeScript and tests