agent-messenger 2.10.1 → 2.10.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.
Files changed (239) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/dist/package.json +1 -1
  3. package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
  4. package/dist/src/platforms/teams/token-extractor.js +9 -2
  5. package/dist/src/platforms/teams/token-extractor.js.map +1 -1
  6. package/dist/src/shared/chromium/decryptor.d.ts +6 -0
  7. package/dist/src/shared/chromium/decryptor.d.ts.map +1 -1
  8. package/dist/src/shared/chromium/decryptor.js +26 -6
  9. package/dist/src/shared/chromium/decryptor.js.map +1 -1
  10. package/e2e/channeltalk.e2e.test.ts +13 -13
  11. package/e2e/channeltalkbot.e2e.test.ts +13 -13
  12. package/e2e/discord.e2e.test.ts +24 -24
  13. package/e2e/discordbot.e2e.test.ts +16 -16
  14. package/e2e/instagram.e2e.test.ts +10 -10
  15. package/e2e/kakaotalk.e2e.test.ts +7 -7
  16. package/e2e/line.e2e.test.ts +8 -8
  17. package/e2e/slack.e2e.test.ts +34 -34
  18. package/e2e/slackbot.e2e.test.ts +14 -14
  19. package/e2e/teams.e2e.test.ts +23 -23
  20. package/e2e/telegram.e2e.test.ts +8 -8
  21. package/e2e/webex.e2e.test.ts +14 -14
  22. package/e2e/whatsapp.e2e.test.ts +8 -8
  23. package/e2e/whatsappbot.e2e.test.ts +6 -6
  24. package/package.json +1 -1
  25. package/skills/agent-channeltalk/SKILL.md +1 -1
  26. package/skills/agent-channeltalkbot/SKILL.md +1 -1
  27. package/skills/agent-discord/SKILL.md +1 -1
  28. package/skills/agent-discordbot/SKILL.md +1 -1
  29. package/skills/agent-instagram/SKILL.md +1 -1
  30. package/skills/agent-kakaotalk/SKILL.md +1 -1
  31. package/skills/agent-line/SKILL.md +1 -1
  32. package/skills/agent-slack/SKILL.md +1 -1
  33. package/skills/agent-slackbot/SKILL.md +1 -1
  34. package/skills/agent-teams/SKILL.md +1 -1
  35. package/skills/agent-telegram/SKILL.md +1 -1
  36. package/skills/agent-webex/SKILL.md +1 -1
  37. package/skills/agent-wechatbot/SKILL.md +1 -1
  38. package/skills/agent-whatsapp/SKILL.md +1 -1
  39. package/skills/agent-whatsappbot/SKILL.md +1 -1
  40. package/src/platforms/channeltalk/client.test.ts +26 -26
  41. package/src/platforms/channeltalk/commands/auth.test.ts +16 -16
  42. package/src/platforms/channeltalk/commands/bot.test.ts +2 -2
  43. package/src/platforms/channeltalk/commands/chat.test.ts +3 -3
  44. package/src/platforms/channeltalk/commands/group.test.ts +4 -4
  45. package/src/platforms/channeltalk/commands/manager.test.ts +2 -2
  46. package/src/platforms/channeltalk/commands/message.test.ts +17 -17
  47. package/src/platforms/channeltalk/commands/snapshot.test.ts +7 -7
  48. package/src/platforms/channeltalk/commands/whoami.test.ts +3 -3
  49. package/src/platforms/channeltalk/credential-manager.test.ts +18 -18
  50. package/src/platforms/channeltalk/ensure-auth.test.ts +5 -5
  51. package/src/platforms/channeltalk/index.test.ts +23 -23
  52. package/src/platforms/channeltalk/token-extractor.test.ts +21 -21
  53. package/src/platforms/channeltalk/types.test.ts +12 -12
  54. package/src/platforms/channeltalkbot/client.test.ts +14 -14
  55. package/src/platforms/channeltalkbot/commands/auth.test.ts +16 -16
  56. package/src/platforms/channeltalkbot/commands/bot.test.ts +6 -6
  57. package/src/platforms/channeltalkbot/commands/chat.test.ts +9 -9
  58. package/src/platforms/channeltalkbot/commands/group.test.ts +6 -6
  59. package/src/platforms/channeltalkbot/commands/manager.test.ts +3 -3
  60. package/src/platforms/channeltalkbot/commands/message.test.ts +10 -10
  61. package/src/platforms/channeltalkbot/commands/snapshot.test.ts +7 -7
  62. package/src/platforms/channeltalkbot/commands/whoami.test.ts +4 -4
  63. package/src/platforms/channeltalkbot/credential-manager.test.ts +27 -27
  64. package/src/platforms/channeltalkbot/index.test.ts +15 -15
  65. package/src/platforms/discord/client.test.ts +28 -28
  66. package/src/platforms/discord/commands/auth.test.ts +7 -7
  67. package/src/platforms/discord/commands/channel.test.ts +7 -7
  68. package/src/platforms/discord/commands/dm.test.ts +4 -4
  69. package/src/platforms/discord/commands/file.test.ts +4 -4
  70. package/src/platforms/discord/commands/friend.test.ts +6 -6
  71. package/src/platforms/discord/commands/member.test.ts +5 -5
  72. package/src/platforms/discord/commands/mention.test.ts +5 -5
  73. package/src/platforms/discord/commands/message.test.ts +9 -9
  74. package/src/platforms/discord/commands/note.test.ts +6 -6
  75. package/src/platforms/discord/commands/profile.test.ts +4 -4
  76. package/src/platforms/discord/commands/reaction.test.ts +5 -5
  77. package/src/platforms/discord/commands/server.test.ts +7 -7
  78. package/src/platforms/discord/commands/snapshot.test.ts +6 -6
  79. package/src/platforms/discord/commands/thread.test.ts +6 -6
  80. package/src/platforms/discord/commands/user.test.ts +5 -5
  81. package/src/platforms/discord/commands/whoami.test.ts +6 -6
  82. package/src/platforms/discord/credential-manager.test.ts +16 -16
  83. package/src/platforms/discord/ensure-auth.test.ts +8 -8
  84. package/src/platforms/discord/index.test.ts +17 -17
  85. package/src/platforms/discord/listener.test.ts +33 -33
  86. package/src/platforms/discord/token-extractor.test.ts +53 -53
  87. package/src/platforms/discord/types.test.ts +26 -26
  88. package/src/platforms/discordbot/client.test.ts +31 -31
  89. package/src/platforms/discordbot/commands/auth.test.ts +18 -18
  90. package/src/platforms/discordbot/commands/channel.test.ts +11 -11
  91. package/src/platforms/discordbot/commands/file.test.ts +7 -7
  92. package/src/platforms/discordbot/commands/message.test.ts +25 -25
  93. package/src/platforms/discordbot/commands/reaction.test.ts +6 -6
  94. package/src/platforms/discordbot/commands/server.test.ts +12 -12
  95. package/src/platforms/discordbot/commands/snapshot.test.ts +13 -13
  96. package/src/platforms/discordbot/commands/thread.test.ts +10 -10
  97. package/src/platforms/discordbot/commands/user.test.ts +9 -9
  98. package/src/platforms/discordbot/commands/whoami.test.ts +4 -4
  99. package/src/platforms/discordbot/credential-manager.test.ts +28 -28
  100. package/src/platforms/instagram/client.test.ts +18 -18
  101. package/src/platforms/instagram/commands/auth.test.ts +11 -11
  102. package/src/platforms/instagram/commands/chat.test.ts +6 -6
  103. package/src/platforms/instagram/commands/message.test.ts +11 -11
  104. package/src/platforms/instagram/commands/shared.test.ts +12 -12
  105. package/src/platforms/instagram/commands/whoami.test.ts +3 -3
  106. package/src/platforms/instagram/credential-manager.test.ts +21 -21
  107. package/src/platforms/instagram/ensure-auth.test.ts +4 -4
  108. package/src/platforms/instagram/index.test.ts +9 -9
  109. package/src/platforms/instagram/listener.test.ts +8 -8
  110. package/src/platforms/instagram/token-extractor.test.ts +35 -35
  111. package/src/platforms/kakaotalk/client.test.ts +33 -33
  112. package/src/platforms/kakaotalk/commands/auth.test.ts +11 -11
  113. package/src/platforms/kakaotalk/commands/chat.test.ts +6 -6
  114. package/src/platforms/kakaotalk/commands/message.test.ts +7 -7
  115. package/src/platforms/kakaotalk/commands/whoami.test.ts +5 -5
  116. package/src/platforms/kakaotalk/credential-manager.test.ts +15 -15
  117. package/src/platforms/kakaotalk/index.test.ts +15 -15
  118. package/src/platforms/kakaotalk/listener.test.ts +17 -17
  119. package/src/platforms/line/client.test.ts +17 -17
  120. package/src/platforms/line/commands/auth.test.ts +8 -8
  121. package/src/platforms/line/commands/chat.test.ts +7 -7
  122. package/src/platforms/line/commands/friend.test.ts +6 -6
  123. package/src/platforms/line/commands/message.test.ts +7 -7
  124. package/src/platforms/line/commands/whoami.test.ts +6 -6
  125. package/src/platforms/line/credential-manager.test.ts +17 -17
  126. package/src/platforms/line/index.test.ts +10 -10
  127. package/src/platforms/line/listener.test.ts +15 -15
  128. package/src/platforms/line/types.test.ts +14 -14
  129. package/src/platforms/slack/cli.test.ts +8 -8
  130. package/src/platforms/slack/client.test.ts +151 -151
  131. package/src/platforms/slack/commands/activity.test.ts +13 -13
  132. package/src/platforms/slack/commands/auth.test.ts +34 -34
  133. package/src/platforms/slack/commands/bookmark.test.ts +9 -9
  134. package/src/platforms/slack/commands/channel.test.ts +17 -17
  135. package/src/platforms/slack/commands/drafts.test.ts +7 -7
  136. package/src/platforms/slack/commands/emoji.test.ts +3 -3
  137. package/src/platforms/slack/commands/file.test.ts +12 -12
  138. package/src/platforms/slack/commands/message.test.ts +19 -19
  139. package/src/platforms/slack/commands/pin.test.ts +7 -7
  140. package/src/platforms/slack/commands/reaction.test.ts +10 -10
  141. package/src/platforms/slack/commands/reminder.test.ts +9 -9
  142. package/src/platforms/slack/commands/saved.test.ts +7 -7
  143. package/src/platforms/slack/commands/sections.test.ts +5 -5
  144. package/src/platforms/slack/commands/snapshot.test.ts +13 -13
  145. package/src/platforms/slack/commands/unread.test.ts +6 -6
  146. package/src/platforms/slack/commands/user.test.ts +10 -10
  147. package/src/platforms/slack/commands/usergroup.test.ts +15 -15
  148. package/src/platforms/slack/commands/whoami.test.ts +6 -6
  149. package/src/platforms/slack/commands/workspace.test.ts +26 -26
  150. package/src/platforms/slack/credential-manager.test.ts +14 -14
  151. package/src/platforms/slack/ensure-auth.test.ts +21 -21
  152. package/src/platforms/slack/index.test.ts +12 -12
  153. package/src/platforms/slack/listener.test.ts +17 -17
  154. package/src/platforms/slack/token-extractor-node.test.ts +2 -2
  155. package/src/platforms/slack/token-extractor.test.ts +37 -37
  156. package/src/platforms/slack/types.test.ts +21 -21
  157. package/src/platforms/slackbot/client.test.ts +22 -22
  158. package/src/platforms/slackbot/commands/auth.test.ts +14 -14
  159. package/src/platforms/slackbot/commands/channel.test.ts +7 -7
  160. package/src/platforms/slackbot/commands/message.test.ts +13 -13
  161. package/src/platforms/slackbot/commands/reaction.test.ts +6 -6
  162. package/src/platforms/slackbot/commands/user.test.ts +7 -7
  163. package/src/platforms/slackbot/commands/whoami.test.ts +4 -4
  164. package/src/platforms/slackbot/credential-manager.test.ts +22 -22
  165. package/src/platforms/slackbot/types.test.ts +7 -7
  166. package/src/platforms/teams/client.test.ts +30 -30
  167. package/src/platforms/teams/commands/auth.test.ts +8 -8
  168. package/src/platforms/teams/commands/channel.test.ts +7 -7
  169. package/src/platforms/teams/commands/file.test.ts +4 -4
  170. package/src/platforms/teams/commands/message.test.ts +5 -5
  171. package/src/platforms/teams/commands/reaction.test.ts +4 -4
  172. package/src/platforms/teams/commands/snapshot.test.ts +7 -7
  173. package/src/platforms/teams/commands/team.test.ts +8 -8
  174. package/src/platforms/teams/commands/user.test.ts +4 -4
  175. package/src/platforms/teams/commands/whoami.test.ts +6 -6
  176. package/src/platforms/teams/credential-manager.test.ts +17 -17
  177. package/src/platforms/teams/ensure-auth.test.ts +13 -13
  178. package/src/platforms/teams/index.test.ts +15 -15
  179. package/src/platforms/teams/token-extractor.test.ts +109 -49
  180. package/src/platforms/teams/token-extractor.ts +7 -2
  181. package/src/platforms/teams/types.test.ts +26 -26
  182. package/src/platforms/telegram/app-config.test.ts +4 -4
  183. package/src/platforms/telegram/chat-utils.test.ts +12 -12
  184. package/src/platforms/telegram/client.test.ts +4 -4
  185. package/src/platforms/telegram/commands/auth.test.ts +16 -16
  186. package/src/platforms/telegram/commands/chat.test.ts +9 -9
  187. package/src/platforms/telegram/commands/message.test.ts +6 -6
  188. package/src/platforms/telegram/commands/shared.test.ts +3 -3
  189. package/src/platforms/telegram/commands/whoami.test.ts +3 -3
  190. package/src/platforms/telegram/credential-manager.test.ts +10 -10
  191. package/src/platforms/telegram/types.test.ts +6 -6
  192. package/src/platforms/webex/app-config.test.ts +8 -8
  193. package/src/platforms/webex/cli.test.ts +5 -5
  194. package/src/platforms/webex/client.test.ts +65 -65
  195. package/src/platforms/webex/commands/auth.test.ts +18 -18
  196. package/src/platforms/webex/commands/member.test.ts +5 -5
  197. package/src/platforms/webex/commands/message.test.ts +12 -12
  198. package/src/platforms/webex/commands/snapshot.test.ts +5 -5
  199. package/src/platforms/webex/commands/space.test.ts +10 -10
  200. package/src/platforms/webex/commands/whoami.test.ts +6 -6
  201. package/src/platforms/webex/credential-manager.test.ts +22 -22
  202. package/src/platforms/webex/encryption.test.ts +4 -4
  203. package/src/platforms/webex/ensure-auth.test.ts +5 -5
  204. package/src/platforms/webex/index.test.ts +5 -5
  205. package/src/platforms/webex/markdown-to-html.test.ts +33 -33
  206. package/src/platforms/webex/token-extractor.test.ts +23 -23
  207. package/src/platforms/webex/types.test.ts +27 -27
  208. package/src/platforms/wechatbot/client.test.ts +27 -27
  209. package/src/platforms/wechatbot/commands/auth.test.ts +15 -15
  210. package/src/platforms/wechatbot/commands/message.test.ts +8 -8
  211. package/src/platforms/wechatbot/commands/template.test.ts +9 -9
  212. package/src/platforms/wechatbot/commands/user.test.ts +7 -7
  213. package/src/platforms/wechatbot/commands/whoami.test.ts +5 -5
  214. package/src/platforms/wechatbot/credential-manager.test.ts +18 -18
  215. package/src/platforms/wechatbot/index.test.ts +10 -10
  216. package/src/platforms/wechatbot/types.test.ts +25 -25
  217. package/src/platforms/whatsapp/commands/auth.test.ts +13 -13
  218. package/src/platforms/whatsapp/commands/chat.test.ts +8 -8
  219. package/src/platforms/whatsapp/commands/message.test.ts +10 -10
  220. package/src/platforms/whatsapp/commands/whoami.test.ts +3 -3
  221. package/src/platforms/whatsapp/credential-manager.test.ts +23 -23
  222. package/src/platforms/whatsapp/ensure-auth.test.ts +4 -4
  223. package/src/platforms/whatsapp/index.test.ts +8 -8
  224. package/src/platforms/whatsapp/types.test.ts +42 -42
  225. package/src/platforms/whatsappbot/client.test.ts +27 -27
  226. package/src/platforms/whatsappbot/commands/auth.test.ts +14 -14
  227. package/src/platforms/whatsappbot/commands/message.test.ts +16 -16
  228. package/src/platforms/whatsappbot/commands/template.test.ts +9 -9
  229. package/src/platforms/whatsappbot/commands/whoami.test.ts +5 -5
  230. package/src/platforms/whatsappbot/credential-manager.test.ts +18 -18
  231. package/src/platforms/whatsappbot/index.test.ts +7 -7
  232. package/src/platforms/whatsappbot/types.test.ts +18 -18
  233. package/src/shared/chromium/browsers.test.ts +22 -22
  234. package/src/shared/chromium/cookie-reader.test.ts +13 -13
  235. package/src/shared/chromium/decryptor.test.ts +97 -32
  236. package/src/shared/chromium/decryptor.ts +27 -6
  237. package/src/shared/utils/concurrency.test.ts +6 -6
  238. package/src/shared/utils/derived-key-cache.test.ts +11 -11
  239. package/src/tui/utils.test.ts +31 -31
