UNPKG

vite.js

Version:

The simplest way to bootstrap a nodejs server and dive straight into coding.

196 lines (190 loc) 4.57 kB
const axios = require("axios"); const opn = require("open"); const random = Math.random().toString(); const ViteJS = require("../index"); process.env.TEST = true; let sjs = {}; let server = {}; let database = {}; let io = {}; describe("Vite.js", () => { it("Module: Construct server", done => { sjs = new ViteJS({ name: "test", internalLog: false, exited: done, port: 8000, mongo: process.platform != "win32" ? "mongodb://localhost:27017/" : null, viewsDir: `${__dirname}/views`, publicDir: `${__dirname}/public`, routes: [ { url: "/api", router: require("./routes/api") } ] }); server = sjs.app; database = sjs.database; io = sjs.socket; }); it("Module: Check for options", done => { done(server.options == {}); }); it("Express: Add get route", done => { server.get("/get", (req, res) => { res.send(random); }); axios .get(`http://localhost:${sjs.options.port}/get`) .then(res => { if (res.data == random) { done(false); } else { done(new Error("Get route failed")); } }) .catch(err => { done(err); }); }); it("Express: Test route", done => { axios .get(`http://localhost:${sjs.options.port}/api`) .then(res => { if (res.data == "It's working!") { done(false); } else { done(new Error("API route failed")); } }) .catch(err => { done(err); }); }); it("Express: Add post route", done => { server.post("/post", (req, res) => { res.send(random); }); axios .post(`http://localhost:${sjs.options.port}/post`) .then(res => { if (res.data == random) { done(false); } else { done(new Error("Post route failed")); } }) .catch(err => { done(err); }); }); it("Express: Add middleware", done => { server.use((req, res, next) => { req.session.dif = random; next(); }); server.get("/middleware", (req, res) => { res.send(req.session.dif.toString()); }); axios .get(`http://localhost:${sjs.options.port}/middleware`) .then(res => { if (res.data && res.data == random) { done(false); } else { done(new Error("Middleware failed")); } }) .catch(err => { done(err); }); }); it("Socket: Add route", done => { server.get("/socket", (req, res) => { res.sendFile(`${__dirname}/views/socket.html`); }); done(); }); it("Socket: Connect", done => { io.on("connection", () => { done(); }); io.on("test", () => { done(); }); process.platform == "darwin" ? opn(`http://localhost:${sjs.options.port}/socket`) : done(); // For circleci and travis }); if (process.platform == "darwin") { it("Database: Set/Get database key", done => { database.set("Test", random); const got = database.get("Test"); if (got == random) { done(); } else { done(new Error("Key is incorrect")); } }); it("Database: Delete database key", done => { database.delete("Test"); const got = database.get("Test"); if (!got) { done(); } else { done(new Error("Key is incorrect")); } }); } }); if (process.platform == "darwin") { describe("ViteJS-cli", function() { const run = require("child_process").exec; it("Link", function(done) { run("sudo npm link", function(err, stdout) { if (err) { done(err); } else { done(); } }); }); it("Initialize", function(done) { run("vite-dev init", function(err, stdout) { if (err) { done(err); } else { done(); } }); }); it("Run", function(done) { run("cd src/test/vitejs; sudo npm i --save; npm start", function(err) { if (err) { done(err); } else { done(); } }); }); it("Delete", function(done) { run("sudo rm -rf src/test/vitejs", function(err) { if (err) { done(err); } else { done(); } }); }); it("Unlink", function(done) { run("sudo npm unlink", function(err, stdout) { if (err) { done(err); } else { done(); } }); }); }); }