Flagship acts as an interface and tooling for working with launchdarkly feature flags.
The package can be installed by adding flagship
to your list of dependencies in mix.exs
:
def deps do
[
{:flagship, "~> 0.1.6"}
]
end
Start up the application (in your application.ex file):
children =
[
{Flagship.FeatureFlags, name: Flagship.FeatureFlags},
...
]
And configure the application (in config.exs or similar):
config :flagship,
ld_sdk_key: "<ENTER SDK KEY HERE>", # required
default_context: %{}, # optional - expects a map that represents a launchdarkly context (https://docs.launchdarkly.com/home/contexts)
ld_client_options: %{ # all values are optional
file_datasource: true,
send_events: false,
file_paths: ['launch_darkly_local_config.json'],
feature_store: :ldclient_storage_map,
file_auto_update: true,
file_poll_interval: 1000
}
And configure for your test environment (in text.exs):
config :flagship,
ld_sdk_key: "test key",
ld_client_options: %{
datasource: :testdata,
send_events: false,
feature_store: :ldclient_storage_map
}
The tests rely on a test double for the LaunchDarkly implementation.
FLAGSHIP_IMPLEMENTATION=Flagship.LaunchDarklyTest mix test