@@ -1,4 +1,4 @@
1
- import { beforeEach, describe, expect, mock, test } from 'bun:test'
1
+ import { beforeEach, describe, expect, mock, it } from 'bun:test'
2
2
 
3
3
  import { SlackBotClient } from './client'
4
4
  import { SlackBotError } from './types'
@@ -123,30 +123,30 @@ describe('SlackBotClient', () => {
123
123
  })
124
124
 
125
125
  describe('login', () => {
126
- test('accepts bot tokens (xoxb-)', async () => {
126
+ it('accepts bot tokens (xoxb-)', async () => {
127
127
  // when/then: should not throw
128
128
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
129
129
  expect(client).toBeDefined()
130
130
  })
131
131
 
132
- test('rejects user tokens (xoxp-)', async () => {
132
+ it('rejects user tokens (xoxp-)', async () => {
133
133
  // when/then
134
134
  await expect(new SlackBotClient().login({ token: 'xoxp-user-token' })).rejects.toThrow(SlackBotError)
135
135
  })
136
136
 
137
- test('rejects empty token', async () => {
137
+ it('rejects empty token', async () => {
138
138
  // when/then
139
139
  await expect(new SlackBotClient().login({ token: '' })).rejects.toThrow(SlackBotError)
140
140
  })
141
141
 
142
- test('rejects non-bot tokens', async () => {
142
+ it('rejects non-bot tokens', async () => {
143
143
  // when/then
144
144
  await expect(new SlackBotClient().login({ token: 'invalid-token' })).rejects.toThrow(SlackBotError)
145
145
  })
146
146
  })
147
147
 
148
148
  describe('testAuth', () => {
149
- test('returns auth info for valid token', async () => {
149
+ it('returns auth info for valid token', async () => {
150
150
  // given
151
151
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
152
152
 
@@ -161,7 +161,7 @@ describe('SlackBotClient', () => {
161
161
  })
162
162
 
163
163
  describe('postMessage', () => {
164
- test('sends message and returns timestamp', async () => {
164
+ it('sends message and returns timestamp', async () => {
165
165
  // given
166
166
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
167
167
 
@@ -175,7 +175,7 @@ describe('SlackBotClient', () => {
175
175
  })
176
176
 
177
177
  describe('getConversationHistory', () => {
178
- test('returns messages', async () => {
178
+ it('returns messages', async () => {
179
179
  // given
180
180
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
181
181
 
@@ -189,7 +189,7 @@ describe('SlackBotClient', () => {
189
189
  })
190
190
 
191
191
  describe('getMessage', () => {
192
- test('returns single message', async () => {
192
+ it('returns single message', async () => {
193
193
  // given
194
194
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
195
195
 
@@ -203,7 +203,7 @@ describe('SlackBotClient', () => {
203
203
  })
204
204
 
205
205
  describe('addReaction', () => {
206
- test('adds reaction to message', async () => {
206
+ it('adds reaction to message', async () => {
207
207
  // given
208
208
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
209
209
 
@@ -214,7 +214,7 @@ describe('SlackBotClient', () => {
214
214
  })
215
215
 
216
216
  describe('removeReaction', () => {
217
- test('removes reaction from message', async () => {
217
+ it('removes reaction from message', async () => {
218
218
  // given
219
219
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
220
220
 
@@ -225,7 +225,7 @@ describe('SlackBotClient', () => {
225
225
  })
226
226
 
227
227
  describe('listChannels', () => {
228
- test('returns list of channels', async () => {
228
+ it('returns list of channels', async () => {
229
229
  // given
230
230
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
231
231
 
@@ -240,7 +240,7 @@ describe('SlackBotClient', () => {
240
240
  })
241
241
 
242
242
  describe('getChannelInfo', () => {
243
- test('returns channel details', async () => {
243
+ it('returns channel details', async () => {
244
244
  // given
245
245
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
246
246
 
@@ -254,7 +254,7 @@ describe('SlackBotClient', () => {
254
254
  })
255
255
 
256
256
  describe('resolveChannel', () => {
257
- test('returns channel ID unchanged when it starts with C', async () => {
257
+ it('returns channel ID unchanged when it starts with C', async () => {
258
258
  // given
259
259
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
260
260
 
@@ -266,7 +266,7 @@ describe('SlackBotClient', () => {
266
266
  expect(mockConversations.list).not.toHaveBeenCalled()
267
267
  })
268
268
 
269
- test('returns channel ID unchanged when it starts with D', async () => {
269
+ it('returns channel ID unchanged when it starts with D', async () => {
270
270
  // given
271
271
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
272
272
 
@@ -278,7 +278,7 @@ describe('SlackBotClient', () => {
278
278
  expect(mockConversations.list).not.toHaveBeenCalled()
279
279
  })
280
280
 
281
- test('returns channel ID unchanged when it starts with G', async () => {
281
+ it('returns channel ID unchanged when it starts with G', async () => {
282
282
  // given
283
283
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
284
284
 
@@ -290,7 +290,7 @@ describe('SlackBotClient', () => {
290
290
  expect(mockConversations.list).not.toHaveBeenCalled()
291
291
  })
292
292
 
293
- test('resolves channel name to ID', async () => {
293
+ it('resolves channel name to ID', async () => {
294
294
  // given
295
295
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
296
296
 
@@ -302,7 +302,7 @@ describe('SlackBotClient', () => {
302
302
  expect(mockConversations.list).toHaveBeenCalled()
303
303
  })
304
304
 
305
- test('strips leading # from channel name', async () => {
305
+ it('strips leading # from channel name', async () => {
306
306
  // given
307
307
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
308
308
 
@@ -314,7 +314,7 @@ describe('SlackBotClient', () => {
314
314
  expect(mockConversations.list).toHaveBeenCalled()
315
315
  })
316
316
 
317
- test('returns channel ID unchanged when input is #C prefixed ID', async () => {
317
+ it('returns channel ID unchanged when input is #C prefixed ID', async () => {
318
318
  // given
319
319
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
320
320
 
@@ -325,7 +325,7 @@ describe('SlackBotClient', () => {
325
325
  expect(channel).toBe('C123ABC')
326
326
  })
327
327
 
328
- test('throws channel_not_found error when name is not found', async () => {
328
+ it('throws channel_not_found error when name is not found', async () => {
329
329
  // given
330
330
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
331
331
 
@@ -341,7 +341,7 @@ describe('SlackBotClient', () => {
341
341
  })
342
342
 
343
343
  describe('listUsers', () => {
344
- test('returns list of users', async () => {
344
+ it('returns list of users', async () => {
345
345
  // given
346
346
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
347
347
 
@@ -355,7 +355,7 @@ describe('SlackBotClient', () => {
355
355
  })
356
356
 
357
357
  describe('getUserInfo', () => {
358
- test('returns user details', async () => {
358
+ it('returns user details', async () => {
359
359
  // given
360
360
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
361
361
 
@@ -1,4 +1,4 @@
1
- import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test'
1
+ import { afterEach, beforeEach, describe, expect, mock, it } from 'bun:test'
2
2
  import { existsSync, rmSync } from 'node:fs'
3
3
  import { mkdir } from 'node:fs/promises'
4
4
  import { tmpdir } from 'node:os'
@@ -46,7 +46,7 @@ describe('auth commands', () => {
46
46
  })
47
47
 
48
48
  describe('setAction', () => {
49
- test('validates and stores bot token with default bot_id from auth', async () => {
49
+ it('validates and stores bot token with default bot_id from auth', async () => {
50
50
  const manager = new SlackBotCredentialManager(tempDir)
51
51
 
52
52
  const result = await setAction('xoxb-test-token', { _credManager: manager })
@@ -60,7 +60,7 @@ describe('auth commands', () => {
60
60
  expect(creds?.bot_id).toBe('B789')
61
61
  })
62
62
 
63
- test('uses --bot flag as bot_id', async () => {
63
+ it('uses --bot flag as bot_id', async () => {
64
64
  const manager = new SlackBotCredentialManager(tempDir)
65
65
 
66
66
  const result = await setAction('xoxb-test-token', { bot: 'deploy', _credManager: manager })
@@ -70,7 +70,7 @@ describe('auth commands', () => {
70
70
  expect(creds?.token).toBe('xoxb-test-token')
71
71
  })
72
72
 
73
- test('rejects user tokens', async () => {
73
+ it('rejects user tokens', async () => {
74
74
  const manager = new SlackBotCredentialManager(tempDir)
75
75
 
76
76
  const result = await setAction('xoxp-user-token', { _credManager: manager })
@@ -79,7 +79,7 @@ describe('auth commands', () => {
79
79
  expect(result.error).toContain('bot token')
80
80
  })
81
81
 
82
- test('rejects invalid token format', async () => {
82
+ it('rejects invalid token format', async () => {
83
83
  const manager = new SlackBotCredentialManager(tempDir)
84
84
 
85
85
  const result = await setAction('invalid-token', { _credManager: manager })
@@ -89,7 +89,7 @@ describe('auth commands', () => {
89
89
  })
90
90
 
91
91
  describe('clearAction', () => {
92
- test('removes all stored credentials', async () => {
92
+ it('removes all stored credentials', async () => {
93
93
  const manager = new SlackBotCredentialManager(tempDir)
94
94
  await manager.setCredentials({
95
95
  token: 'xoxb-token',
@@ -107,7 +107,7 @@ describe('auth commands', () => {
107
107
  })
108
108
 
109
109
  describe('statusAction', () => {
110
- test('returns no credentials when none set', async () => {
110
+ it('returns no credentials when none set', async () => {
111
111
  const manager = new SlackBotCredentialManager(tempDir)
112
112
 
113
113
  const result = await statusAction({ _credManager: manager })
@@ -116,7 +116,7 @@ describe('auth commands', () => {
116
116
  expect(result.error).toBeDefined()
117
117
  })
118
118
 
119
- test('returns valid status for current bot', async () => {
119
+ it('returns valid status for current bot', async () => {
120
120
  const manager = new SlackBotCredentialManager(tempDir)
121
121
  await manager.setCredentials({
122
122
  token: 'xoxb-token',
@@ -133,7 +133,7 @@ describe('auth commands', () => {
133
133
  expect(result.bot_id).toBe('mybot')
134
134
  })
135
135
 
136
- test('returns status for specific --bot', async () => {
136
+ it('returns status for specific --bot', async () => {
137
137
  const manager = new SlackBotCredentialManager(tempDir)
138
138
  await manager.setCredentials({
139
139
  token: 'xoxb-token',
@@ -158,7 +158,7 @@ describe('auth commands', () => {
158
158
  })
159
159
 
160
160
  describe('listAction', () => {
161
- test('returns all stored bots', async () => {
161
+ it('returns all stored bots', async () => {
162
162
  const manager = new SlackBotCredentialManager(tempDir)
163
163
  await manager.setCredentials({
164
164
  token: 'xoxb-a',
@@ -183,7 +183,7 @@ describe('auth commands', () => {
183
183
  })
184
184
 
185
185
  describe('useAction', () => {
186
- test('switches current bot', async () => {
186
+ it('switches current bot', async () => {
187
187
  const manager = new SlackBotCredentialManager(tempDir)
188
188
  await manager.setCredentials({
189
189
  token: 'xoxb-a',
@@ -206,7 +206,7 @@ describe('auth commands', () => {
206
206
  expect(result.bot_id).toBe('deploy')
207
207
  })
208
208
 
209
- test('returns error for unknown bot', async () => {
209
+ it('returns error for unknown bot', async () => {
210
210
  const manager = new SlackBotCredentialManager(tempDir)
211
211
 
212
212
  const result = await useAction('nonexistent', { _credManager: manager })
@@ -216,7 +216,7 @@ describe('auth commands', () => {
216
216
  })
217
217
 
218
218
  describe('removeAction', () => {
219
- test('removes a stored bot', async () => {
219
+ it('removes a stored bot', async () => {
220
220
  const manager = new SlackBotCredentialManager(tempDir)
221
221
  await manager.setCredentials({
222
222
  token: 'xoxb-a',
@@ -232,7 +232,7 @@ describe('auth commands', () => {
232
232
  expect(await manager.getCredentials('deploy')).toBeNull()
233
233
  })
234
234
 
235
- test('returns error for unknown bot', async () => {
235
+ it('returns error for unknown bot', async () => {
236
236
  const manager = new SlackBotCredentialManager(tempDir)
237
237
 
238
238
  const result = await removeAction('nonexistent', { _credManager: manager })
@@ -1,4 +1,4 @@
1
- import { beforeEach, describe, expect, mock, test } from 'bun:test'
1
+ import { beforeEach, describe, expect, mock, it } from 'bun:test'
2
2
 
3
3
  const mockResolveChannel = mock((_channel: string) => Promise.resolve('C123456'))
4
4
  const mockListChannels = mock(() =>
@@ -55,7 +55,7 @@ describe('channel commands', () => {
55
55
  })
56
56
 
57
57
  describe('listChannels', () => {
58
- test('returns list of channels', async () => {
58
+ it('returns list of channels', async () => {
59
59
  // given
60
60
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
61
61
 
@@ -68,7 +68,7 @@ describe('channel commands', () => {
68
68
  expect(channels[1].name).toBe('random')
69
69
  })
70
70
 
71
- test('includes channel metadata', async () => {
71
+ it('includes channel metadata', async () => {
72
72
  // given
73
73
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
74
74
 
@@ -84,7 +84,7 @@ describe('channel commands', () => {
84
84
  expect(channel.created).toBeDefined()
85
85
  })
86
86
 
87
- test('passes limit option', async () => {
87
+ it('passes limit option', async () => {
88
88
  // given
89
89
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
90
90
 
@@ -97,7 +97,7 @@ describe('channel commands', () => {
97
97
  })
98
98
 
99
99
  describe('getChannelInfo', () => {
100
- test('returns channel details', async () => {
100
+ it('returns channel details', async () => {
101
101
  // given
102
102
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
103
103
 
@@ -110,7 +110,7 @@ describe('channel commands', () => {
110
110
  expect(channel.is_private).toBe(false)
111
111
  })
112
112
 
113
- test('includes topic and purpose', async () => {
113
+ it('includes topic and purpose', async () => {
114
114
  // given
115
115
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
116
116
 
@@ -124,7 +124,7 @@ describe('channel commands', () => {
124
124
  })
125
125
 
126
126
  describe('resolveChannel', () => {
127
- test('resolves channel name to ID', async () => {
127
+ it('resolves channel name to ID', async () => {
128
128
  // given
129
129
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
130
130
 
@@ -1,4 +1,4 @@
1
- import { beforeEach, describe, expect, mock, test } from 'bun:test'
1
+ import { beforeEach, describe, expect, mock, it } from 'bun:test'
2
2
 
3
3
  const mockResolveChannel = mock((_channel: string) => Promise.resolve('C123456'))
4
4
  const mockPostMessage = mock(() =>
@@ -68,7 +68,7 @@ describe('message commands', () => {
68
68
  })
69
69
 
70
70
  describe('postMessage', () => {
71
- test('sends message to channel', async () => {
71
+ it('sends message to channel', async () => {
72
72
  // given
73
73
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
74
74
 
@@ -81,7 +81,7 @@ describe('message commands', () => {
81
81
  expect(result.type).toBe('message')
82
82
  })
83
83
 
84
- test('sends message with thread_ts', async () => {
84
+ it('sends message with thread_ts', async () => {
85
85
  // given
86
86
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
87
87
 
@@ -94,7 +94,7 @@ describe('message commands', () => {
94
94
  })
95
95
 
96
96
  describe('getConversationHistory', () => {
97
- test('returns messages from channel', async () => {
97
+ it('returns messages from channel', async () => {
98
98
  // given
99
99
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
100
100
 
@@ -107,7 +107,7 @@ describe('message commands', () => {
107
107
  expect(messages[1].text).toBe('World')
108
108
  })
109
109
 
110
- test('passes limit option', async () => {
110
+ it('passes limit option', async () => {
111
111
  // given
112
112
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
113
113
 
@@ -120,7 +120,7 @@ describe('message commands', () => {
120
120
  })
121
121
 
122
122
  describe('getMessage', () => {
123
- test('returns single message by ts', async () => {
123
+ it('returns single message by ts', async () => {
124
124
  // given
125
125
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
126
126
 
@@ -133,7 +133,7 @@ describe('message commands', () => {
133
133
  expect(message?.text).toBe('Hello world')
134
134
  })
135
135
 
136
- test('returns null when message not found', async () => {
136
+ it('returns null when message not found', async () => {
137
137
  // given
138
138
  mockGetMessage.mockResolvedValueOnce(null)
139
139
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
@@ -147,7 +147,7 @@ describe('message commands', () => {
147
147
  })
148
148
 
149
149
  describe('updateMessage', () => {
150
- test('updates message text', async () => {
150
+ it('updates message text', async () => {
151
151
  // given
152
152
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
153
153
 
@@ -159,7 +159,7 @@ describe('message commands', () => {
159
159
  expect(result.text).toBe('Updated text')
160
160
  })
161
161
 
162
- test('called with correct arguments', async () => {
162
+ it('passes correct arguments', async () => {
163
163
  // given
164
164
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
165
165
 
@@ -172,7 +172,7 @@ describe('message commands', () => {
172
172
  })
173
173
 
174
174
  describe('deleteMessage', () => {
175
- test('deletes message by ts', async () => {
175
+ it('deletes message by ts', async () => {
176
176
  // given
177
177
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
178
178
 
@@ -185,7 +185,7 @@ describe('message commands', () => {
185
185
  })
186
186
 
187
187
  describe('getThreadReplies', () => {
188
- test('returns thread replies', async () => {
188
+ it('returns thread replies', async () => {
189
189
  // given
190
190
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
191
191
 
@@ -198,7 +198,7 @@ describe('message commands', () => {
198
198
  expect(replies[1].text).toBe('Thread reply 2')
199
199
  })
200
200
 
201
- test('passes limit option', async () => {
201
+ it('passes limit option', async () => {
202
202
  // given
203
203
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
204
204
 
@@ -211,7 +211,7 @@ describe('message commands', () => {
211
211
  })
212
212
 
213
213
  describe('resolveChannel', () => {
214
- test('resolves channel name to ID', async () => {
214
+ it('resolves channel name to ID', async () => {
215
215
  // given
216
216
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
217
217
 
@@ -1,4 +1,4 @@
1
- import { beforeEach, describe, expect, mock, test } from 'bun:test'
1
+ import { beforeEach, describe, expect, mock, it } from 'bun:test'
2
2
 
3
3
  const mockResolveChannel = mock((_channel: string) => Promise.resolve('C123456'))
4
4
  const mockAddReaction = mock(() => Promise.resolve())
@@ -25,7 +25,7 @@ describe('reaction commands', () => {
25
25
  })
26
26
 
27
27
  describe('addReaction', () => {
28
- test('adds emoji reaction to message', async () => {
28
+ it('adds emoji reaction to message', async () => {
29
29
  // given
30
30
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
31
31
 
@@ -36,7 +36,7 @@ describe('reaction commands', () => {
36
36
  expect(mockAddReaction).toHaveBeenCalledWith('C123456', '1234567890.000100', 'thumbsup')
37
37
  })
38
38
 
39
- test('called with correct arguments', async () => {
39
+ it('passes correct arguments', async () => {
40
40
  // given
41
41
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
42
42
 
@@ -50,7 +50,7 @@ describe('reaction commands', () => {
50
50
  })
51
51
 
52
52
  describe('removeReaction', () => {
53
- test('removes emoji reaction from message', async () => {
53
+ it('removes emoji reaction from message', async () => {
54
54
  // given
55
55
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
56
56
 
@@ -61,7 +61,7 @@ describe('reaction commands', () => {
61
61
  expect(mockRemoveReaction).toHaveBeenCalledWith('C123456', '1234567890.000100', 'thumbsup')
62
62
  })
63
63
 
64
- test('called with correct arguments', async () => {
64
+ it('passes correct arguments', async () => {
65
65
  // given
66
66
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
67
67
 
@@ -75,7 +75,7 @@ describe('reaction commands', () => {
75
75
  })
76
76
 
77
77
  describe('resolveChannel', () => {
78
- test('resolves channel name before reaction', async () => {
78
+ it('resolves channel name before reaction', async () => {
79
79
  // given
80
80
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
81
81
 
@@ -1,4 +1,4 @@
1
- import { beforeEach, describe, expect, mock, test } from 'bun:test'
1
+ import { beforeEach, describe, expect, mock, it } from 'bun:test'
2
2
 
3
3
  const mockListUsers = mock(() =>
4
4
  Promise.resolve([
@@ -61,7 +61,7 @@ describe('user commands', () => {
61
61
  })
62
62
 
63
63
  describe('listUsers', () => {
64
- test('returns list of users', async () => {
64
+ it('returns list of users', async () => {
65
65
  // given
66
66
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
67
67
 
@@ -74,7 +74,7 @@ describe('user commands', () => {
74
74
  expect(users[1].name).toBe('bob')
75
75
  })
76
76
 
77
- test('includes user metadata', async () => {
77
+ it('includes user metadata', async () => {
78
78
  // given
79
79
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
80
80
 
@@ -90,7 +90,7 @@ describe('user commands', () => {
90
90
  expect(user.is_admin).toBe(false)
91
91
  })
92
92
 
93
- test('passes limit option', async () => {
93
+ it('passes limit option', async () => {
94
94
  // given
95
95
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
96
96
 
@@ -103,7 +103,7 @@ describe('user commands', () => {
103
103
  })
104
104
 
105
105
  describe('getUserInfo', () => {
106
- test('returns user details by ID', async () => {
106
+ it('returns user details by ID', async () => {
107
107
  // given
108
108
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
109
109
 
@@ -116,7 +116,7 @@ describe('user commands', () => {
116
116
  expect(user.real_name).toBe('Alice Smith')
117
117
  })
118
118
 
119
- test('includes profile information', async () => {
119
+ it('includes profile information', async () => {
120
120
  // given
121
121
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
122
122
 
@@ -129,7 +129,7 @@ describe('user commands', () => {
129
129
  expect(user.profile?.status_text).toBe('Working from home')
130
130
  })
131
131
 
132
- test('called with correct user ID', async () => {
132
+ it('passes the user ID to getUserInfo', async () => {
133
133
  // given
134
134
  const client = await new SlackBotClient().login({ token: 'xoxb-test-token' })
135
135
 
@@ -1,4 +1,4 @@
1
- import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test'
1
+ import { afterEach, beforeEach, describe, expect, mock, it } from 'bun:test'
2
2
  import { existsSync, rmSync } from 'node:fs'
3
3
  import { mkdir } from 'node:fs/promises'
4
4
  import { tmpdir } from 'node:os'
@@ -45,7 +45,7 @@ describe('whoami command', () => {
45
45
  process.env = originalEnv
46
46
  })
47
47
 
48
- test('returns auth info for current bot', async () => {
48
+ it('returns auth info for current bot', async () => {
49
49
  const manager = new SlackBotCredentialManager(tempDir)
50
50
  await manager.setCredentials({
51
51
  token: 'xoxb-test-token',
@@ -65,7 +65,7 @@ describe('whoami command', () => {
65
65
  expect(result.error).toBeUndefined()
66
66
  })
67
67
 
68
- test('returns auth info for specific --bot', async () => {
68
+ it('returns auth info for specific --bot', async () => {
69
69
  const manager = new SlackBotCredentialManager(tempDir)
70
70
  await manager.setCredentials({
71
71
  token: 'xoxb-test-token',
@@ -82,7 +82,7 @@ describe('whoami command', () => {
82
82
  expect(mockTestAuth).toHaveBeenCalledTimes(1)
83
83
  })
84
84
 
85
- test('returns error when client throws', async () => {
85
+ it('returns error when client throws', async () => {
86
86
  mockTestAuth.mockImplementationOnce(() => Promise.reject(new Error('API Error')))
87
87
 
88
88
  const manager = new SlackBotCredentialManager(tempDir)