diff --git a/flake.nix b/flake.nix index dd947375a..c5affe663 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 4378369cc..14108a411 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 69e9fdd64..c79e336ff 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);