add more test case, fix req.idempotent

`request` and `response` coverage to 100%.
fix `req.idempotent`'s return type