mirror of
https://codeberg.org/scip/esctl.git
synced 2026-08-24 16:14:17 +02:00
78 lines
2.5 KiB
Markdown
78 lines
2.5 KiB
Markdown
# Testing
|
|
|
|
Building regular unit tests would require to create a mock
|
|
elasticsearch cluster, which is too much a chore for a one man
|
|
show. Running a regular elasticsearch cluster on Codeberg CI is not
|
|
economically reasonable.
|
|
|
|
Therefore I run tests manually. Here's how.
|
|
|
|
# Dependencies
|
|
|
|
The following is required:
|
|
|
|
- linux, any distro will do
|
|
- docker in a decent version
|
|
- [mosscap](https://codeberg.org/scip/mosscap) version `0.0.17` or higher.
|
|
|
|
# Docker
|
|
|
|
There's a ready to use docker compose file, which fires up an
|
|
elasticsearch cluster with 3 nodes. To start it manually just execute
|
|
`make up`.
|
|
|
|
When it's up and running it should look like this:
|
|
|
|
```console
|
|
$ docker ps
|
|
NAMES STATUS PORTS
|
|
t-es03-1 Up 16 minutes (healthy) 9200/tcp, 9300/tcp
|
|
t-es02-1 Up 16 minutes (healthy) 9200/tcp, 9300/tcp
|
|
t-es01-1 Up 16 minutes (healthy) 0.0.0.0:9200->9200/tcp, [::]:9200->9200/tcp, 9300/tcp
|
|
```
|
|
|
|
There's an esctl config file `cluster.yaml`, which you can use to
|
|
access that elasticsearch cluster, e.g.:
|
|
|
|
```console
|
|
$ esctl -c cluster.yaml cluster status
|
|
DOCKER/DOMDOC STATUS
|
|
Cluster Name domdoc
|
|
ES Status green
|
|
ES Version 9.4.2
|
|
Is Leader false
|
|
Active Shards 8
|
|
Active Primary Shards 4
|
|
Unassigned Shards 0
|
|
Unassigned Primary Shards 0
|
|
Pending Tasks 0
|
|
Nodes 3
|
|
Red Indices 0
|
|
Long Running Tasks 0
|
|
```
|
|
|
|
# Automated Tests
|
|
|
|
To execute the automated tests, just execute `make test`. This boots
|
|
up the elasticsearch containers, waits until they are up and running,
|
|
creates data on it and queries it.
|
|
|
|
# Cleanup
|
|
|
|
To just clean up the elasticsearch cluster run `make clean`.
|
|
|
|
To remove everything, run `make clean-docker`.
|
|
|
|
# Reference
|
|
|
|
## Mosscap configs
|
|
|
|
| CONFIG | DESCRIPTION |
|
|
|------------------|----------------------------------------------------------------------|
|
|
| msc-actions.yaml | contains all actions, used by all item configs |
|
|
| msc-docker.yaml | single item: used to wait until elasticsearch containers are healthy |
|
|
| msc-cluster.yaml | single item: create indices etc |
|
|
| msc-docs.yaml | generator items: put docs into the index |
|
|
| msc-search.yaml | single item: do some searches |
|
|
| msc-clean.yaml | single item: clean up the elasticsearch cluster |
|