Skip to content

Commit fa2a337

Browse files
Nick Woodwardpatcon
Nick Woodward
authored andcommitted
Fixed failing tests. [#24]
1 parent b30ed6f commit fa2a337

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

src/auth.coffee

+5-5
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ module.exports = (robot) ->
6464

6565
robot.auth = new Auth
6666

67-
robot.respond /@?(.+) ha(s|ve) (["'\w: -_]+) role/i, (msg) ->
67+
robot.respond /@?([^\s]+) ha(?:s|ve) (["'\w: -_]+) role/i, (msg) ->
6868
unless robot.auth.isAdmin msg.message.user
6969
msg.reply "Sorry, only admins can assign roles."
7070
else
7171
name = msg.match[1].trim()
7272
if name.toLowerCase() is 'i' then name = msg.message.user.name
73-
newRole = msg.match[3].trim().toLowerCase()
73+
newRole = msg.match[2].trim().toLowerCase()
7474

7575
unless name.toLowerCase() in ['', 'who', 'what', 'where', 'when', 'why']
7676
user = robot.brain.userForName(name)
@@ -87,13 +87,13 @@ module.exports = (robot) ->
8787
user.roles.push(newRole)
8888
msg.reply "OK, #{name} has the '#{newRole}' role."
8989

90-
robot.respond /@?(.+) do(n['’]t|esn['’]t|es)( not)? have (["'\w: -_]+) role/i, (msg) ->
90+
robot.respond /@?([^\s]+) (?:don['’]t|doesn['’]t|do not) have (["'\w: -_]+) role/i, (msg) ->
9191
unless robot.auth.isAdmin msg.message.user
9292
msg.reply "Sorry, only admins can remove roles."
9393
else
9494
name = msg.match[1].trim()
9595
if name.toLowerCase() is 'i' then name = msg.message.user.name
96-
newRole = msg.match[4].trim().toLowerCase()
96+
newRole = msg.match[2].trim().toLowerCase()
9797

9898
unless name.toLowerCase() in ['', 'who', 'what', 'where', 'when', 'why']
9999
user = robot.brain.userForName(name)
@@ -107,7 +107,7 @@ module.exports = (robot) ->
107107
user.roles = (role for role in user.roles when role isnt newRole)
108108
msg.reply "OK, #{name} doesn't have the '#{newRole}' role."
109109

110-
robot.respond /what roles? do(es)? @?(.+) have\?*$/i, (msg) ->
110+
robot.respond /what roles? do(es)? @?([^\s]+) have\?*$/i, (msg) ->
111111
name = msg.match[2].trim()
112112
if name.toLowerCase() is 'i' then name = msg.message.user.name
113113
user = robot.brain.userForName(name)

test/auth-test.coffee

+8-1
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@ describe 'auth', ->
4444

4545
done()
4646

47-
afterEach ->
47+
afterEach (done) ->
4848
robot.shutdown()
49+
done()
4950

5051
it 'list admin users', (done) ->
5152
adapter.on "reply", (envelope, strings) ->
@@ -93,6 +94,9 @@ describe 'auth', ->
9394
adapter.receive(new TextMessage admin_user, "hubot: admin-user has demo role")
9495

9596
adapter.on "reply", (envelope, strings) ->
97+
if strings[0].match /OK, admin-user has .*demo/i
98+
return
99+
96100
expect(strings[0]).to.match /ha(s|ve) the 'demo' role/i
97101
done()
98102

@@ -102,6 +106,9 @@ describe 'auth', ->
102106
adapter.receive(new TextMessage admin_user, "hubot: admin-user has demo role")
103107

104108
adapter.on "reply", (envelope, strings) ->
109+
if strings[0].match /OK, admin-user has .*demo/i
110+
return
111+
105112
expect(strings[0]).to.match(/following roles: .*admin/)
106113
expect(strings[0]).to.match(/following roles: .*demo/)
107114
done()

0 commit comments

Comments
 (0)