Comments (6)
I've been thinking about this as well. This will be a bit tricky as most of our business logic depends on a database being there and is PostgreSQL specific.
Do you have any plan of attack?
from postgres-operator.
For operator controller(s) logic, we could use mocked PG package, which we could generate. As for the actual Postgres package, we'd have to use integration tests, running tests in docker-compose where we could use real postgres database, in a container. Another and probably easier option would be to use github actions as it supports services (like Gitlab CI Services), where we could configure something like this for integration tests:
jobs:
services:
postgres:
image: postgres:10.8
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- 5432:5432
# needed because the postgres container does not provide a healthcheck
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
Which oiption do you prefer? This will not be easy as for some queries we'd need to write more queries in tests to check if it worked or not.
from postgres-operator.
Obvious first step would be to unit test the controllers' logic. There's even documentation on this from operator-sdk.
I'm fine with either option of integration tests. The github actions sounds really nice but we'd probably also need a way of running them locally.
from postgres-operator.
from postgres-operator.
I'm splitting this issue in two as it's quite big. One will be for unit and another for integration tests
from postgres-operator.
All work for this issue to be tracked in #32 and #33.
from postgres-operator.
Related Issues (20)
- Create a ConnectionString in the secret
- Add operator user to created roles by default
- Kustomization not using the new Google Image Repository
- Postgres User reconciller error loop when DB deleted manually - still having this problem in 1.2.1
- When postgres CR deleted before postgresusers CR it makes postgresusers finalizers to fail
- Schema creation failing HOT 15
- ARM support HOT 1
- Cannot create a database with customized `locale` and `encoding` options
- cannot terminate database with open connections
- Helm Chart should come with .image.tag set to an empty string in values.yaml
- The role-reader and role-writer do not have the appropriate permissions. HOT 8
- [Question]: Multiple RDS/Database instances HOT 1
- Problem with Postgres URI Args HOT 2
- pq: must be member of role HOT 4
- Allow multiple databases in PostgresUser CR HOT 2
- pq: permission denied to reassign objects HOT 2
- Failure to Cleanup Finalizers on Shutdown HOT 1
- postgres connection limits
- POSTGRES_URL should contain POSTGRES_URI_ARGS HOT 2
- RBAC is spooooooky HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from postgres-operator.