An open API service indexing awesome lists of open source software.

https://github.com/naps62/fun_with_flags_in_memory


https://github.com/naps62/fun_with_flags_in_memory

Last synced: 12 months ago
JSON representation

Awesome Lists containing this project

README

          

# FunWithFlags - InMemory Adapter

An adapter for [`fun_with_flags`](https://github.com/tompave/fun_with_flags)
that uses a GenServer to keep everything in memory.

Useful for unit testing your code without having to mock `FunWithFlags`

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `fun_with_flags_in_memory` to your list of dependencies in `mix.exs`:

```elixir
def deps do
[
{:fun_with_flags_in_memory, "~> 0.1.0"}
]
end
```

### Configuration

Configure `FunWithFlags` to use this adapter while in test mode:

```
# config/test.exs

config :fun_with_flags, :persistence,
adapter: FunWithFlags.Store.Persistent.InMemory
```

### Usage

The adapter doesn't clean up by itself automatically after each test.

The current aproach is to manually clean up each flag. For example:

```elixir
defmodule Tests do
describe "a disabled feature" do
setup do
Flags.enable(:my_feature_flag)

on_exit fn ->
Flags.clear(:my_feature_flag)
end
end
end
end
```