mcrumm / req_sandbox

Req plugin for Phoenix Ecto SQL Sandbox

Home Page:https://hexdocs.pm/req_sandbox

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ReqSandbox

Photo of a toy truck in a sandbox Photo by Takeshi Morisato on Unsplash

CI Docs Hex pm

Req plugin for Phoenix.Ecto.SQL.Sandbox.

ReqSandbox simplifies making concurrent, transactional requests to a Phoenix server. Just before making a request, the sandbox metadata is applied via the specified request header. If there is no metadata available, then ReqSandbox creates a new sandbox session and saves the metadata for future requests. This is mostly useful in client test environments to ensure logical isolation between concurrent tests.

Usage

The Ecto SQL Sandbox Usage Guide contains a full demonstration of the sandbox features.

Mix.install([
  {:req, "~> 0.4.0"},
  {:req_sandbox, "~> 0.1.2"}
])

req = Req.new(base_url: "http://localhost:4000" |> ReqSandbox.attach()

Req.post!(req, url: "/api/posts", json: %{"post" => %{"msg" => "Hello, world!"}}).body
#=> %{"data" => %{"id" => 2, "msg" => "Hello, world!"}}

ReqSandbox.delete!(req)
#=> "BeamMetadata (g2gCZAACdjF0AAAAA2QABW93bmVyWGQAInZ2ZXMzM2o1LWxpdmVib29...)"

License

MIT License. Copyright (c) 2022 Michael A. Crumm Jr.

About

Req plugin for Phoenix Ecto SQL Sandbox

https://hexdocs.pm/req_sandbox

License:MIT License


Languages

Language:Elixir 100.0%