# `Mutare.Plug.Session`
[🔗](https://github.com/foxbenjaminfox/mutare_plug/blob/v0.2.1/lib/mutare/plug/session.ex#L1)

`:plug_session` — removes `Plug.Conn` session mutations. A surviving mutant means no test
depends on this code writing, deleting, clearing, or reconfiguring session state.

    put_session(conn, :user_id, user.id)      # → conn
    conn |> delete_session(:user_id)          # → conn
    clear_session(conn)                       # → conn
    configure_session(conn, renew: true)      # → conn

Removing `configure_session(conn, renew: true)` on login is the classic session-fixation
bypass (the session id remains unchanged after authentication). Removing
`configure_session(conn, drop: true)` on logout leaves the session in place after
sign-out. A survivor here means no test pins that lifecycle behaviour.

Matches `put_session/3`, `delete_session/2`, `clear_session/1`, and `configure_session/2`
written directly (`Plug.Conn.put_session(conn, ...)`), aliased, or bare-imported. The
boolean option *values* inside `configure_session/2` are still left to Mutare's built-in
boolean mutators; this family only removes the call.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
