core
core copied to clipboard
Database provider tests clean-up
There's currently 3 implementations of the Persister database/persister.go interface, which includes all database functions.
Each packages have the same (99%) identical tests code. For instance, cecking the number of lines in the memory's base.go file vs. the mongo's one:
$ wc -l database/memory/base_test.go
406 database/memory/base_test.go
$ wc -l database/mongo/base_test.go
406 database/mongo/base_test.go
Brain storming
- Can we remove all this duplication and have one set of test that can tests all implementation?
- At the moment I created some entry in the
Makefileto target specific database engine implementation, this is useful when implementing a new feature to only run tests for the currently develop provider. I would not want to lose this after no. 1.
Hi @dstpierre, I opened a draft PR here (https://github.com/staticbackendhq/core/pull/124) to validate the idea.
If that aligns with your initial thoughts, I'd be happy to prepare that PR for merging.