@hubot-friends/hubot-slack 3.1.0 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hubot-friends/hubot-slack",
3
- "version": "3.1.0",
3
+ "version": "3.1.2",
4
4
  "description": "A new Slack adapter for Hubot",
5
5
  "homepage": "https://github.com/hubot-friends/hubot-slack#readme",
6
6
  "main": "./index.mjs",
@@ -172,16 +172,15 @@ class SlackAdapter extends Adapter {
172
172
  }
173
173
  async mapToHubotMessage(event) {
174
174
  // console.error(event)
175
- const getUser = event.user ? this.#webClient.users.info.bind(this.#webClient.users.info) : this.#webClient.bots.info.bind(this.#webClient.bots.info)
176
- const lookUpId = event.user ?? event.bot_id
177
- const queryParameter = event.user ? { user: event.user } : { bot: event.bot_id }
178
- const fromBrain = this.robot.brain.users()[lookUpId]
175
+ const fromBrain = this.robot.brain.users()[event.user]
179
176
  if(!fromBrain) {
180
- const response = await getUser(queryParameter)
181
- this.robot.brain.userForId(lookUpId, response.user ?? response.bot)
177
+ const response = await this.#webClient.users.info({
178
+ user: event.user
179
+ })
180
+ this.robot.brain.userForId(event.user, response.user)
182
181
  }
