diff --git a/package.json b/package.json index 16f3c87fb..a6017c8a2 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "start:cdn": "node dist/cdn/start.js", "start:gateway": "node dist/gateway/start.js", "build": "tsc -p .", + "test": "node scripts/test.js", "lint": "eslint .", "setup": "npm run build && npm run generate:schema", "sync:db": "npm run build && node scripts/syncronise.js", diff --git a/scripts/test.js b/scripts/test.js new file mode 100644 index 000000000..724b14e95 --- /dev/null +++ b/scripts/test.js @@ -0,0 +1,50 @@ +/* + Spacebar: A FOSS re-implementation and extension of the Discord.com backend. + Copyright (C) 2023 Spacebar and Spacebar Contributors + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +/* + Super simple script to check if the server starts at all, for use in gh actions. + Not a proper test framework by any means. +*/ + +const { spawn } = require("child_process"); +const path = require("path"); + +const server = spawn("node", [ + path.join(__dirname, "..", "dist", "bundle", "start.js"), +]); + +server.stdout.on("data", (data) => { + process.stdout.write(data); + + if (data.toString().toLowerCase().includes("listening")) { + // we good :) + console.log("we good"); + process.kill(0); + } +}); + +server.stderr.on("data", (err) => { + process.stdout.write(err); + // we bad :( + process.kill(1); +}); + +server.on("close", (code) => { + console.log("closed with code", code); + process.exit(code); +});