staticbackendhq / core

Backend server API handling user mgmt, database, storage and real-time component
https://staticbackend.com
MIT License
682 stars 66 forks source link

Database provider tests clean-up #80

Open dstpierre opened 1 year ago

dstpierre commented 1 year ago

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

  1. Can we remove all this duplication and have one set of test that can tests all implementation?
  2. At the moment I created some entry in the Makefile to 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.