From 3b00c69e073100ceccec3062446627fb2e8810fc Mon Sep 17 00:00:00 2001 From: Wayne Date: Tue, 16 Jul 2019 23:46:36 +0200 Subject: [PATCH] added command_pass test + implementation --- src/server.js | 5 +++++ src/user.js | 3 +++ test/command_pass.js | 24 ++++++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 test/command_pass.js diff --git a/src/server.js b/src/server.js index 4bbb541..ea5dc56 100644 --- a/src/server.js +++ b/src/server.js @@ -71,6 +71,11 @@ server.create = function create() { case "QUIT": server.closeConnection(user.nickname) break; + case "PASS": + if (tokenized[1]) + user.setPassword(tokenized[1]) + break; + default: console.error(`Unknown command: ${command}`); } diff --git a/src/user.js b/src/user.js index 2eb23e0..e04cc04 100644 --- a/src/user.js +++ b/src/user.js @@ -12,6 +12,9 @@ function User(socket) { this.getNickname = function(nickname) { return this.nickname } + this.setPassword = function (password) { + this.password = password + } this.register = function(username, realname) { this.username = username diff --git a/test/command_pass.js b/test/command_pass.js new file mode 100644 index 0000000..36e605d --- /dev/null +++ b/test/command_pass.js @@ -0,0 +1,24 @@ +const assert = require('assert'); +const EventEmitter = require('events'); +const IRCServer = require("../src/server.js"); + +describe("PASS OK", function () { + it("should handle a PASS command -> PASS some_passwd", function (done) { + const server = IRCServer.create() + let mockedSock = new EventEmitter() + + + mockedSock.destroy = function () { + done("Destroyed socket without answering") + } + + server.emit("connection", mockedSock) + mockedSock.emit('data', Buffer.from("PASS some_pass\r\n", "ascii")) + mockedSock.emit('data', Buffer.from("NICK some_nick\r\n", "ascii")) + + user = server.getUserlist()["some_nick"] + assert.equal("some_pass", user["password"]) + done() + + }) +}) \ No newline at end of file