From b20cbb12cdcb1fb81a22f58f028a2d876eafa832 Mon Sep 17 00:00:00 2001 From: Sophie Tauchert Date: Fri, 7 Jul 2023 11:27:55 +0200 Subject: [PATCH] nixos/synapse: add test for running synapse with workers Co-authored-by: Daniel Olsen --- nixos/tests/all-tests.nix | 1 + nixos/tests/matrix/synapse-workers.nix | 55 ++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 nixos/tests/matrix/synapse-workers.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 2d9674e69b6..0574c1db875 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -468,6 +468,7 @@ in { matrix-appservice-irc = handleTest ./matrix/appservice-irc.nix {}; matrix-conduit = handleTest ./matrix/conduit.nix {}; matrix-synapse = handleTest ./matrix/synapse.nix {}; + matrix-synapse-workers = handleTest ./matrix/synapse-workers.nix {}; mattermost = handleTest ./mattermost.nix {}; mediamtx = handleTest ./mediamtx.nix {}; mediatomb = handleTest ./mediatomb.nix {}; diff --git a/nixos/tests/matrix/synapse-workers.nix b/nixos/tests/matrix/synapse-workers.nix new file mode 100644 index 00000000000..a08b326abe6 --- /dev/null +++ b/nixos/tests/matrix/synapse-workers.nix @@ -0,0 +1,55 @@ +import ../make-test-python.nix ({ pkgs, ... }: { + name = "matrix-synapse-workers"; + meta = with pkgs.lib; { + maintainers = teams.matrix.members; + }; + + nodes = { + homeserver = + { pkgs + , nodes + , ... + }: { + services.postgresql = { + enable = true; + initialScript = pkgs.writeText "synapse-init.sql" '' + CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse'; + CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse" + TEMPLATE template0 + LC_COLLATE = "C" + LC_CTYPE = "C"; + ''; + }; + + services.matrix-synapse = { + enable = true; + settings = { + database = { + name = "psycopg2"; + args.password = "synapse"; + }; + enable_registration = true; + enable_registration_without_verification = true; + + federation_sender_instances = [ "federation_sender" ]; + }; + configureRedisLocally = true; + workers = { + enable = true; + config = { + "federation_sender" = { + worker_app = "synapse.app.generic_worker"; + }; + }; + }; + }; + }; + }; + + testScript = '' + start_all() + + homeserver.wait_for_unit("matrix-synapse.service"); + homeserver.wait_for_unit("matrix-synapse-worker-federation_sender.service"); + ''; +})