Files
2026-08-09 21:53:47 +02:00
..
2026-07-06 14:22:59 +02:00
2026-07-06 14:22:59 +02:00
2026-07-06 14:22:59 +02:00
2026-08-09 21:53:47 +02:00
2026-07-06 14:22:59 +02:00
2026-07-06 14:22:59 +02:00
2026-07-06 14:22:59 +02:00
2026-07-06 14:22:59 +02:00
2026-07-06 14:22:59 +02:00
2026-07-06 14:22:59 +02:00
2026-07-06 14:29:36 +02:00

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 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:

$ 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.:

$ 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