Browse Source

Merge commit 'b55e1cc810d08a7294642615b4b9a6be4152f47b' into HEAD

feature/addNonDirectMsg
Jenkins 5 years ago
parent
commit
e68a23ecc3
  1. 5
      src/server.js
  2. 7
      src/user.js
  3. 54
      test/user.js

5
src/server.js

@ -23,10 +23,7 @@ server.create = function create(config = {}) {
let userlist = {}
let channellist = {}
let server = net.createServer((socket) => {
const user = new User(socket)
if (!config.password) {
user.authenticated = true
}
const user = new User(socket, !config.password)
socket.on('data', function (data) {
data.toString("ascii").split("\r\n").forEach(function (commandline) {
if (commandline == "") {

7
src/user.js

@ -1,6 +1,6 @@
function User(socket) {
function User(socket, authenticatedDefault) {
this.registered = false
this.authenticated = false
this.authenticated = authenticatedDefault
this.nickname = ""
this.connection = socket
this.realname = ""
@ -13,9 +13,6 @@ function User(socket) {
this.getNickname = function(nickname) {
return this.nickname
}
this.setPassword = function (password) {
this.password = password
}
this.register = function(username, realname) {
if (!this.authenticated) {

54
test/user.js

@ -0,0 +1,54 @@
const assert = require('assert');
const User = require("../src/user.js");
describe('User', function () {
describe('#contructor()', function () {
it("should create a user while no password is required", function () {
let mockedSock = {}
const user = new User(mockedSock, true)
assert.equal(typeof user, 'object')
})
it("should create a user while password is required", function () {
let mockedSock = {}
const user = new User(mockedSock, false)
assert.equal(typeof user, 'object')
})
})
describe('#sendMsg(from, message)', function() {
it("should send a message to the user's socket", function (done) {
let mockedSock = {write: function (data) {
assert.equal(data, ":some_nick PRIVMSG some_nick :test message\r\n")
done()
}}
const user = new User(mockedSock, true)
user.setNickname("some_nick")
user.register("some_nick")
user.sendMsg(user, "test message")
})
})
describe('#sendRaw(message)', function() {
it("should send a raw command to the user's socket", function(done) {
let mockedSock = {write: function (data) {
assert.equal(data, ":irc.example.com TEST this :command with parameters\r\n")
done()
}}
const user = new User(mockedSock, true)
user.setNickname("some_nick")
user.register("some_nick")
user.sendRaw(":irc.example.com TEST this :command with parameters")
})
})
describe('#closeConnection()', function() {
it("should call destroy on user's socket", function(done) {
let mockedSock = {destroy: function () {
done()
}}
const user = new User(mockedSock, true)
user.closeConnection()
})
})
})
Loading…
Cancel
Save