183
- const fromUser = this.robot.brain.users()[lookUpId]
184
- return new TextMessage(new User(lookUpId, {
182
+ const fromUser = this.robot.brain.users()[event.user]
183
+ return new TextMessage(new User(event.user, {
185
184
  room: event.channel,
186
185
  name: fromUser.name
187
186
  }), event.text, event.ts)
@@ -5,9 +5,7 @@ import { Robot, TextMessage } from 'hubot'
5
5
  import EventEmitter from 'node:events'
6
6
 
7
7
  const BOT_ID = 'U0AAATTTTTAAAAA'
8
- const SOME_USER_ID = 'U123ABC456'
9
- const WORKFLOW_BOT_ID = 'BB12033'
10
- const APP_ID = 'ASADFASDFASDDDS'
8
+
11
9
  class SlackClientMock extends EventEmitter {
12
10
  #useRtmConnect = false
13
11
  #delegate = null
@@ -24,27 +22,10 @@ class SlackClientMock extends EventEmitter {
24
22
  this.emit('authenticated', new Error('Not authenticated'))
25
23
  }
26
24
  }
27
- const buildATestBot = id => ({
28
- ok: true,
29
- bot: {
30
- id: id,
31
- deleted: false,
32
- name: "beforebot",
33
- updated: 1449272004,
34
- app_id: "A123456",
35
- user_id: "U123456",
36
- icons: {
37
- image_36: "https://...",
38
- image_48: "https://...",
39
- image_72: "https://..."
40
- }
41
- }
42
- })
43
-
44
25
  const buildATestUser = () => ({
45
26
  ok: true,
46
27
  user: {
47
- id: SOME_USER_ID,
28
+ id: 'U123ABC456',
48
29
  team_id: 'TASDASDFSDD',
49
30
  name: 'bossdog',
50
31
  deleted: false,
@@ -109,61 +90,6 @@ const buildATestUser = () => ({
109
90
  }
110
91
  })
111
92
 
112
- const buildSlackMessageFromBot = (event, toBotId) => ({
113
- ack: () => {},
114
- envelope_id: 'e9b92395-bedd-4da7',
115
- body: {
116
- token: 'ASDFASFASDFASDFASDFASD',
117
- team_id: 'TASDASDFSDD',
118
- context_team_id: 'TASDASDFSDD',
119
- context_enterprise_id: null,
120
- api_app_id: 'ASADFASDFASDDDS',
121
- event: {
122
- subtype: 'bot_message',
123
- text: event?.text ?? `<@${toBotId}> help`,
124
- username: event?.username ?? 'Workflow',
125
- type: event?.type ?? 'message',
126
- bot_id: event?.bot_id ?? 'BB12033',
127
- app_id: event?.app_id ?? APP_ID,
128
- ts: event?.ts ?? '1688420854.574989',
129
- blocks: event?.blocks ?? [],
130
- channel: event?.channel ?? 'CASDFASDFASDSD',
131
- event_ts: event?.ts ?? '1688420854.574989',
132
- channel_type: event.channel_type ?? 'channel'
133
- },
134
- type: 'event_callback',
135
- event_id: 'Ev05F9TNCNDB',
136
- event_time: 1688420854,
137
- authorizations: [
138
- {
139
- enterprise_id: null,
140
- team_id: 'TASDASDFSDD',
141
- user_id: toBotId,
142
- is_bot: true,
143
- is_enterprise_install: false
144
- }
145
- ],
146
- is_ext_shared_channel: false,
147
- event_context: '4-eyJldCI6Im'
148
- },
149
- event: {
150
- subtype: 'bot_message',
151
- text: event?.text ?? `<@${toBotId}> help`,
152
- username: event?.username ?? 'Workflow',
153
- type: event?.type ?? 'message',
154
- bot_id: event?.bot_id ?? 'BB12033',
155
- app_id: event?.app_id ?? APP_ID,
156
- ts: event?.ts ?? '1688420854.574989',
157
- blocks: event?.blocks ?? [],
158
- channel: event?.channel ?? 'CASDFASDFASDSD',
159
- event_ts: event?.ts ?? '1688420854.574989',
160
- channel_type: event.channel_type ?? 'channel'
161
- },
162
- retry_num: 0,
163
- retry_reason: '',
164
- accepts_response_payload: false
165
- })
166
-
167
93
  const buildSlackMessage = event => ({
168
94
  ack: () => {},
169
95
  envelope_id: 'e9b92395-bedd-4da7',
@@ -177,7 +103,7 @@ const buildSlackMessage = event => ({
177
103
  client_msg_id: event?.messageId ?? 'be201e20-d035-44dc-a0e2',
178
104
  type: event?.type ?? 'message',
179
105
  text: event?.text ?? `<@${BOT_ID}> help`,
180
- user: event?.user ?? SOME_USER_ID,
106
+ user: event?.user ?? 'U123ABC456',
181
107
  ts: event?.ts ?? '1688420854.574989',
182
108
  blocks: event?.blocks ?? [],
183
109
  team: event?.team ?? 'TASDASDFSDD',
@@ -196,7 +122,7 @@ const buildSlackMessage = event => ({
196
122
  client_msg_id: event?.messageId ?? 'be201e20-d035-44dc-a0e2-befc2b5bd13d',
197
123
  type: event?.type ?? 'message',
198
124
  text: event?.text ?? `<@${BOT_ID}> help`,
199
- user: event?.user ?? SOME_USER_ID,
125
+ user: event?.user ?? 'U123ABC456',
200
126
  ts: event?.ts ?? '1688420854.574989',
201
127
  blocks: event?.blocks ?? [],
202
128
  team: event?.team ?? 'TASDASDFSDD',
@@ -216,7 +142,7 @@ const authenticatedPerson = obj => ({
216
142
  name: 'Team Name'
217
143
  },
218
144
  self: {
219
- id: SOME_USER_ID,
145
+ id: BOT_ID,
220
146
  token: 'fake-token',
221
147
  }
222
148
  })
@@ -224,9 +150,9 @@ const authenticatedPerson = obj => ({
224
150
  const token = 'some-fake-token'
225
151
  const makeRobot = (delegate, webClientMock = {}) => {
226
152
  const robot = new Robot('Slack', false, 'hubot')
227
- robot.brain.data.users[SOME_USER_ID] = {
228
- id: SOME_USER_ID,
229
- name: 'not hubot',
153
+ robot.brain.data.users['U123ABC456'] = {
154
+ id: 'U123ABC456',
155
+ name: 'hubot',
230
156
  room: 'CASDFASDFASDSD'
231
157
  }
232
158
 
@@ -309,12 +235,6 @@ describe('Listen to messages', async () => {
309
235
  async start(adapter) {
310
236
  adapter.emit('authenticated', authenticatedPerson(), null)
311
237
  }
312
- }, {
313
- users: {
314
- info(params) {
315
- return buildATestUser()
316
- }
317
- }
318
238
  })
319
239
  await robot.run()
320
240
  })
@@ -337,11 +257,11 @@ describe('Listen to messages', async () => {
337
257
  assert.ok(true, 'should be called for message')
338
258
  })
339
259
  const message = await robot.adapter.mapToHubotMessage(buildSlackMessage({
340
- type: 'message',
341
- channel: 'C123ABC456',
342
- user: 'U123ABC456',
343
- text: 'Hello world',
344
- ts: 1355517523.000005
260
+ "type": "message",
261
+ "channel": "C123ABC456",
262
+ "user": "U123ABC456",
263
+ "text": "Hello world",
264
+ "ts": "1355517523.000005"
345
265
  }).event)
346
266
  await robot.receive(message)
347
267
  assert.deepEqual(wasCalled, true)
@@ -417,57 +337,4 @@ describe('Send messages back', async () => {
417
337
  assert.deepEqual(wasCalled, true)
418
338
  robot.shutdown()
419
339
  })
420
-
421
- it('should reply to a message that was sent by a different bot, like Workflow situations', async () => {
422
- let wasCalled = false
423
- const robot = makeRobot({
424
- async start(adapter) {
425
- adapter.emit('authenticated', authenticatedPerson(), null)
426
- }
427
- }, {
428
- chat: {
429
- async postMessage({ channel, text }) {
430
- assert.deepEqual(channel, 'C123ABC456')
431
- assert.deepEqual(text, 'hi')
432
- }
433
- },
434
- bots: {
435
- info(params) {
436
- return buildATestBot(WORKFLOW_BOT_ID)
437
- }
438
- },
439
- auth: {
440
- test() {
441
- return {
442
- user_id: BOT_ID,
443
- user: 'hubot',
444
- team_id: 'T12345678',
445
- team: 'Team Name'
446
- }
447
- }
448
- }
449
- })
450
- robot.respond(/deploy (?<appName>.*) (?<environment>.*)/i, {id: 'message responder'},
451
- context => {
452
- console.log('called', context.message)
453
- assert.deepEqual(context.message.text, '@hubot deploy redirector staging --version main-d349664')
454
- context.reply('deploying')
455
- robot.shutdown()
456
- wasCalled = true
457
- })
458
- await robot.run()
459
- const message = await robot.adapter.mapToHubotMessage(buildSlackMessageFromBot(
460
- {
461
- type: "message",
462
- ts: 1355517523.000005,
463
- text: `<@${BOT_ID}> deploy redirector staging --version main-d349664`,
464
- bot_id: WORKFLOW_BOT_ID,
465
- username: "github",
466
- icons: {}
467
- }, BOT_ID).event)
468
- message.text = robot.adapter.replaceBotIdWithName(message)
469
- await robot.receive(message)
470
- robot.shutdown()
471
- assert.deepEqual(wasCalled, true)
472
- })
473
340
  })