1import ../make-test-python.nix (
2 { pkgs, ... }:
3
4 let
5 certs = import ../common/acme/server/snakeoil-certs.nix;
6
7 serverDomain = certs.domain;
8 in
9 {
10 name = "open-web-calendar";
11 meta.maintainers = with pkgs.lib.maintainers; [ erictapen ];
12
13 nodes.server =
14 { pkgs, lib, ... }:
15 {
16 services.open-web-calendar = {
17 enable = true;
18 domain = serverDomain;
19 calendarSettings.title = "My custom title";
20 };
21
22 services.nginx.virtualHosts."${serverDomain}" = {
23 enableACME = lib.mkForce false;
24 sslCertificate = certs."${serverDomain}".cert;
25 sslCertificateKey = certs."${serverDomain}".key;
26 };
27
28 security.pki.certificateFiles = [ certs.ca.cert ];
29
30 networking.hosts."::1" = [ "${serverDomain}" ];
31 networking.firewall.allowedTCPPorts = [
32 80
33 443
34 ];
35 };
36
37 nodes.client =
38 { pkgs, nodes, ... }:
39 {
40 networking.hosts."${nodes.server.networking.primaryIPAddress}" = [ "${serverDomain}" ];
41
42 security.pki.certificateFiles = [ certs.ca.cert ];
43 };
44
45 testScript = ''
46 start_all()
47 server.wait_for_unit("open-web-calendar.socket")
48 server.wait_until_succeeds("curl -f https://${serverDomain}/ | grep 'My custom title'")
49 '';
50 }
51)