Skip to content

Commit c6ec509

Browse files
committed
Merge pull request #33 from Tennu/353_parse
Add failing unit test, add trim() to make test pass
2 parents 462b5d4 + 83c80b6 commit c6ec509

File tree

3 files changed

+31
-3
lines changed

3 files changed

+31
-3
lines changed

lib/message.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ var extensions = {
128128
// :<server> 353 <me> = <channel> :<nicknames>
129129
message.replyname = "RPL_NAMREPLY";
130130
message.channel = message.params[2];
131-
message.nicknames = message.params[3].split(" ");
131+
message.nicknames = message.params[3].trim().split(" ");
132132
},
133133

134134
"366": function (message) {

test-src/message.sjs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ var arg1 = 'arg-1';
1515
var arg2 = 'arg-2';
1616
var restargs = 'rest arguments';
1717
var reason = 'Because I want to.';
18+
var nick1 = "adam";
19+
var nick2 = "beatrice";
20+
var nick3 = "charlie";
1821

1922
var messages = {
2023
generic: format('GENERIC'),
@@ -33,7 +36,8 @@ var messages = {
3336
part_reason: format(':%s PART %s :%s', hostmask, channel, reason),
3437

3538
quit: format(':%s QUIT', hostmask),
36-
quit_reason: format(':%s QUIT :%s', hostmask, reason)
39+
quit_reason: format(':%s QUIT :%s', hostmask, reason),
40+
a_353_with_whitespace: format(':%s 353 %s = %s :%s %s %s ', server, nickname, channel, nick1, nick2, nick3)
3741
};
3842

3943
describe 'Message' {
@@ -168,5 +172,16 @@ describe 'Message' {
168172
assert(message.hasOwnProperty('reason'));
169173
}
170174
}
175+
176+
describe '353:' {
177+
it 'creates correct nicknames array' {
178+
var message = Message(messages.a_353_with_whitespace, receiver);
179+
180+
assert(message.nicknames.length === 3);
181+
assert(message.nicknames[0] === "adam");
182+
assert(message.nicknames[1] === "beatrice");
183+
assert(message.nicknames[2] === "charlie");
184+
}
185+
}
171186
}
172187
}

test/message.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ var arg1 = 'arg-1';
2020
var arg2 = 'arg-2';
2121
var restargs = 'rest arguments';
2222
var reason = 'Because I want to.';
23+
var nick1 = 'adam';
24+
var nick2 = 'beatrice';
25+
var nick3 = 'charlie';
2326
var messages = {
2427
generic: format('GENERIC'),
2528
generic_args: format('GENERIC %s %s :%s', arg1, arg2, restargs),
@@ -33,7 +36,8 @@ var messages = {
3336
part: format(':%s PART %s', hostmask, channel),
3437
part_reason: format(':%s PART %s :%s', hostmask, channel, reason),
3538
quit: format(':%s QUIT', hostmask),
36-
quit_reason: format(':%s QUIT :%s', hostmask, reason)
39+
quit_reason: format(':%s QUIT :%s', hostmask, reason),
40+
a_353_with_whitespace: format(':%s 353 %s = %s :%s %s %s ', server, nickname, channel, nick1, nick2, nick3)
3741
};
3842
describe('Message', function () {
3943
describe('common properties', function () {
@@ -155,5 +159,14 @@ describe('Message', function () {
155159
assert(message.hasOwnProperty('reason'));
156160
});
157161
});
162+
describe('353:', function () {
163+
it('creates correct nicknames array', function () {
164+
var message = Message(messages.a_353_with_whitespace, receiver);
165+
assert(message.nicknames.length === 3);
166+
assert(message.nicknames[0] === 'adam');
167+
assert(message.nicknames[1] === 'beatrice');
168+
assert(message.nicknames[2] === 'charlie');
169+
});
170+
});
158171
});
159172
});

0 commit comments

Comments
 (0)