mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2026-02-16 02:21:06 +00:00
api tests
This commit is contained in:
3761
NodeServer/package-lock.json
generated
3761
NodeServer/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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
NodeServer/public/api/index.html
Normal file
12
NodeServer/public/api/index.html
Normal file
@@ -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
NodeServer/routes/app.js
Normal file
31
NodeServer/routes/app.js
Normal file
@@ -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
NodeServer/routes/index.js
Normal file
12
NodeServer/routes/index.js
Normal file
@@ -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
NodeServer/routes/rtp.js
Normal file
28
NodeServer/routes/rtp.js
Normal file
@@ -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;
|
||||
@@ -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
NodeServer/tests/api.test.js
Normal file
25
NodeServer/tests/api.test.js
Normal file
@@ -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);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user