suite: deployment template (probes)
release:
  name: gitea-unittests
  namespace: testing
templates:
  - templates/gitea/deployment.yaml
  - templates/gitea/config.yaml
tests:
  - it: renders default liveness probe
    template: templates/gitea/deployment.yaml
    asserts:
      - notExists:
          path: spec.template.spec.containers[0].livenessProbe.enabled
      - isSubset:
          path: spec.template.spec.containers[0].livenessProbe
          content:
            failureThreshold: 10
            initialDelaySeconds: 200
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: http
            timeoutSeconds: 1
  - it: renders default readiness probe
    template: templates/gitea/deployment.yaml
    asserts:
      - notExists:
          path: spec.template.spec.containers[0].readinessProbe.enabled
      - isSubset:
          path: spec.template.spec.containers[0].readinessProbe
          content:
            failureThreshold: 3
            initialDelaySeconds: 5
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: http
            timeoutSeconds: 1
  - it: does not render a default startup probe
    template: templates/gitea/deployment.yaml
    asserts:
      - notExists:
          path: spec.template.spec.containers[0].startupProbe
  - it: allows enabling a startup probe
    template: templates/gitea/deployment.yaml
    set:
      gitea.startupProbe.enabled: true
    asserts:
      - notExists:
          path: spec.template.spec.containers[0].startupProbe.enabled
      - isSubset:
          path: spec.template.spec.containers[0].startupProbe
          content:
            failureThreshold: 10
            initialDelaySeconds: 60
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: http
            timeoutSeconds: 1

  - it: allows overwriting the default port of the liveness probe
    template: templates/gitea/deployment.yaml
    set:
      gitea:
        livenessProbe:
          tcpSocket:
            port: my-port
    asserts:
      - isSubset:
          path: spec.template.spec.containers[0].livenessProbe
          content:
            tcpSocket:
              port: my-port

  - it: allows overwriting the default port of the readiness probe
    template: templates/gitea/deployment.yaml
    set:
      gitea:
        readinessProbe:
          tcpSocket:
            port: my-port
    asserts:
      - isSubset:
          path: spec.template.spec.containers[0].readinessProbe
          content:
            tcpSocket:
              port: my-port

  - it: allows overwriting the default port of the startup probe
    template: templates/gitea/deployment.yaml
    set:
      gitea:
        startupProbe:
          enabled: true
          tcpSocket:
            port: my-port
    asserts:
      - isSubset:
          path: spec.template.spec.containers[0].startupProbe
          content:
            tcpSocket:
              port: my-port

  - it: allows using a non-default method as liveness probe
    template: templates/gitea/deployment.yaml
    set:
      gitea:
        livenessProbe:
          httpGet:
            path: /api/healthz
            port: http
          initialDelaySeconds: 13371
          timeoutSeconds: 13372
          periodSeconds: 13373
          successThreshold: 13374
          failureThreshold: 13375
    asserts:
      - notExists:
          path: spec.template.spec.containers[0].livenessProbe.tcpSocket
      - isSubset:
          path: spec.template.spec.containers[0].livenessProbe
          content:
            failureThreshold: 13375
            initialDelaySeconds: 13371
            periodSeconds: 13373
            successThreshold: 13374
            httpGet:
              path: /api/healthz
              port: http
            timeoutSeconds: 13372

  - it: allows using a non-default method as readiness probe
    template: templates/gitea/deployment.yaml
    set:
      gitea:
        readinessProbe:
          httpGet:
            path: /api/healthz
            port: http
          initialDelaySeconds: 13371
          timeoutSeconds: 13372
          periodSeconds: 13373
          successThreshold: 13374
          failureThreshold: 13375
    asserts:
      - notExists:
          path: spec.template.spec.containers[0].readinessProbe.tcpSocket
      - isSubset:
          path: spec.template.spec.containers[0].readinessProbe
          content:
            failureThreshold: 13375
            initialDelaySeconds: 13371
            periodSeconds: 13373
            successThreshold: 13374
            httpGet:
              path: /api/healthz
              port: http
            timeoutSeconds: 13372

  - it: allows using a non-default method as startup probe
    template: templates/gitea/deployment.yaml
    set:
      gitea:
        startupProbe:
          enabled: true
          httpGet:
            path: /api/healthz
            port: http
          initialDelaySeconds: 13371
          timeoutSeconds: 13372
          periodSeconds: 13373
          successThreshold: 13374
          failureThreshold: 13375
    asserts:
      - notExists:
          path: spec.template.spec.containers[0].startupProbe.tcpSocket
      - isSubset:
          path: spec.template.spec.containers[0].startupProbe
          content:
            failureThreshold: 13375
            initialDelaySeconds: 13371
            periodSeconds: 13373
            successThreshold: 13374
            httpGet:
              path: /api/healthz
              port: http
            timeoutSeconds: 13372
