test: remove hard-coded sequelize dialect #566
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
While GoGovSG uses a variety of postgres-specific queries and features,
the codebase still mostly talks to the database via Sequelize. To facilitate
integration testing, we will have to use something other than postgres,
eg an in-memory embedded database like SQLite.
Solution
Remove the hard-coded dialect in Sequelize options and let the dialect
be driven from the database URI. This allows us to easily make use of
other database implementations where needed.
Considerations
If the hard-coded dialect is kept, integration tests would be limited to
running on CI or an elaborate development environment. Integration tests
could run on a developer environment by mocking the postgres client, but
this is tedious and does not account for potential mistakes in SQL query
syntax or behaviour