test: add tests for approval ui
This commit is contained in:
parent
021b709e6a
commit
50433e607f
6 changed files with 466 additions and 11 deletions
|
|
@ -299,4 +299,38 @@ defmodule Mv.Fixtures do
|
|||
{:error, error} -> raise "Failed to create group: #{inspect(error)}"
|
||||
end
|
||||
end
|
||||
|
||||
@doc """
|
||||
Creates a join request in status :submitted (for approval UI tests).
|
||||
|
||||
Uses the public flow: submit_join_request then confirm_join_request with a known token.
|
||||
Returns the JoinRequest struct so tests can use its id for approve/reject.
|
||||
|
||||
## Parameters
|
||||
- `attrs` - Optional map: :email, :first_name, :last_name, :form_data, :schema_version.
|
||||
Defaults: unique email; confirmation_token is generated and used internally.
|
||||
|
||||
## Returns
|
||||
- JoinRequest struct with status :submitted
|
||||
|
||||
## Examples
|
||||
|
||||
iex> request = submitted_join_request_fixture()
|
||||
iex> request.status
|
||||
:submitted
|
||||
|
||||
iex> request = submitted_join_request_fixture(%{first_name: "Jane", last_name: "Doe"})
|
||||
"""
|
||||
def submitted_join_request_fixture(attrs \\ %{}) do
|
||||
token = "fixture-token-#{System.unique_integer([:positive])}"
|
||||
base = %{
|
||||
email: "join#{System.unique_integer([:positive])}@example.com",
|
||||
confirmation_token: token
|
||||
}
|
||||
attrs = base |> Map.merge(attrs) |> Map.put(:confirmation_token, token)
|
||||
|
||||
{:ok, _} = Membership.submit_join_request(attrs, actor: nil)
|
||||
{:ok, request} = Membership.confirm_join_request(token, actor: nil)
|
||||
request
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue