Add web server tests
This commit is contained in:
parent
e45edff613
commit
f65a5a8c89
3
test/fixtures/.lounge/config.js
vendored
3
test/fixtures/.lounge/config.js
vendored
@ -3,5 +3,8 @@
|
||||
var config = require("../../../defaults/config.js");
|
||||
|
||||
config.prefetch = true;
|
||||
config.host = config.bind = "127.0.0.1";
|
||||
config.port = 61337;
|
||||
config.transports = ["websocket"];
|
||||
|
||||
module.exports = config;
|
||||
|
7
test/fixtures/env.js
vendored
7
test/fixtures/env.js
vendored
@ -1,4 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
global.log = {
|
||||
error: () => console.error.apply(console, arguments),
|
||||
warn: () => {},
|
||||
info: () => {},
|
||||
debug: () => {},
|
||||
};
|
||||
|
||||
var home = require("path").join(__dirname, ".lounge");
|
||||
require("../../src/helper").setHome(home);
|
||||
|
100
test/server.js
Normal file
100
test/server.js
Normal file
@ -0,0 +1,100 @@
|
||||
"use strict";
|
||||
|
||||
const Helper = require("../src/helper");
|
||||
const expect = require("chai").expect;
|
||||
const request = require("request");
|
||||
const io = require("socket.io-client");
|
||||
|
||||
describe("Server", () => {
|
||||
const server = require("../src/server");
|
||||
server();
|
||||
|
||||
const webURL = `http://${Helper.config.host}:${Helper.config.port}/`;
|
||||
|
||||
describe("Express", () => {
|
||||
it("should run a web server on " + webURL, done => {
|
||||
request(webURL, (error, response, body) => {
|
||||
expect(error).to.be.null;
|
||||
expect(body).to.include("<title>The Lounge</title>");
|
||||
expect(body).to.include("https://thelounge.github.io/");
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("should serve static content correctly", done => {
|
||||
request(webURL + "manifest.json", (error, response, body) => {
|
||||
expect(error).to.be.null;
|
||||
|
||||
body = JSON.parse(body);
|
||||
expect(body.name).to.equal("The Lounge");
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("WebSockets", () => {
|
||||
let client;
|
||||
|
||||
beforeEach(() => {
|
||||
client = io(webURL, {
|
||||
path: "/socket.io/",
|
||||
autoConnect: false,
|
||||
reconnection: false,
|
||||
timeout: 1000,
|
||||
transports: [
|
||||
"websocket"
|
||||
]
|
||||
});
|
||||
|
||||
// Server emits events faster than the test can bind them
|
||||
setTimeout(() => {
|
||||
client.open();
|
||||
}, 1);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
client.close();
|
||||
});
|
||||
|
||||
it("should emit authorized message", done => {
|
||||
client.on("authorized", done);
|
||||
});
|
||||
|
||||
it("should create network", done => {
|
||||
client.on("init", () => {
|
||||
client.emit("conn", {
|
||||
username: "test-user",
|
||||
realname: "The Lounge Test",
|
||||
nick: "test-user",
|
||||
join: "#thelounge, #spam",
|
||||
name: "Test Network",
|
||||
host: Helper.config.host,
|
||||
port: 6667,
|
||||
});
|
||||
});
|
||||
|
||||
client.on("network", data => {
|
||||
expect(data.networks).to.be.an("array");
|
||||
expect(data.networks).to.have.lengthOf(1);
|
||||
expect(data.networks[0].realname).to.equal("The Lounge Test");
|
||||
expect(data.networks[0].channels).to.have.lengthOf(3);
|
||||
expect(data.networks[0].channels[0].name).to.equal("Test Network");
|
||||
expect(data.networks[0].channels[1].name).to.equal("#thelounge");
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("should emit init message", done => {
|
||||
client.on("init", data => {
|
||||
expect(data.active).to.equal(-1);
|
||||
expect(data.networks).to.be.an("array");
|
||||
expect(data.networks).to.be.empty;
|
||||
expect(data.token).to.be.null;
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user