diff --git a/flake.nix b/flake.nix
index dd947375..c5affe66 100644
--- a/flake.nix
+++ b/flake.nix
@@ -54,36 +54,39 @@
python3
];
installPhase =
- let
- revsFile = pkgs.writeText "spacebar-server-rev.json" (builtins.toJSON {
- rev = self.sourceInfo.rev or self.sourceInfo.dirtyRev;
- shortRev = self.sourceInfo.shortRev or self.sourceInfo.dirtyShortRev;
- lastModified = self.sourceInfo.lastModified;
- });
- in ''
- runHook preInstall
- # set -x
+ let
+ revsFile = pkgs.writeText "spacebar-server-rev.json" (
+ builtins.toJSON {
+ rev = self.sourceInfo.rev or self.sourceInfo.dirtyRev;
+ shortRev = self.sourceInfo.shortRev or self.sourceInfo.dirtyShortRev;
+ lastModified = self.sourceInfo.lastModified;
+ }
+ );
+ in
+ ''
+ runHook preInstall
+ # set -x
- # remove packages not needed for production, or at least try to...
- npm prune --omit dev --no-save $npmInstallFlags "''${npmInstallFlagsArray[@]}" $npmFlags "''${npmFlagsArray[@]}"
- ${./nix/trimNodeModules.sh}
+ # remove packages not needed for production, or at least try to...
+ npm prune --omit dev --no-save $npmInstallFlags "''${npmInstallFlagsArray[@]}" $npmFlags "''${npmFlagsArray[@]}"
+ ${./nix/trimNodeModules.sh}
- # Copy outputs
- echo "Installing package into $out"
- mkdir -p $out
- cp -r assets dist node_modules package.json $out/
- cp ${revsFile} $out/.rev
+ # Copy outputs
+ echo "Installing package into $out"
+ mkdir -p $out
+ cp -r assets dist node_modules package.json $out/
+ cp ${revsFile} $out/.rev
- # Create wrappers for start scripts
- echo "Creating wrappers for start scripts"
- for i in dist/**/start.js
- do
- makeWrapper ${pkgs.nodejs_24}/bin/node $out/bin/start-`dirname ''${i/dist\//}` --prefix NODE_PATH : $out/node_modules --add-flags --enable-source-maps --add-flags $out/$i
- done
+ # Create wrappers for start scripts
+ echo "Creating wrappers for start scripts"
+ for i in dist/**/start.js
+ do
+ makeWrapper ${pkgs.nodejs_24}/bin/node $out/bin/start-`dirname ''${i/dist\//}` --prefix NODE_PATH : $out/node_modules --add-flags --enable-source-maps --add-flags $out/$i
+ done
- # set +x
- runHook postInstall
- '';
+ # set +x
+ runHook postInstall
+ '';
passthru.tests = pkgs.testers.runNixOSTest (import ./nix/tests/test-bundle-starts.nix self);
};
diff --git a/nix/tests/test-bundle-starts.nix b/nix/tests/test-bundle-starts.nix
index 4378369c..14108a41 100644
--- a/nix/tests/test-bundle-starts.nix
+++ b/nix/tests/test-bundle-starts.nix
@@ -7,7 +7,14 @@ self:
nodes.machine = {
imports = [ self.nixosModules.default ];
- services.spacebarchat-server.enable = true;
+ services.spacebarchat-server = {
+ enable = true;
+ settings = {
+ api = { endpointPublic = "http://localhost:3001/api/v9/"; };
+ cdn = { endpointPublic = "http://localhost:3001/"; endpointPrivate = "http://localhost:3001/"; };
+ gateway = { endpointPublic = "ws://localhost:3001/"; };
+ };
+ };
};
testScript = ''
diff --git a/scripts/test.js b/scripts/test.js
index 69e9fdd6..c79e336f 100644
--- a/scripts/test.js
+++ b/scripts/test.js
@@ -23,10 +23,21 @@
const { spawn } = require("child_process");
const path = require("path");
+const fs = require("fs");
-const server = spawn("node", [
- path.join(__dirname, "..", "dist", "bundle", "start.js"),
-]);
+const cfgFile = path.join(__dirname, "test_config.json");
+process.env.CONFIG_PATH = cfgFile;
+
+fs.writeFileSync(
+ cfgFile,
+ JSON.stringify({
+ api: { endpointPublic: "http://localhost:3001/api/v9/" },
+ cdn: { endpointPublic: "http://localhost:3001/", endpointPrivate: "http://localhost:3001/" },
+ gateway: { endpointPublic: "ws://localhost:3001/" },
+ }),
+);
+
+const server = spawn("node", [path.join(__dirname, "..", "dist", "bundle", "start.js")]);
server.stdout.on("data", (data) => {
process.stdout.write(data);
|