diff --git a/flake.nix b/flake.nix index a350e74..0c19e44 100644 --- a/flake.nix +++ b/flake.nix @@ -30,6 +30,7 @@ nginx-pipeline-eval synapse-postgres synapse-sqlite + synapse-workers ; }); }; diff --git a/tests/default.nix b/tests/default.nix index 42888aa..3621350 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -4,4 +4,5 @@ synapse-postgres = pkgs.testers.runNixOSTest ./synapse-postgres; synapse-sqlite = pkgs.testers.runNixOSTest ./synapse-sqlite; + synapse-workers = pkgs.testers.runNixOSTest ./synapse-workers; } diff --git a/tests/synapse-workers/default.nix b/tests/synapse-workers/default.nix new file mode 100644 index 0000000..d327516 --- /dev/null +++ b/tests/synapse-workers/default.nix @@ -0,0 +1,53 @@ +{ pkgs, ... }: +{ + name = "matrix-synapse-workers"; + nodes = { + server = + { + pkgs, + nodes, + ... + }: + { + imports = [ + ../../synapse-module + ]; + + 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-next = { + enable = true; + + workers.federationSenders = 1; + workers.federationReceivers = 1; + workers.initialSyncers = 1; + workers.normalSyncers = 1; + workers.eventPersisters = 1; + workers.useUserDirectoryWorker = true; + + settings = { + server_name = "example.com"; + database = { + name = "psycopg2"; + args.password = "synapse"; + }; + }; + }; + + services.redis.servers."".enable = true; + }; + }; + + testScript = '' + server.wait_for_unit("matrix-synapse.target"); + ''; +}