{ nixpkgs, self, system, }: let pkgs = nixpkgs.legacyPackages.${system}; evaluatedSystem = nixpkgs.lib.nixosSystem { inherit system; modules = [ self.nixosModules.tide { services.tide = { enable = true; secretFiles = { adminPassword = "/run/secrets/tide-admin-password"; mailPassword = "/run/secrets/tide-mail-password"; secretKeyBase = "/run/secrets/tide-secret-key-base"; borgPassphrase = "/run/secrets/borg-passphrase"; borgPrivateKey = "/run/secrets/borg-private-key"; }; }; } ]; }; evaluatedConfig = evaluatedSystem.config; discourseConfig = evaluatedConfig.services.discourse; backupConfig = evaluatedConfig.services.borgbackup.jobs.discourse; backupService = evaluatedConfig.systemd.services.borgbackup-job-discourse; in assert discourseConfig.enable; assert discourseConfig.hostname == "discourse.torahimderecheretz.com"; assert discourseConfig.admin.email == "yisroel.d.baum@gmail.com"; assert discourseConfig.admin.fullName == "Yisroel Baum"; assert discourseConfig.admin.username == "yisroeldbaum"; assert discourseConfig.admin.passwordFile == "/run/secrets/tide-admin-password"; assert discourseConfig.mail.notificationEmailAddress == "system@torahimderecheretz.com"; assert discourseConfig.mail.contactEmailAddress == "system@torahimderecheretz.com"; assert discourseConfig.mail.outgoing.passwordFile == "/run/secrets/tide-mail-password"; assert discourseConfig.mail.outgoing.serverAddress == "in-v3.mailjet.com"; assert discourseConfig.mail.outgoing.port == 587; assert discourseConfig.mail.outgoing.authentication == "login"; assert discourseConfig.siteSettings.required.title == "Torah Im Derech Eretz"; assert discourseConfig.secretKeyBaseFile == "/run/secrets/tide-secret-key-base"; assert backupConfig.repo == "ssh://oas17j8p@oas17j8p.repo.borgbase.com/./repo"; assert backupConfig.startAt == "*-*-* 07:15:00"; assert backupConfig.persistentTimer; assert backupConfig.prune.keep.daily == 7; assert backupConfig.prune.keep.weekly == 4; assert backupConfig.prune.keep.monthly == 6; assert builtins.elem "/var/lib/discourse" backupConfig.paths; assert builtins.elem "sops-install-secrets.service" backupService.after; assert !(evaluatedConfig.services.phpfpm.pools ? tide); assert !(evaluatedConfig.services.nginx.virtualHosts ? "tide.yisroelbaum.com"); assert !(evaluatedConfig.services.nginx.virtualHosts ? "apitide.yisroelbaum.com"); pkgs.runCommand "tide-module-test" { } '' touch "$out" ''