Skip to content

Commit

Permalink
api tests
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperRonanCraft committed Mar 31, 2024
1 parent 39708dd commit 93666bb
Show file tree
Hide file tree
Showing 8 changed files with 4,146 additions and 278 deletions.
4,301 changes: 4,031 additions & 270 deletions NodeServer/package-lock.json

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion NodeServer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,16 @@
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"test": "jest"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.19.2"
},
"devDependencies": {
"jest": "^29.7.0",
"supertest": "^6.3.4"
}
}
12 changes: 12 additions & 0 deletions NodeServer/public/api/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>BetterRTP - Routes</title>
</head>
<body>
<p>BetterRTP API Routes coming soon!</p>
</body>
<script src="index.js"></script>
</html>
31 changes: 31 additions & 0 deletions NodeServer/routes/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
const express = require("express");
const path = require("path");

const app = express();

const api = require("./index.js");

//Middleware
//Allows to send json body
app.use(express.json());

// app.use((req, red, next) => {
// const yellow = "\x1b[33m%s\x1b[0m";

// // Log out the request type and resource
// console.log(yellow, `${req.method} request to ${req.path}`);
// next();
// });

app.use(express.static("public"));

//Routes
//Send all requests starting with /api to index.js to routes folder
app.use("/api", api);

//https://localhost route to default page
app.get("/", (req, res) => {
res.sendFile(path.join(__dirname, "/public/index.html"));
});

module.exports = app;
12 changes: 12 additions & 0 deletions NodeServer/routes/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
const router = require("express").Router();
const path = require("path");

const rtp = require("./rtp");

router.use("/rtp", rtp);

router.get("/", (req, res) => {
res.sendFile(path(__dirname, "../public/api/index.html"));
});

module.exports = router;
28 changes: 28 additions & 0 deletions NodeServer/routes/rtp.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
const rtpdata = require("express").Router();

rtpdata.post("/", (req, res) => {
const validate = () =>
new Promise((resolve, reject) => {
const json = req.body;
if (json !== undefined) {
resolve(json);
} else {
reject(new Error("No Json"));
}
});
validate()
.then((data) => {
console.log("Validate:", data);
res.json({
added: true,
});
})
.catch((err) => {
console.log("Error:", err);
res.json({
added: false,
});
});
});

module.exports = rtpdata;
9 changes: 2 additions & 7 deletions NodeServer/server.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
const express = require("express");
const path = require("path");

const app = express();
const app = require("./routes/app.js");
const port = 3001;

app.use(express.static("public"));

app.get("/api/servers", (req, res) => {
res.send("Test");
});

app.listen(port, () => {
console.log(`BetterRTP Server online at http://localhost:${port}`);
});
25 changes: 25 additions & 0 deletions NodeServer/tests/api.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
const request = require("supertest");
const app = require("../routes/app.js");

describe("GET /api", () => {
it("responds with html file", async () => {
const res = await request(app).get("/api");
// console.log(res.header);
expect(res.header["content-type"]).toBe("text/html; charset=UTF-8");
});
});

describe("POST /api/rtp", () => {
it("responds with json and `added = false`", async () => {
const res = await request(app).post("/api/rtp");
expect(res.header["content-type"]).toBe("application/json; charset=utf-8");
expect(res.body.added).toBe(false);
});
it("responds with json and `added = true`", async () => {
const res = await request(app).post("/api/rtp").send({
playerId: "test123",
});
expect(res.header["content-type"]).toBe("application/json; charset=utf-8");
expect(res.body.added).toBe(true);
});
});

0 comments on commit 93666bb

Please sign in to comment.