mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
test: add test for config with default_room_version
This commit refactors the test a bit to run the basic test script with different configs. Currently we have two configs we test: - the bare minimum to make it run (base) - base + default_room_version set to "12"
This commit is contained in:
+67
-41
@@ -6,43 +6,10 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
let
|
||||||
# run some nixos tests as checks
|
baseTestScript =
|
||||||
checks = lib.pipe self'.packages [
|
pkgs.writers.writePython3Bin "do_test" { libraries = [ pkgs.python3Packages.matrix-nio ]; }
|
||||||
# we take all packages (names)
|
''
|
||||||
builtins.attrNames
|
|
||||||
# we filter out all packages that end with `-bin` (which we are interested in for testing)
|
|
||||||
(builtins.filter (lib.hasSuffix "-bin"))
|
|
||||||
# for each of these binaries we built the basic nixos test
|
|
||||||
#
|
|
||||||
# this test was initially yoinked from
|
|
||||||
#
|
|
||||||
# https://github.com/NixOS/nixpkgs/blob/960ce26339661b1b69c6f12b9063ca51b688615f/nixos/tests/matrix/continuwuity.nix
|
|
||||||
(builtins.map (name: {
|
|
||||||
name = "test-${name}";
|
|
||||||
value = pkgs.testers.runNixOSTest {
|
|
||||||
inherit name;
|
|
||||||
|
|
||||||
nodes = {
|
|
||||||
continuwuity = {
|
|
||||||
services.matrix-continuwuity = {
|
|
||||||
enable = true;
|
|
||||||
package = self'.packages.${name};
|
|
||||||
settings.global = {
|
|
||||||
server_name = name;
|
|
||||||
address = [ "0.0.0.0" ];
|
|
||||||
allow_registration = true;
|
|
||||||
yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = true;
|
|
||||||
};
|
|
||||||
extraEnvironment.RUST_BACKTRACE = "yes";
|
|
||||||
};
|
|
||||||
networking.firewall.allowedTCPPorts = [ 6167 ];
|
|
||||||
};
|
|
||||||
client =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
environment.systemPackages = [
|
|
||||||
(pkgs.writers.writePython3Bin "do_test" { libraries = [ pkgs.python3Packages.matrix-nio ]; } ''
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import nio
|
import nio
|
||||||
|
|
||||||
@@ -100,9 +67,41 @@
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
asyncio.run(main())
|
asyncio.run(main())
|
||||||
'')
|
'';
|
||||||
];
|
in
|
||||||
|
{
|
||||||
|
# run some nixos tests as checks
|
||||||
|
checks = lib.pipe self'.packages [
|
||||||
|
# we take all packages (names)
|
||||||
|
builtins.attrNames
|
||||||
|
# we filter out all packages that end with `-bin` (which we are interested in for testing)
|
||||||
|
(builtins.filter (lib.hasSuffix "-bin"))
|
||||||
|
# for each of these binaries we built the basic nixos test
|
||||||
|
#
|
||||||
|
# this test was initially yoinked from
|
||||||
|
#
|
||||||
|
# https://github.com/NixOS/nixpkgs/blob/960ce26339661b1b69c6f12b9063ca51b688615f/nixos/tests/matrix/continuwuity.nix
|
||||||
|
(builtins.concatMap (
|
||||||
|
name:
|
||||||
|
builtins.map
|
||||||
|
(
|
||||||
|
{ config, suffix }:
|
||||||
|
{
|
||||||
|
name = "test-${name}-${suffix}";
|
||||||
|
value = pkgs.testers.runNixOSTest {
|
||||||
|
inherit name;
|
||||||
|
|
||||||
|
nodes = {
|
||||||
|
continuwuity = {
|
||||||
|
services.matrix-continuwuity = {
|
||||||
|
enable = true;
|
||||||
|
package = self'.packages.${name};
|
||||||
|
settings = config;
|
||||||
|
extraEnvironment.RUST_BACKTRACE = "yes";
|
||||||
};
|
};
|
||||||
|
networking.firewall.allowedTCPPorts = [ 6167 ];
|
||||||
|
};
|
||||||
|
client.environment.systemPackages = [ baseTestScript ];
|
||||||
};
|
};
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
@@ -113,11 +112,38 @@
|
|||||||
continuwuity.wait_for_open_port(6167)
|
continuwuity.wait_for_open_port(6167)
|
||||||
|
|
||||||
with subtest("ensure messages can be exchanged"):
|
with subtest("ensure messages can be exchanged"):
|
||||||
client.succeed("do_test >&2")
|
client.succeed("${lib.getExe baseTestScript} >&2")
|
||||||
'';
|
'';
|
||||||
|
|
||||||
};
|
};
|
||||||
}))
|
}
|
||||||
|
)
|
||||||
|
[
|
||||||
|
{
|
||||||
|
suffix = "base";
|
||||||
|
config = {
|
||||||
|
global = {
|
||||||
|
server_name = name;
|
||||||
|
address = [ "0.0.0.0" ];
|
||||||
|
allow_registration = true;
|
||||||
|
yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
suffix = "with-room-version";
|
||||||
|
config = {
|
||||||
|
global = {
|
||||||
|
server_name = name;
|
||||||
|
address = [ "0.0.0.0" ];
|
||||||
|
allow_registration = true;
|
||||||
|
yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = true;
|
||||||
|
default_room_version = "12";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]
|
||||||
|
))
|
||||||
builtins.listToAttrs
|
builtins.listToAttrs
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user