I’ve got code to verify webhook signatures that’s similar to the code examples in this Dashbit article. In the dev environment, it works fine - the request body is read into conn.assigns[:raw_body]. In the test environment, however, the custom body_reader isn’t being called; the request body is not read into assigns.
Has anyone seen something like this or have some ideas? I’ve found similar posts related to Plug.Parsers and custom body_reader, but nothing specifically about testing differences. I’ve tried a number of things with Plug.Conn in the test environment, to no avail so far. Thanks!
In dev, an IO.puts from inside the function called by Plug.Parsersbody_reader gets written to stdout. In test, it does not, and conn.assigns is an empty map instead of containing the request body, as it does in dev. Since this is a proprietary app, I’ll see if I can replicate the problem in a minimal Phoenix app and share that code here.
Thank you @voltone and @LostKobrakai for your responses. I didn’t realize Plug.Parsers was being bypassed by design. Got it working by posting the body as a JSON encoded string.