Giter Club home page Giter Club logo

Comments (6)

arnarg avatar arnarg commented on June 18, 2024

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.

hitman99 avatar hitman99 commented on June 18, 2024

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.

arnarg avatar arnarg commented on June 18, 2024

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.

hitman99 avatar hitman99 commented on June 18, 2024

from postgres-operator.

hitman99 avatar hitman99 commented on June 18, 2024

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.

hitman99 avatar hitman99 commented on June 18, 2024

All work for this issue to be tracked in #32 and #33.

from postgres-operator.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.