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 { describe, test, expect, beforeAll, afterEach } from 'bun:test'
1
+ import { describe, it, expect, beforeAll, afterEach } from 'bun:test'
2
2
 
3
3
  import { DiscordBotClient } from '../src/platforms/discordbot/client'
4
4
  import { DiscordBotCredentialManager } from '../src/platforms/discordbot/credential-manager'
@@ -55,7 +55,7 @@ describe('DiscordBot E2E Tests', () => {
55
55
  })
56
56
 
57
57
  describe('auth', () => {
58
- test('auth status returns valid bot info', async () => {
58
+ it('auth status returns valid bot info', async () => {
59
59
  const result = await runCLI('discordbot', ['auth', 'status'])
60
60
  expect(result.exitCode).toBe(0)
61
61
 
@@ -72,7 +72,7 @@ describe('DiscordBot E2E Tests', () => {
72
72
  })
73
73
 
74
74
  describe('message', () => {
75
- test('message send creates message and returns id', async () => {
75
+ it('message send creates message and returns id', async () => {
76
76
  const testId = generateTestId()
77
77
  const result = await runCLI('discordbot', ['message', 'send', DISCORDBOT_TEST_CHANNEL_ID, `Bot test ${testId}`])
78
78
  expect(result.exitCode).toBe(0)
@@ -84,7 +84,7 @@ describe('DiscordBot E2E Tests', () => {
84
84
  if (data?.id) trackMessage(data.id)
85
85
  })
86
86
 
87
- test('message list returns messages array', async () => {
87
+ it('message list returns messages array', async () => {
88
88
  const result = await runCLI('discordbot', ['message', 'list', DISCORDBOT_TEST_CHANNEL_ID, '--limit', '5'])
89
89
  expect(result.exitCode).toBe(0)
90
90
 
@@ -92,7 +92,7 @@ describe('DiscordBot E2E Tests', () => {
92
92
  expect(Array.isArray(data?.messages)).toBe(true)
93
93
  })
94
94
 
95
- test('message get retrieves specific message', async () => {
95
+ it('message get retrieves specific message', async () => {
96
96
  const testId = generateTestId()
97
97
  const sendResult = await runCLI('discordbot', [
98
98
  'message',
@@ -114,7 +114,7 @@ describe('DiscordBot E2E Tests', () => {
114
114
  expect(data?.id).toBe(sent!.id)
115
115
  })
116
116
 
117
- test('message update modifies message', async () => {
117
+ it('message update modifies message', async () => {
118
118
  const testId = generateTestId()
119
119
  const sendResult = await runCLI('discordbot', [
120
120
  'message',
@@ -144,7 +144,7 @@ describe('DiscordBot E2E Tests', () => {
144
144
  expect(data?.content).toContain('Updated')
145
145
  })
146
146
 
147
- test('message delete removes message', async () => {
147
+ it('message delete removes message', async () => {
148
148
  const testId = generateTestId()
149
149
  const sendResult = await runCLI('discordbot', [
150
150
  'message',
@@ -161,7 +161,7 @@ describe('DiscordBot E2E Tests', () => {
161
161
  expect(result.exitCode).toBe(0)
162
162
  })
163
163
 
164
- test('message send with --thread creates reply', async () => {
164
+ it('message send with --thread creates reply', async () => {
165
165
  const testId = generateTestId()
166
166
  const sendResult = await runCLI('discordbot', ['message', 'send', DISCORDBOT_TEST_CHANNEL_ID, `Parent ${testId}`])
167
167
  const parent = parseJSON<{ id: string }>(sendResult.stdout)
@@ -187,7 +187,7 @@ describe('DiscordBot E2E Tests', () => {
187
187
  if (reply?.id) trackMessage(reply.id, replyChannel)
188
188
  }, 30000)
189
189
 
190
- test('message replies gets thread messages', async () => {
190
+ it('message replies gets thread messages', async () => {
191
191
  const testId = generateTestId()
192
192
 
193
193
  // given: create a real thread channel
@@ -226,7 +226,7 @@ describe('DiscordBot E2E Tests', () => {
226
226
  })
227
227
 
228
228
  describe('channel', () => {
229
- test('channel list returns channels array', async () => {
229
+ it('channel list returns channels array', async () => {
230
230
  const result = await runCLI('discordbot', ['channel', 'list'])
231
231
  expect(result.exitCode).toBe(0)
232
232
 
@@ -235,7 +235,7 @@ describe('DiscordBot E2E Tests', () => {
235
235
  expect(data!.channels.length).toBeGreaterThan(0)
236
236
  })
237
237
 
238
- test('channel info returns channel details', async () => {
238
+ it('channel info returns channel details', async () => {
239
239
  const result = await runCLI('discordbot', ['channel', 'info', DISCORDBOT_TEST_CHANNEL_ID])
240
240
  expect(result.exitCode).toBe(0)
241
241
 
@@ -246,7 +246,7 @@ describe('DiscordBot E2E Tests', () => {
246
246
  })
247
247
 
248
248
  describe('user', () => {
249
- test('user list returns users array', async () => {
249
+ it('user list returns users array', async () => {
250
250
  const result = await runCLI('discordbot', ['user', 'list'])
251
251
  expect(result.exitCode).toBe(0)
252
252
 
@@ -255,7 +255,7 @@ describe('DiscordBot E2E Tests', () => {
255
255
  expect(data!.users.length).toBeGreaterThan(0)
256
256
  })
257
257
 
258
- test('user info returns user details', async () => {
258
+ it('user info returns user details', async () => {
259
259
  // given: get the bot's own user_id via auth status
260
260
  const statusResult = await runCLI('discordbot', ['auth', 'status'])
261
261
  const status = parseJSON<{ bot_id: string }>(statusResult.stdout)
@@ -273,7 +273,7 @@ describe('DiscordBot E2E Tests', () => {
273
273
  })
274
274
 
275
275
  describe('reaction', () => {
276
- test('reaction add and remove lifecycle', async () => {
276
+ it('reaction add and remove lifecycle', async () => {
277
277
  // given: a message to react to
278
278
  const testId = generateTestId()
279
279
  const sendResult = await runCLI('discordbot', [
@@ -313,7 +313,7 @@ describe('DiscordBot E2E Tests', () => {
313
313
  })
314
314
 
315
315
  describe('server', () => {
316
- test('server list returns servers array', async () => {
316
+ it('server list returns servers array', async () => {
317
317
  const result = await runCLI('discordbot', ['server', 'list'])
318
318
  expect(result.exitCode).toBe(0)
319
319
 
@@ -322,7 +322,7 @@ describe('DiscordBot E2E Tests', () => {
322
322
  expect(data!.servers.length).toBeGreaterThan(0)
323
323
  })
324
324
 
325
- test('server current returns current server', async () => {
325
+ it('server current returns current server', async () => {
326
326
  const result = await runCLI('discordbot', ['server', 'current'])
327
327
  expect(result.exitCode).toBe(0)
328
328
 
@@ -1,4 +1,4 @@
1
- import { afterEach, beforeAll, describe, expect, test } from 'bun:test'
1
+ import { afterEach, beforeAll, describe, expect, it } from 'bun:test'
2
2
 
3
3
  import { INSTAGRAM_TEST_THREAD_ID, INSTAGRAM_TEST_USERNAME, validateInstagramEnvironment } from './config'
4
4
  import { generateTestId, parseJSON, runCLI, waitForRateLimit } from './helpers'
@@ -15,14 +15,14 @@ describe('Instagram E2E Tests', () => {
15
15
  })
16
16
 
17
17
  describe('auth', () => {
18
- test('auth status returns exit code 0', async () => {
18
+ it('auth status returns exit code 0', async () => {
19
19
  if (!instagramAvailable) return
20
20
 
21
21
  const result = await runCLI('instagram', ['auth', 'status'])
22
22
  expect(result.exitCode).toBe(0)
23
23
  })
24
24
 
25
- test('auth list returns accounts array', async () => {
25
+ it('auth list returns accounts array', async () => {
26
26
  if (!instagramAvailable) return
27
27
 
28
28
  const result = await runCLI('instagram', ['auth', 'list'])
@@ -34,7 +34,7 @@ describe('Instagram E2E Tests', () => {
34
34
  })
35
35
 
36
36
  describe('chat', () => {
37
- test('chat list returns chats', async () => {
37
+ it('chat list returns chats', async () => {
38
38
  if (!instagramAvailable) return
39
39
 
40
40
  const result = await runCLI('instagram', ['chat', 'list', '--limit', '5'])
@@ -44,7 +44,7 @@ describe('Instagram E2E Tests', () => {
44
44
  expect(data).toBeDefined()
45
45
  })
46
46
 
47
- test('chat search returns results', async () => {
47
+ it('chat search returns results', async () => {
48
48
  if (!instagramAvailable) return
49
49
 
50
50
  const result = await runCLI('instagram', ['chat', 'search', 'test', '--limit', '5'])
@@ -53,7 +53,7 @@ describe('Instagram E2E Tests', () => {
53
53
  })
54
54
 
55
55
  describe('message', () => {
56
- test('message send sends a message to thread', async () => {
56
+ it('message send sends a message to thread', async () => {
57
57
  if (!instagramAvailable) return
58
58
 
59
59
  const testId = generateTestId()
@@ -61,7 +61,7 @@ describe('Instagram E2E Tests', () => {
61
61
  expect(result.exitCode).toBe(0)
62
62
  })
63
63
 
64
- test('message list returns messages from thread', async () => {
64
+ it('message list returns messages from thread', async () => {
65
65
  if (!instagramAvailable) return
66
66
 
67
67
  const result = await runCLI('instagram', ['message', 'list', INSTAGRAM_TEST_THREAD_ID, '--limit', '5'])
@@ -71,7 +71,7 @@ describe('Instagram E2E Tests', () => {
71
71
  expect(data).toBeDefined()
72
72
  })
73
73
 
74
- test('message send-to sends a message to username', async () => {
74
+ it('message send-to sends a message to username', async () => {
75
75
  if (!instagramAvailable) return
76
76
  if (!INSTAGRAM_TEST_USERNAME) return
77
77
 
@@ -80,14 +80,14 @@ describe('Instagram E2E Tests', () => {
80
80
  expect(result.exitCode).toBe(0)
81
81
  })
82
82
 
83
- test('message search returns results', async () => {
83
+ it('message search returns results', async () => {
84
84
  if (!instagramAvailable) return
85
85
 
86
86
  const result = await runCLI('instagram', ['message', 'search', 'test', '--limit', '5'])
87
87
  expect(result.exitCode).toBe(0)
88
88
  })
89
89
 
90
- test('message search-users returns results', async () => {
90
+ it('message search-users returns results', async () => {
91
91
  if (!instagramAvailable) return
92
92
 
93
93
  const result = await runCLI('instagram', ['message', 'search-users', 'test'])
@@ -1,4 +1,4 @@
1
- import { afterEach, beforeAll, describe, expect, test } from 'bun:test'
1
+ import { afterEach, beforeAll, describe, expect, it } from 'bun:test'
2
2
 
3
3
  import { KAKAOTALK_TEST_CHAT_ID, validateKakaoTalkEnvironment } from './config'
4
4
  import { generateTestId, parseJSON, runCLI, waitForRateLimit } from './helpers'
@@ -15,14 +15,14 @@ describe('KakaoTalk E2E Tests', () => {
15
15
  })
16
16
 
17
17
  describe('auth', () => {
18
- test('auth status returns valid auth info', async () => {
18
+ it('auth status returns valid auth info', async () => {
19
19
  if (!kakaotalkAvailable) return
20
20
 
21
21
  const result = await runCLI('kakaotalk', ['auth', 'status'])
22
22
  expect(result.exitCode).toBe(0)
23
23
  })
24
24
 
25
- test('auth list returns accounts array', async () => {
25
+ it('auth list returns accounts array', async () => {
26
26
  if (!kakaotalkAvailable) return
27
27
 
28
28
  const result = await runCLI('kakaotalk', ['auth', 'list'])
@@ -34,7 +34,7 @@ describe('KakaoTalk E2E Tests', () => {
34
34
  })
35
35
 
36
36
  describe('chat', () => {
37
- test('chat list returns chats', async () => {
37
+ it('chat list returns chats', async () => {
38
38
  if (!kakaotalkAvailable) return
39
39
 
40
40
  const result = await runCLI('kakaotalk', ['chat', 'list'])
@@ -44,7 +44,7 @@ describe('KakaoTalk E2E Tests', () => {
44
44
  expect(data).toBeDefined()
45
45
  })
46
46
 
47
- test('chat list with search filter returns chats', async () => {
47
+ it('chat list with search filter returns chats', async () => {
48
48
  if (!kakaotalkAvailable) return
49
49
 
50
50
  const result = await runCLI('kakaotalk', ['chat', 'list', '--search', 'test'])
@@ -53,7 +53,7 @@ describe('KakaoTalk E2E Tests', () => {
53
53
  })
54
54
 
55
55
  describe('message', () => {
56
- test('message send sends a message to the test chat', async () => {
56
+ it('message send sends a message to the test chat', async () => {
57
57
  if (!kakaotalkAvailable) return
58
58
 
59
59
  const testId = generateTestId()
@@ -61,7 +61,7 @@ describe('KakaoTalk E2E Tests', () => {
61
61
  expect(result.exitCode).toBe(0)
62
62
  })
63
63
 
64
- test('message list returns messages from the test chat', async () => {
64
+ it('message list returns messages from the test chat', async () => {
65
65
  if (!kakaotalkAvailable) return
66
66
 
67
67
  const result = await runCLI('kakaotalk', ['message', 'list', KAKAOTALK_TEST_CHAT_ID, '-n', '5'])
@@ -1,4 +1,4 @@
1
- import { afterEach, beforeAll, describe, expect, test } from 'bun:test'
1
+ import { afterEach, beforeAll, describe, expect, it } from 'bun:test'
2
2
 
3
3
  import { LINE_TEST_CHAT_ID, validateLineEnvironment } from './config'
4
4
  import { generateTestId, parseJSON, runCLI, waitForRateLimit } from './helpers'
@@ -15,14 +15,14 @@ describe('LINE E2E Tests', () => {
15
15
  })
16
16
 
17
17
  describe('auth', () => {
18
- test('auth status returns valid auth info', async () => {
18
+ it('auth status returns valid auth info', async () => {
19
19
  if (!lineAvailable) return
20
20
 
21
21
  const result = await runCLI('line', ['auth', 'status'])
22
22
  expect(result.exitCode).toBe(0)
23
23
  })
24
24
 
25
- test('auth list returns accounts array', async () => {
25
+ it('auth list returns accounts array', async () => {
26
26
  if (!lineAvailable) return
27
27
 
28
28
  const result = await runCLI('line', ['auth', 'list'])
@@ -34,7 +34,7 @@ describe('LINE E2E Tests', () => {
34
34
  })
35
35
 
36
36
  describe('chat', () => {
37
- test('chat list returns chats', async () => {
37
+ it('chat list returns chats', async () => {
38
38
  if (!lineAvailable) return
39
39
 
40
40
  const result = await runCLI('line', ['chat', 'list', '--limit', '5'])
@@ -46,7 +46,7 @@ describe('LINE E2E Tests', () => {
46
46
  })
47
47
 
48
48
  describe('friend', () => {
49
- test('friend list returns friends', async () => {
49
+ it('friend list returns friends', async () => {
50
50
  if (!lineAvailable) return
51
51
 
52
52
  const result = await runCLI('line', ['friend', 'list'])
@@ -58,7 +58,7 @@ describe('LINE E2E Tests', () => {
58
58
  })
59
59
 
60
60
  describe('message', () => {
61
- test('message send sends a message to the test chat', async () => {
61
+ it('message send sends a message to the test chat', async () => {
62
62
  if (!lineAvailable) return
63
63
 
64
64
  const testId = generateTestId()
@@ -66,7 +66,7 @@ describe('LINE E2E Tests', () => {
66
66
  expect(result.exitCode).toBe(0)
67
67
  })
68
68
 
69
- test('message list returns messages from the test chat', async () => {
69
+ it('message list returns messages from the test chat', async () => {
70
70
  if (!lineAvailable) return
71
71
 
72
72
  const result = await runCLI('line', ['message', 'list', LINE_TEST_CHAT_ID, '-n', '5'])
@@ -78,7 +78,7 @@ describe('LINE E2E Tests', () => {
78
78
  })
79
79
 
80
80
  describe('profile', () => {
81
- test('profile returns current user profile', async () => {
81
+ it('profile returns current user profile', async () => {
82
82
  if (!lineAvailable) return
83
83
 
84
84
  const result = await runCLI('line', ['profile'])
@@ -1,4 +1,4 @@
1
- import { describe, test, expect, beforeAll, afterEach } from 'bun:test'
1
+ import { describe, it, expect, beforeAll, afterEach } from 'bun:test'
2
2
 
3
3
  import { WebClient } from '@slack/web-api'
4
4
 
@@ -32,7 +32,7 @@ describe('Slack E2E Tests', () => {
32
32
  })
33
33
 
34
34
  describe('auth', () => {
35
- test('auth status returns authenticated workspace info', async () => {
35
+ it('auth status returns authenticated workspace info', async () => {
36
36
  const result = await runCLI('slack', ['auth', 'status'])
37
37
  expect(result.exitCode).toBe(0)
38
38
 
@@ -44,7 +44,7 @@ describe('Slack E2E Tests', () => {
44
44
  })
45
45
 
46
46
  describe('workspace', () => {
47
- test('workspace list returns array', async () => {
47
+ it('workspace list returns array', async () => {
48
48
  const result = await runCLI('slack', ['workspace', 'list'])
49
49
  expect(result.exitCode).toBe(0)
50
50
 
@@ -52,7 +52,7 @@ describe('Slack E2E Tests', () => {
52
52
  expect(Array.isArray(data)).toBe(true)
53
53
  })
54
54
 
55
- test('workspace current returns current workspace', async () => {
55
+ it('workspace current returns current workspace', async () => {
56
56
  const result = await runCLI('slack', ['workspace', 'current'])
57
57
  expect(result.exitCode).toBe(0)
58
58
 
@@ -62,7 +62,7 @@ describe('Slack E2E Tests', () => {
62
62
  })
63
63
 
64
64
  describe('message', () => {
65
- test('message send creates message and returns ts', async () => {
65
+ it('message send creates message and returns ts', async () => {
66
66
  const testId = generateTestId()
67
67
  const result = await runCLI('slack', ['message', 'send', SLACK_TEST_CHANNEL_ID, `Test message ${testId}`])
68
68
  expect(result.exitCode).toBe(0)
@@ -73,7 +73,7 @@ describe('Slack E2E Tests', () => {
73
73
  if (data?.ts) testMessages.push(data.ts)
74
74
  })
75
75
 
76
- test('message list returns messages array', async () => {
76
+ it('message list returns messages array', async () => {
77
77
  const result = await runCLI('slack', ['message', 'list', SLACK_TEST_CHANNEL_ID, '--limit', '5'])
78
78
  expect(result.exitCode).toBe(0)
79
79
 
@@ -81,7 +81,7 @@ describe('Slack E2E Tests', () => {
81
81
  expect(Array.isArray(data)).toBe(true)
82
82
  })
83
83
 
84
- test('message get retrieves specific message', async () => {
84
+ it('message get retrieves specific message', async () => {
85
85
  const testId = generateTestId()
86
86
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Get test ${testId}`)
87
87
  testMessages.push(ts)
@@ -95,7 +95,7 @@ describe('Slack E2E Tests', () => {
95
95
  expect(data?.text).toContain(testId)
96
96
  })
97
97
 
98
- test('message update modifies message', async () => {
98
+ it('message update modifies message', async () => {
99
99
  const testId = generateTestId()
100
100
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Original ${testId}`)
101
101
  testMessages.push(ts)
@@ -111,7 +111,7 @@ describe('Slack E2E Tests', () => {
111
111
  expect(data?.text).toContain('Updated')
112
112
  })
113
113
 
114
- test('message search finds messages', async () => {
114
+ it('message search finds messages', async () => {
115
115
  const result = await runCLI('slack', ['message', 'search', 'test', '--limit', '5'])
116
116
  expect(result.exitCode).toBe(0)
117
117
 
@@ -119,7 +119,7 @@ describe('Slack E2E Tests', () => {
119
119
  expect(Array.isArray(data)).toBe(true)
120
120
  })
121
121
 
122
- test('message send with thread creates reply', async () => {
122
+ it('message send with thread creates reply', async () => {
123
123
  const testId = generateTestId()
124
124
  const { id: parentTs } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Parent ${testId}`)
125
125
  testMessages.push(parentTs)
@@ -142,7 +142,7 @@ describe('Slack E2E Tests', () => {
142
142
  if (data?.ts) testMessages.push(data.ts)
143
143
  }, 30000)
144
144
 
145
- test('message replies gets thread replies', async () => {
145
+ it('message replies gets thread replies', async () => {
146
146
  const testId = generateTestId()
147
147
  const { id: parentTs } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Thread parent ${testId}`)
148
148
  testMessages.push(parentTs)
@@ -161,7 +161,7 @@ describe('Slack E2E Tests', () => {
161
161
  expect(data?.length).toBeGreaterThanOrEqual(1)
162
162
  })
163
163
 
164
- test('message delete removes message', async () => {
164
+ it('message delete removes message', async () => {
165
165
  const testId = generateTestId()
166
166
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Delete me ${testId}`)
167
167
 
@@ -173,7 +173,7 @@ describe('Slack E2E Tests', () => {
173
173
  })
174
174
 
175
175
  describe('message files', () => {
176
- test('message get includes files when message has file attachment', async () => {
176
+ it('message get includes files when message has file attachment', async () => {
177
177
  // Upload file directly via Slack WebClient (bypasses CLI file upload mapping issue)
178
178
  const credManager = new CredentialManager()
179
179
  const workspace = await credManager.getWorkspace()
@@ -222,7 +222,7 @@ describe('Slack E2E Tests', () => {
222
222
  expect(getMessage?.files![0].id).toBe(file.id)
223
223
  }, 30000)
224
224
 
225
- test('message get omits files for plain text message', async () => {
225
+ it('message get omits files for plain text message', async () => {
226
226
  const testId = generateTestId()
227
227
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `No files ${testId}`)
228
228
  testMessages.push(ts)
@@ -239,7 +239,7 @@ describe('Slack E2E Tests', () => {
239
239
  })
240
240
 
241
241
  describe('channel', () => {
242
- test('channel list returns channels array', async () => {
242
+ it('channel list returns channels array', async () => {
243
243
  const result = await runCLI('slack', ['channel', 'list'])
244
244
  expect(result.exitCode).toBe(0)
245
245
 
@@ -248,7 +248,7 @@ describe('Slack E2E Tests', () => {
248
248
  expect(data?.length).toBeGreaterThan(0)
249
249
  })
250
250
 
251
- test('channel list --type public filters channels', async () => {
251
+ it('channel list --type public filters channels', async () => {
252
252
  const result = await runCLI('slack', ['channel', 'list', '--type', 'public'])
253
253
  expect(result.exitCode).toBe(0)
254
254
 
@@ -256,7 +256,7 @@ describe('Slack E2E Tests', () => {
256
256
  expect(Array.isArray(data)).toBe(true)
257
257
  })
258
258
 
259
- test('channel info returns channel details', async () => {
259
+ it('channel info returns channel details', async () => {
260
260
  const result = await runCLI('slack', ['channel', 'info', SLACK_TEST_CHANNEL_ID])
261
261
  expect(result.exitCode).toBe(0)
262
262
 
@@ -267,7 +267,7 @@ describe('Slack E2E Tests', () => {
267
267
  })
268
268
 
269
269
  describe('user', () => {
270
- test('user list returns users array', async () => {
270
+ it('user list returns users array', async () => {
271
271
  const result = await runCLI('slack', ['user', 'list'])
272
272
  expect(result.exitCode).toBe(0)
273
273
 
@@ -275,7 +275,7 @@ describe('Slack E2E Tests', () => {
275
275
  expect(Array.isArray(data)).toBe(true)
276
276
  })
277
277
 
278
- test('user me returns current user', async () => {
278
+ it('user me returns current user', async () => {
279
279
  const result = await runCLI('slack', ['user', 'me'])
280
280
  expect(result.exitCode).toBe(0)
281
281
 
@@ -284,7 +284,7 @@ describe('Slack E2E Tests', () => {
284
284
  expect(data?.name).toBeTruthy()
285
285
  })
286
286
 
287
- test('user info returns user details', async () => {
287
+ it('user info returns user details', async () => {
288
288
  // First get current user ID
289
289
  const meResult = await runCLI('slack', ['user', 'me'])
290
290
  const me = parseJSON<{ id: string }>(meResult.stdout)
@@ -302,7 +302,7 @@ describe('Slack E2E Tests', () => {
302
302
  })
303
303
 
304
304
  describe('reaction', () => {
305
- test('reaction add/list/remove lifecycle', async () => {
305
+ it('reaction add/list/remove lifecycle', async () => {
306
306
  const testId = generateTestId()
307
307
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Reaction test ${testId}`)
308
308
  testMessages.push(ts)
@@ -328,7 +328,7 @@ describe('Slack E2E Tests', () => {
328
328
  })
329
329
 
330
330
  describe('file', () => {
331
- test('file list returns files array', async () => {
331
+ it('file list returns files array', async () => {
332
332
  const result = await runCLI('slack', ['file', 'list'])
333
333
  expect(result.exitCode).toBe(0)
334
334
 
@@ -336,7 +336,7 @@ describe('Slack E2E Tests', () => {
336
336
  expect(Array.isArray(data)).toBe(true)
337
337
  })
338
338
 
339
- test.skip('file upload uploads file', async () => {
339
+ it.skip('file upload uploads file', async () => {
340
340
  const testId = generateTestId()
341
341
  const testFilePath = `/tmp/slack-e2e-${testId}.txt`
342
342
  await Bun.write(testFilePath, `E2E test file content ${testId}`)
@@ -358,7 +358,7 @@ describe('Slack E2E Tests', () => {
358
358
  }
359
359
  })
360
360
 
361
- test('file download downloads a file', async () => {
361
+ it('file download downloads a file', async () => {
362
362
  const testId = generateTestId()
363
363
  const testContent = `E2E download test ${testId}`
364
364
  const testFilePath = `/tmp/slack-e2e-upload-${testId}.txt`
@@ -408,7 +408,7 @@ describe('Slack E2E Tests', () => {
408
408
  })
409
409
 
410
410
  describe('channel history', () => {
411
- test('channel history returns messages', async () => {
411
+ it('channel history returns messages', async () => {
412
412
  const result = await runCLI('slack', ['channel', 'history', SLACK_TEST_CHANNEL_ID, '--limit', '5'])
413
413
  expect(result.exitCode).toBe(0)
414
414
 
@@ -418,7 +418,7 @@ describe('Slack E2E Tests', () => {
418
418
  })
419
419
 
420
420
  describe('unread', () => {
421
- test('unread counts returns unread summary', async () => {
421
+ it('unread counts returns unread summary', async () => {
422
422
  const result = await runCLI('slack', ['unread', 'counts'])
423
423
  expect(result.exitCode).toBe(0)
424
424
 
@@ -427,7 +427,7 @@ describe('Slack E2E Tests', () => {
427
427
  expect(Array.isArray(data?.channels)).toBe(true)
428
428
  })
429
429
 
430
- test('unread mark marks channel as read', async () => {
430
+ it('unread mark marks channel as read', async () => {
431
431
  const testId = generateTestId()
432
432
  const { id: ts } = await createTestMessage('slack', SLACK_TEST_CHANNEL_ID, `Unread mark test ${testId}`)
433
433
  testMessages.push(ts)
@@ -443,7 +443,7 @@ describe('Slack E2E Tests', () => {
443
443
  })
444
444
 
445
445
  describe('activity', () => {
446
- test('activity list returns activity items', async () => {
446
+ it('activity list returns activity items', async () => {
447
447
  const result = await runCLI('slack', ['activity', 'list', '--limit', '5'])
448
448
  expect(result.exitCode).toBe(0)
449
449
 
@@ -454,7 +454,7 @@ describe('Slack E2E Tests', () => {
454
454
  })
455
455
 
456
456
  describe('saved', () => {
457
- test('saved list returns saved items', async () => {
457
+ it('saved list returns saved items', async () => {
458
458
  const result = await runCLI('slack', ['saved', 'list'])
459
459
  expect(result.exitCode).toBe(0)
460
460
 
@@ -465,7 +465,7 @@ describe('Slack E2E Tests', () => {
465
465
  })
466
466
 
467
467
  describe('drafts', () => {
468
- test('drafts list returns drafts', async () => {
468
+ it('drafts list returns drafts', async () => {
469
469
  const result = await runCLI('slack', ['drafts', 'list'])
470
470
  expect(result.exitCode).toBe(0)
471
471
 
@@ -475,7 +475,7 @@ describe('Slack E2E Tests', () => {
475
475
  })
476
476
 
477
477
  describe('sections', () => {
478
- test('sections list returns channel sections', async () => {
478
+ it('sections list returns channel sections', async () => {
479
479
  const result = await runCLI('slack', ['sections', 'list'])
480
480
  expect(result.exitCode).toBe(0)
481
481
 
@@ -485,7 +485,7 @@ describe('Slack E2E Tests', () => {
485
485
  })
486
486
 
487
487
  describe('snapshot', () => {
488
- test('snapshot returns full workspace data', async () => {
488
+ it('snapshot returns full workspace data', async () => {
489
489
  const result = await runCLI('slack', ['snapshot', '--limit', '2'])
490
490
  expect(result.exitCode).toBe(0)
491
491
 
@@ -494,7 +494,7 @@ describe('Slack E2E Tests', () => {
494
494
  expect(data?.users).toBeDefined()
495
495
  })
496
496
 
497
- test('snapshot --channels-only returns only channels', async () => {
497
+ it('snapshot --channels-only returns only channels', async () => {
498
498
  const result = await runCLI('slack', ['snapshot', '--channels-only'])
499
499
  expect(result.exitCode).toBe(0)
500
500
 
@@ -502,7 +502,7 @@ describe('Slack E2E Tests', () => {
502
502
  expect(data?.channels).toBeDefined()
503
503
  })
504
504
 
505
- test('snapshot --users-only returns only users', async () => {
505
+ it('snapshot --users-only returns only users', async () => {
506
506
  const result = await runCLI('slack', ['snapshot', '--users-only'])
507
507
  expect(result.exitCode).toBe(0)
508
508