elixir-mongo / elixir-mongo/mongodb_ecto

Integrate with in-memory db in test suites

Open
#187 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Elixir
Stars
378
Forks
127
PR merge metrics
No merged PRs in 30d

Description

The current challenge I am facing is that I want to write integration tests that add and remove data from the database and I miss the safety of the Ecto.SQL.Sandbox. I would like my test suite to spin up a local database (possibly per testfile), run its test, and then shut it down once the suite is complete. I find myself thinking about how i need to configure my CI (docker with one container? docker with multiple containers? native runner?)

In other ecosystems like NodeJS, there are adapters to the test suites that can spin up an ephemeral in-memory database just for the tests.

https://github.com/shelfio/jest-mongodb
https://github.com/nodkz/mongodb-memory-server

I can spin up a unique database per test file, I can configure a ReplSet for Multi-doc transactions, etc.

1) Am I doing it wrong? Is there a better way that I haven't thought of for mongo_ecto?
2) Is there interest in adding either this plugin or porting this functionality to an optional addon?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.