# mutare_phoenix v0.1.0 - Table of Contents

> Mutare mutators for Phoenix

## Pages

- [Mutare Phoenix](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- Mutator front / extension
  - [Mutare.Phoenix](Mutare.Phoenix.md): Custom [Mutare](https://hex.pm/packages/mutare) mutators for the Phoenix controller
surface — the `Phoenix.Controller` calls a controller action performs on the conn — plus
the defensive macro routing that keeps Phoenix's compile-time macros from poisoning the
metamutant build.

- Mutator families
  - [Mutare.Phoenix.Body](Mutare.Phoenix.Body.md): `:controller_body` — blanks a rendered response body: the data argument of
`Phoenix.Controller.json/2` becomes `%{}`, and that of `text/2` and `html/2` becomes
`""`. A surviving mutant means no test reads the response body — the action answered,
with the right status and content type, and nothing checked what it said.
  - [Mutare.Phoenix.Download](Mutare.Phoenix.Download.md): `:download_disposition` — flips the explicit `:disposition` option of
`Phoenix.Controller.send_download/3` between `:attachment` and `:inline`. A surviving
mutant means no test pins whether the browser is told to *save* the file or *display*
it — the type in the `content-disposition` header.
  - [Mutare.Phoenix.Redirect](Mutare.Phoenix.Redirect.md): `:redirect_status` — swaps the explicit atom `:status` option of
`Phoenix.Controller.redirect/2` for a plausible redirect-status sibling.

