oncall-engine/helm
Joey Orlando 8f22b2fd74
first UI integration test - phone verification + receive SMS alert flow (#900)
**What this PR does**:
Adds our first UI integration test using
[Playwright](https://playwright.dev/) and runs the test on CI. Right now
the test:
- logs into Grafana
- configures the plugin (if it isn't already)
- creates an OnCall schedule, where the current user will be OnCall
- creates an escalation chain to notify based on the newly created
OnCall schedule
- creates a webhook integration, attached to the created escalation
chain
- sends a demo alert for the new integration
- goes to the alert groups page and validates that the escalation step
to alert the OnCall user actually happened

Currently the Playwright tests are run against the 3 default headless
browsers, chromium, Firefox, and webkit. The CI job that runs these
tests is run as a matrix against 3 tagged versions of `grafana`; `main`,
`latest`, and `9.2.6`.

Secondly, it adds most of the logic for a second test which:
- logs into Grafana
- configures the plugin (if it isn't already)
- goes to the user's settings, verifies their phone number (using a tool
called [MailSlurp](https://www.mailslurp.com/))
- configures the current user's default escalation policy to send alerts
via SMS
- creates an escalation policy and configures it to send alerts to our
current user
- creates an integration and assigns the created escalation policy
- triggers a test alert + verifies that we receive the SMS alert text
(again, using MailSlurp)

**Which issue(s) this PR fixes**:
Closes #873 

**Checklist**
- [x] Tests updated
- [ ] Documentation added (N/A)
- [ ] `CHANGELOG.md` updated (N/A)
2023-03-06 16:28:52 +00:00
..
oncall Correct init command for Postgres Database (#1243) 2023-02-02 07:46:59 +01:00
cr.yaml Remove helm chart signing (#1126) 2023-01-12 19:02:44 +08:00
ct.yaml Remove trailing slash 2022-06-21 15:03:42 +03:00
kind.yml first UI integration test - phone verification + receive SMS alert flow (#900) 2023-03-06 16:28:52 +00:00
README.md first UI integration test - phone verification + receive SMS alert flow (#900) 2023-03-06 16:28:52 +00:00
simple.yml first UI integration test - phone verification + receive SMS alert flow (#900) 2023-03-06 16:28:52 +00:00
values-arm64.yml Add new ci pipeline: helm chart end to end testing (#855) 2022-11-21 16:10:25 +01:00
values-local-image.yml first UI integration test - phone verification + receive SMS alert flow (#900) 2023-03-06 16:28:52 +00:00

How to run the chart locally

  1. Create the cluster with kind

    Make sure ports 30001 and 30002 are free on your machine

    kind create cluster --image kindest/node:v1.24.7 --config kind.yml
    
  2. (Optional) Build oncall image locally and load it to kind cluster

  3. docker build ../engine -t oncall/engine:latest --target dev
    kind load docker-image oncall/engine:latest
    
  4. Install the helm chart

       helm install helm-testing \
       --wait \
       --timeout 30m \
       --wait-for-jobs \
       --values ./simple.yml \
       --values ./values-arm64.yml \
       ./oncall
    
  5. Get credentials

    echo "\n\nOpen Grafana on localhost:30002 with credentials - user: admin, password: $(kubectl get secret --namespace default helm-testing-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo)"
    echo "Open Plugins -> Grafana OnCall -> fill form: backend url: http://host.docker.internal:30001"
    
  6. Clean up

    kind delete cluster