agent-messenger 2.10.0 → 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.
- package/.claude-plugin/plugin.json +1 -1
- package/dist/package.json +1 -1
- package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/teams/token-extractor.js +15 -2
- package/dist/src/platforms/teams/token-extractor.js.map +1 -1
- package/dist/src/shared/chromium/decryptor.d.ts +6 -0
- package/dist/src/shared/chromium/decryptor.d.ts.map +1 -1
- package/dist/src/shared/chromium/decryptor.js +26 -6
- package/dist/src/shared/chromium/decryptor.js.map +1 -1
- package/e2e/channeltalk.e2e.test.ts +13 -13
- package/e2e/channeltalkbot.e2e.test.ts +13 -13
- package/e2e/discord.e2e.test.ts +24 -24
- package/e2e/discordbot.e2e.test.ts +16 -16
- package/e2e/instagram.e2e.test.ts +10 -10
- package/e2e/kakaotalk.e2e.test.ts +7 -7
- package/e2e/line.e2e.test.ts +8 -8
- package/e2e/slack.e2e.test.ts +34 -34
- package/e2e/slackbot.e2e.test.ts +14 -14
- package/e2e/teams.e2e.test.ts +23 -23
- package/e2e/telegram.e2e.test.ts +8 -8
- package/e2e/webex.e2e.test.ts +14 -14
- package/e2e/whatsapp.e2e.test.ts +8 -8
- package/e2e/whatsappbot.e2e.test.ts +6 -6
- package/package.json +1 -1
- package/skills/agent-channeltalk/SKILL.md +1 -1
- package/skills/agent-channeltalkbot/SKILL.md +1 -1
- package/skills/agent-discord/SKILL.md +1 -1
- package/skills/agent-discordbot/SKILL.md +1 -1
- package/skills/agent-instagram/SKILL.md +1 -1
- package/skills/agent-kakaotalk/SKILL.md +1 -1
- package/skills/agent-line/SKILL.md +1 -1
- package/skills/agent-slack/SKILL.md +1 -1
- package/skills/agent-slackbot/SKILL.md +1 -1
- package/skills/agent-teams/SKILL.md +1 -1
- package/skills/agent-telegram/SKILL.md +1 -1
- package/skills/agent-webex/SKILL.md +1 -1
- package/skills/agent-wechatbot/SKILL.md +1 -1
- package/skills/agent-whatsapp/SKILL.md +1 -1
- package/skills/agent-whatsappbot/SKILL.md +1 -1
- package/src/platforms/channeltalk/client.test.ts +26 -26
- package/src/platforms/channeltalk/commands/auth.test.ts +16 -16
- package/src/platforms/channeltalk/commands/bot.test.ts +2 -2
- package/src/platforms/channeltalk/commands/chat.test.ts +3 -3
- package/src/platforms/channeltalk/commands/group.test.ts +4 -4
- package/src/platforms/channeltalk/commands/manager.test.ts +2 -2
- package/src/platforms/channeltalk/commands/message.test.ts +17 -17
- package/src/platforms/channeltalk/commands/snapshot.test.ts +7 -7
- package/src/platforms/channeltalk/commands/whoami.test.ts +3 -3
- package/src/platforms/channeltalk/credential-manager.test.ts +18 -18
- package/src/platforms/channeltalk/ensure-auth.test.ts +5 -5
- package/src/platforms/channeltalk/index.test.ts +23 -23
- package/src/platforms/channeltalk/token-extractor.test.ts +21 -21
- package/src/platforms/channeltalk/types.test.ts +12 -12
- package/src/platforms/channeltalkbot/client.test.ts +14 -14
- package/src/platforms/channeltalkbot/commands/auth.test.ts +16 -16
- package/src/platforms/channeltalkbot/commands/bot.test.ts +6 -6
- package/src/platforms/channeltalkbot/commands/chat.test.ts +9 -9
- package/src/platforms/channeltalkbot/commands/group.test.ts +6 -6
- package/src/platforms/channeltalkbot/commands/manager.test.ts +3 -3
- package/src/platforms/channeltalkbot/commands/message.test.ts +10 -10
- package/src/platforms/channeltalkbot/commands/snapshot.test.ts +7 -7
- package/src/platforms/channeltalkbot/commands/whoami.test.ts +4 -4
- package/src/platforms/channeltalkbot/credential-manager.test.ts +27 -27
- package/src/platforms/channeltalkbot/index.test.ts +15 -15
- package/src/platforms/discord/client.test.ts +28 -28
- package/src/platforms/discord/commands/auth.test.ts +7 -7
- package/src/platforms/discord/commands/channel.test.ts +7 -7
- package/src/platforms/discord/commands/dm.test.ts +4 -4
- package/src/platforms/discord/commands/file.test.ts +4 -4
- package/src/platforms/discord/commands/friend.test.ts +6 -6
- package/src/platforms/discord/commands/member.test.ts +5 -5
- package/src/platforms/discord/commands/mention.test.ts +5 -5
- package/src/platforms/discord/commands/message.test.ts +9 -9
- package/src/platforms/discord/commands/note.test.ts +6 -6
- package/src/platforms/discord/commands/profile.test.ts +4 -4
- package/src/platforms/discord/commands/reaction.test.ts +5 -5
- package/src/platforms/discord/commands/server.test.ts +7 -7
- package/src/platforms/discord/commands/snapshot.test.ts +6 -6
- package/src/platforms/discord/commands/thread.test.ts +6 -6
- package/src/platforms/discord/commands/user.test.ts +5 -5
- package/src/platforms/discord/commands/whoami.test.ts +6 -6
- package/src/platforms/discord/credential-manager.test.ts +16 -16
- package/src/platforms/discord/ensure-auth.test.ts +8 -8
- package/src/platforms/discord/index.test.ts +17 -17
- package/src/platforms/discord/listener.test.ts +33 -33
- package/src/platforms/discord/token-extractor.test.ts +53 -53
- package/src/platforms/discord/types.test.ts +26 -26
- package/src/platforms/discordbot/client.test.ts +31 -31
- package/src/platforms/discordbot/commands/auth.test.ts +18 -18
- package/src/platforms/discordbot/commands/channel.test.ts +11 -11
- package/src/platforms/discordbot/commands/file.test.ts +7 -7
- package/src/platforms/discordbot/commands/message.test.ts +25 -25
- package/src/platforms/discordbot/commands/reaction.test.ts +6 -6
- package/src/platforms/discordbot/commands/server.test.ts +12 -12
- package/src/platforms/discordbot/commands/snapshot.test.ts +13 -13
- package/src/platforms/discordbot/commands/thread.test.ts +10 -10
- package/src/platforms/discordbot/commands/user.test.ts +9 -9
- package/src/platforms/discordbot/commands/whoami.test.ts +4 -4
- package/src/platforms/discordbot/credential-manager.test.ts +28 -28
- package/src/platforms/instagram/client.test.ts +18 -18
- package/src/platforms/instagram/commands/auth.test.ts +11 -11
- package/src/platforms/instagram/commands/chat.test.ts +6 -6
- package/src/platforms/instagram/commands/message.test.ts +11 -11
- package/src/platforms/instagram/commands/shared.test.ts +12 -12
- package/src/platforms/instagram/commands/whoami.test.ts +3 -3
- package/src/platforms/instagram/credential-manager.test.ts +21 -21
- package/src/platforms/instagram/ensure-auth.test.ts +4 -4
- package/src/platforms/instagram/index.test.ts +9 -9
- package/src/platforms/instagram/listener.test.ts +8 -8
- package/src/platforms/instagram/token-extractor.test.ts +35 -35
- package/src/platforms/kakaotalk/client.test.ts +33 -33
- package/src/platforms/kakaotalk/commands/auth.test.ts +11 -11
- package/src/platforms/kakaotalk/commands/chat.test.ts +6 -6
- package/src/platforms/kakaotalk/commands/message.test.ts +7 -7
- package/src/platforms/kakaotalk/commands/whoami.test.ts +5 -5
- package/src/platforms/kakaotalk/credential-manager.test.ts +15 -15
- package/src/platforms/kakaotalk/index.test.ts +15 -15
- package/src/platforms/kakaotalk/listener.test.ts +17 -17
- package/src/platforms/line/client.test.ts +17 -17
- package/src/platforms/line/commands/auth.test.ts +8 -8
- package/src/platforms/line/commands/chat.test.ts +7 -7
- package/src/platforms/line/commands/friend.test.ts +6 -6
- package/src/platforms/line/commands/message.test.ts +7 -7
- package/src/platforms/line/commands/whoami.test.ts +6 -6
- package/src/platforms/line/credential-manager.test.ts +17 -17
- package/src/platforms/line/index.test.ts +10 -10
- package/src/platforms/line/listener.test.ts +15 -15
- package/src/platforms/line/types.test.ts +14 -14
- package/src/platforms/slack/cli.test.ts +8 -8
- package/src/platforms/slack/client.test.ts +151 -151
- package/src/platforms/slack/commands/activity.test.ts +13 -13
- package/src/platforms/slack/commands/auth.test.ts +34 -34
- package/src/platforms/slack/commands/bookmark.test.ts +9 -9
- package/src/platforms/slack/commands/channel.test.ts +17 -17
- package/src/platforms/slack/commands/drafts.test.ts +7 -7
- package/src/platforms/slack/commands/emoji.test.ts +3 -3
- package/src/platforms/slack/commands/file.test.ts +12 -12
- package/src/platforms/slack/commands/message.test.ts +19 -19
- package/src/platforms/slack/commands/pin.test.ts +7 -7
- package/src/platforms/slack/commands/reaction.test.ts +10 -10
- package/src/platforms/slack/commands/reminder.test.ts +9 -9
- package/src/platforms/slack/commands/saved.test.ts +7 -7
- package/src/platforms/slack/commands/sections.test.ts +5 -5
- package/src/platforms/slack/commands/snapshot.test.ts +13 -13
- package/src/platforms/slack/commands/unread.test.ts +6 -6
- package/src/platforms/slack/commands/user.test.ts +10 -10
- package/src/platforms/slack/commands/usergroup.test.ts +15 -15
- package/src/platforms/slack/commands/whoami.test.ts +6 -6
- package/src/platforms/slack/commands/workspace.test.ts +26 -26
- package/src/platforms/slack/credential-manager.test.ts +14 -14
- package/src/platforms/slack/ensure-auth.test.ts +21 -21
- package/src/platforms/slack/index.test.ts +12 -12
- package/src/platforms/slack/listener.test.ts +17 -17
- package/src/platforms/slack/token-extractor-node.test.ts +2 -2
- package/src/platforms/slack/token-extractor.test.ts +37 -37
- package/src/platforms/slack/types.test.ts +21 -21
- package/src/platforms/slackbot/client.test.ts +22 -22
- package/src/platforms/slackbot/commands/auth.test.ts +14 -14
- package/src/platforms/slackbot/commands/channel.test.ts +7 -7
- package/src/platforms/slackbot/commands/message.test.ts +13 -13
- package/src/platforms/slackbot/commands/reaction.test.ts +6 -6
- package/src/platforms/slackbot/commands/user.test.ts +7 -7
- package/src/platforms/slackbot/commands/whoami.test.ts +4 -4
- package/src/platforms/slackbot/credential-manager.test.ts +22 -22
- package/src/platforms/slackbot/types.test.ts +7 -7
- package/src/platforms/teams/client.test.ts +30 -30
- package/src/platforms/teams/commands/auth.test.ts +8 -8
- package/src/platforms/teams/commands/channel.test.ts +7 -7
- package/src/platforms/teams/commands/file.test.ts +4 -4
- package/src/platforms/teams/commands/message.test.ts +5 -5
- package/src/platforms/teams/commands/reaction.test.ts +4 -4
- package/src/platforms/teams/commands/snapshot.test.ts +7 -7
- package/src/platforms/teams/commands/team.test.ts +8 -8
- package/src/platforms/teams/commands/user.test.ts +4 -4
- package/src/platforms/teams/commands/whoami.test.ts +6 -6
- package/src/platforms/teams/credential-manager.test.ts +17 -17
- package/src/platforms/teams/ensure-auth.test.ts +13 -13
- package/src/platforms/teams/index.test.ts +15 -15
- package/src/platforms/teams/token-extractor.test.ts +219 -145
- package/src/platforms/teams/token-extractor.ts +13 -2
- package/src/platforms/teams/types.test.ts +26 -26
- package/src/platforms/telegram/app-config.test.ts +4 -4
- package/src/platforms/telegram/chat-utils.test.ts +12 -12
- package/src/platforms/telegram/client.test.ts +4 -4
- package/src/platforms/telegram/commands/auth.test.ts +16 -16
- package/src/platforms/telegram/commands/chat.test.ts +9 -9
- package/src/platforms/telegram/commands/message.test.ts +6 -6
- package/src/platforms/telegram/commands/shared.test.ts +3 -3
- package/src/platforms/telegram/commands/whoami.test.ts +3 -3
- package/src/platforms/telegram/credential-manager.test.ts +10 -10
- package/src/platforms/telegram/types.test.ts +6 -6
- package/src/platforms/webex/app-config.test.ts +8 -8
- package/src/platforms/webex/cli.test.ts +5 -5
- package/src/platforms/webex/client.test.ts +65 -65
- package/src/platforms/webex/commands/auth.test.ts +18 -18
- package/src/platforms/webex/commands/member.test.ts +5 -5
- package/src/platforms/webex/commands/message.test.ts +12 -12
- package/src/platforms/webex/commands/snapshot.test.ts +5 -5
- package/src/platforms/webex/commands/space.test.ts +10 -10
- package/src/platforms/webex/commands/whoami.test.ts +6 -6
- package/src/platforms/webex/credential-manager.test.ts +22 -22
- package/src/platforms/webex/encryption.test.ts +4 -4
- package/src/platforms/webex/ensure-auth.test.ts +5 -5
- package/src/platforms/webex/index.test.ts +5 -5
- package/src/platforms/webex/markdown-to-html.test.ts +33 -33
- package/src/platforms/webex/token-extractor.test.ts +23 -23
- package/src/platforms/webex/types.test.ts +27 -27
- package/src/platforms/wechatbot/client.test.ts +27 -27
- package/src/platforms/wechatbot/commands/auth.test.ts +15 -15
- package/src/platforms/wechatbot/commands/message.test.ts +8 -8
- package/src/platforms/wechatbot/commands/template.test.ts +9 -9
- package/src/platforms/wechatbot/commands/user.test.ts +7 -7
- package/src/platforms/wechatbot/commands/whoami.test.ts +5 -5
- package/src/platforms/wechatbot/credential-manager.test.ts +18 -18
- package/src/platforms/wechatbot/index.test.ts +10 -10
- package/src/platforms/wechatbot/types.test.ts +25 -25
- package/src/platforms/whatsapp/commands/auth.test.ts +13 -13
- package/src/platforms/whatsapp/commands/chat.test.ts +8 -8
- package/src/platforms/whatsapp/commands/message.test.ts +10 -10
- package/src/platforms/whatsapp/commands/whoami.test.ts +3 -3
- package/src/platforms/whatsapp/credential-manager.test.ts +23 -23
- package/src/platforms/whatsapp/ensure-auth.test.ts +4 -4
- package/src/platforms/whatsapp/index.test.ts +8 -8
- package/src/platforms/whatsapp/types.test.ts +42 -42
- package/src/platforms/whatsappbot/client.test.ts +27 -27
- package/src/platforms/whatsappbot/commands/auth.test.ts +14 -14
- package/src/platforms/whatsappbot/commands/message.test.ts +16 -16
- package/src/platforms/whatsappbot/commands/template.test.ts +9 -9
- package/src/platforms/whatsappbot/commands/whoami.test.ts +5 -5
- package/src/platforms/whatsappbot/credential-manager.test.ts +18 -18
- package/src/platforms/whatsappbot/index.test.ts +7 -7
- package/src/platforms/whatsappbot/types.test.ts +18 -18
- package/src/shared/chromium/browsers.test.ts +22 -22
- package/src/shared/chromium/cookie-reader.test.ts +13 -13
- package/src/shared/chromium/decryptor.test.ts +97 -32
- package/src/shared/chromium/decryptor.ts +27 -6
- package/src/shared/utils/concurrency.test.ts +6 -6
- package/src/shared/utils/derived-key-cache.test.ts +11 -11
- package/src/tui/utils.test.ts +31 -31
package/e2e/discord.e2e.test.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe,
|
|
1
|
+
import { describe, it, expect, beforeAll, afterEach } from 'bun:test'
|
|
2
2
|
|
|
3
3
|
import { DISCORD_TEST_CHANNEL_ID, DISCORD_TEST_SERVER_ID, validateDiscordEnvironment } from './config'
|
|
4
4
|
import {
|
|
@@ -28,7 +28,7 @@ describe('Discord E2E Tests', () => {
|
|
|
28
28
|
})
|
|
29
29
|
|
|
30
30
|
describe('auth', () => {
|
|
31
|
-
|
|
31
|
+
it('auth status returns authenticated status', async () => {
|
|
32
32
|
const result = await runCLI('discord', ['auth', 'status'])
|
|
33
33
|
expect(result.exitCode).toBe(0)
|
|
34
34
|
|
|
@@ -38,7 +38,7 @@ describe('Discord E2E Tests', () => {
|
|
|
38
38
|
})
|
|
39
39
|
|
|
40
40
|
describe('server', () => {
|
|
41
|
-
|
|
41
|
+
it('server list returns array', async () => {
|
|
42
42
|
const result = await runCLI('discord', ['server', 'list'])
|
|
43
43
|
expect(result.exitCode).toBe(0)
|
|
44
44
|
|
|
@@ -46,7 +46,7 @@ describe('Discord E2E Tests', () => {
|
|
|
46
46
|
expect(Array.isArray(data)).toBe(true)
|
|
47
47
|
})
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
it('server current returns current server', async () => {
|
|
50
50
|
const result = await runCLI('discord', ['server', 'current'])
|
|
51
51
|
expect(result.exitCode).toBe(0)
|
|
52
52
|
|
|
@@ -54,7 +54,7 @@ describe('Discord E2E Tests', () => {
|
|
|
54
54
|
expect(data?.server_id).toBe(DISCORD_TEST_SERVER_ID)
|
|
55
55
|
})
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
it('server info returns server details', async () => {
|
|
58
58
|
const result = await runCLI('discord', ['server', 'info', DISCORD_TEST_SERVER_ID])
|
|
59
59
|
expect(result.exitCode).toBe(0)
|
|
60
60
|
|
|
@@ -64,7 +64,7 @@ describe('Discord E2E Tests', () => {
|
|
|
64
64
|
})
|
|
65
65
|
|
|
66
66
|
describe('message', () => {
|
|
67
|
-
|
|
67
|
+
it('message send creates message', async () => {
|
|
68
68
|
const testId = generateTestId()
|
|
69
69
|
const result = await runCLI('discord', ['message', 'send', DISCORD_TEST_CHANNEL_ID, `Test message ${testId}`])
|
|
70
70
|
expect(result.exitCode).toBe(0)
|
|
@@ -75,7 +75,7 @@ describe('Discord E2E Tests', () => {
|
|
|
75
75
|
if (data?.id) testMessages.push(data.id)
|
|
76
76
|
})
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
it('message list returns messages array', async () => {
|
|
79
79
|
const result = await runCLI('discord', ['message', 'list', DISCORD_TEST_CHANNEL_ID, '--limit', '5'])
|
|
80
80
|
expect(result.exitCode).toBe(0)
|
|
81
81
|
|
|
@@ -83,7 +83,7 @@ describe('Discord E2E Tests', () => {
|
|
|
83
83
|
expect(Array.isArray(data)).toBe(true)
|
|
84
84
|
})
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
it.skip('message get retrieves specific message (requires bot token)', async () => {
|
|
87
87
|
const testId = generateTestId()
|
|
88
88
|
const { id } = await createTestMessage('discord', DISCORD_TEST_CHANNEL_ID, `Get test ${testId}`)
|
|
89
89
|
testMessages.push(id)
|
|
@@ -97,7 +97,7 @@ describe('Discord E2E Tests', () => {
|
|
|
97
97
|
expect(data?.content).toContain(testId)
|
|
98
98
|
})
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
it('message delete removes message', async () => {
|
|
101
101
|
const testId = generateTestId()
|
|
102
102
|
const { id } = await createTestMessage('discord', DISCORD_TEST_CHANNEL_ID, `Delete me ${testId}`)
|
|
103
103
|
|
|
@@ -107,7 +107,7 @@ describe('Discord E2E Tests', () => {
|
|
|
107
107
|
expect(result.exitCode).toBe(0)
|
|
108
108
|
})
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
it('message ack acknowledges message', async () => {
|
|
111
111
|
const testId = generateTestId()
|
|
112
112
|
const { id } = await createTestMessage('discord', DISCORD_TEST_CHANNEL_ID, `Ack test ${testId}`)
|
|
113
113
|
testMessages.push(id)
|
|
@@ -121,7 +121,7 @@ describe('Discord E2E Tests', () => {
|
|
|
121
121
|
expect(data?.acknowledged).toBe(id)
|
|
122
122
|
})
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
it('message search finds messages', async () => {
|
|
125
125
|
const result = await runCLI('discord', ['message', 'search', 'test', '--limit', '5'])
|
|
126
126
|
expect(result.exitCode).toBe(0)
|
|
127
127
|
|
|
@@ -132,7 +132,7 @@ describe('Discord E2E Tests', () => {
|
|
|
132
132
|
})
|
|
133
133
|
|
|
134
134
|
describe('channel', () => {
|
|
135
|
-
|
|
135
|
+
it('channel list returns channels array', async () => {
|
|
136
136
|
const result = await runCLI('discord', ['channel', 'list'])
|
|
137
137
|
expect(result.exitCode).toBe(0)
|
|
138
138
|
|
|
@@ -140,7 +140,7 @@ describe('Discord E2E Tests', () => {
|
|
|
140
140
|
expect(Array.isArray(data)).toBe(true)
|
|
141
141
|
})
|
|
142
142
|
|
|
143
|
-
|
|
143
|
+
it('channel info returns channel details', async () => {
|
|
144
144
|
const result = await runCLI('discord', ['channel', 'info', DISCORD_TEST_CHANNEL_ID])
|
|
145
145
|
expect(result.exitCode).toBe(0)
|
|
146
146
|
|
|
@@ -148,7 +148,7 @@ describe('Discord E2E Tests', () => {
|
|
|
148
148
|
expect(data?.id).toBe(DISCORD_TEST_CHANNEL_ID)
|
|
149
149
|
})
|
|
150
150
|
|
|
151
|
-
|
|
151
|
+
it('channel history returns messages', async () => {
|
|
152
152
|
const result = await runCLI('discord', ['channel', 'history', DISCORD_TEST_CHANNEL_ID, '--limit', '5'])
|
|
153
153
|
expect(result.exitCode).toBe(0)
|
|
154
154
|
|
|
@@ -158,7 +158,7 @@ describe('Discord E2E Tests', () => {
|
|
|
158
158
|
})
|
|
159
159
|
|
|
160
160
|
describe('user', () => {
|
|
161
|
-
|
|
161
|
+
it.skip('user list returns users array (requires bot token)', async () => {
|
|
162
162
|
const result = await runCLI('discord', ['user', 'list'])
|
|
163
163
|
expect(result.exitCode).toBe(0)
|
|
164
164
|
|
|
@@ -166,7 +166,7 @@ describe('Discord E2E Tests', () => {
|
|
|
166
166
|
expect(Array.isArray(data)).toBe(true)
|
|
167
167
|
})
|
|
168
168
|
|
|
169
|
-
|
|
169
|
+
it('user me returns current user', async () => {
|
|
170
170
|
const result = await runCLI('discord', ['user', 'me'])
|
|
171
171
|
expect(result.exitCode).toBe(0)
|
|
172
172
|
|
|
@@ -175,7 +175,7 @@ describe('Discord E2E Tests', () => {
|
|
|
175
175
|
expect(data?.username).toBeTruthy()
|
|
176
176
|
})
|
|
177
177
|
|
|
178
|
-
|
|
178
|
+
it('user info returns user details', async () => {
|
|
179
179
|
// First get current user ID
|
|
180
180
|
const meResult = await runCLI('discord', ['user', 'me'])
|
|
181
181
|
expect(meResult.exitCode).toBe(0)
|
|
@@ -194,7 +194,7 @@ describe('Discord E2E Tests', () => {
|
|
|
194
194
|
})
|
|
195
195
|
|
|
196
196
|
describe('reaction', () => {
|
|
197
|
-
|
|
197
|
+
it.skip('reaction add/list/remove lifecycle (requires bot token)', async () => {
|
|
198
198
|
const testId = generateTestId()
|
|
199
199
|
const { id } = await createTestMessage('discord', DISCORD_TEST_CHANNEL_ID, `Reaction test ${testId}`)
|
|
200
200
|
testMessages.push(id)
|
|
@@ -220,7 +220,7 @@ describe('Discord E2E Tests', () => {
|
|
|
220
220
|
})
|
|
221
221
|
|
|
222
222
|
describe('file', () => {
|
|
223
|
-
|
|
223
|
+
it('file list returns files array', async () => {
|
|
224
224
|
const result = await runCLI('discord', ['file', 'list', DISCORD_TEST_CHANNEL_ID])
|
|
225
225
|
expect(result.exitCode).toBe(0)
|
|
226
226
|
|
|
@@ -228,7 +228,7 @@ describe('Discord E2E Tests', () => {
|
|
|
228
228
|
expect(Array.isArray(data)).toBe(true)
|
|
229
229
|
})
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
it('file upload uploads file and file info retrieves it', async () => {
|
|
232
232
|
const testId = generateTestId()
|
|
233
233
|
const testFilePath = `/tmp/discord-e2e-${testId}.txt`
|
|
234
234
|
await Bun.write(testFilePath, `Discord E2E test file ${testId}`)
|
|
@@ -254,7 +254,7 @@ describe('Discord E2E Tests', () => {
|
|
|
254
254
|
}
|
|
255
255
|
})
|
|
256
256
|
|
|
257
|
-
|
|
257
|
+
it('file info retrieves file details', async () => {
|
|
258
258
|
// List files first to get a file ID
|
|
259
259
|
const listResult = await runCLI('discord', ['file', 'list', DISCORD_TEST_CHANNEL_ID])
|
|
260
260
|
expect(listResult.exitCode).toBe(0)
|
|
@@ -273,7 +273,7 @@ describe('Discord E2E Tests', () => {
|
|
|
273
273
|
})
|
|
274
274
|
|
|
275
275
|
describe('snapshot', () => {
|
|
276
|
-
|
|
276
|
+
it.skip('snapshot returns full server data (requires bot token)', async () => {
|
|
277
277
|
const result = await runCLI('discord', ['snapshot', '--limit', '2'])
|
|
278
278
|
expect(result.exitCode).toBe(0)
|
|
279
279
|
|
|
@@ -282,7 +282,7 @@ describe('Discord E2E Tests', () => {
|
|
|
282
282
|
expect(data?.users).toBeDefined()
|
|
283
283
|
})
|
|
284
284
|
|
|
285
|
-
|
|
285
|
+
it('snapshot --channels-only returns only channels', async () => {
|
|
286
286
|
const result = await runCLI('discord', ['snapshot', '--channels-only'])
|
|
287
287
|
expect(result.exitCode).toBe(0)
|
|
288
288
|
|
|
@@ -290,7 +290,7 @@ describe('Discord E2E Tests', () => {
|
|
|
290
290
|
expect(data?.channels).toBeDefined()
|
|
291
291
|
})
|
|
292
292
|
|
|
293
|
-
|
|
293
|
+
it.skip('snapshot --users-only returns only users (requires bot token)', async () => {
|
|
294
294
|
const result = await runCLI('discord', ['snapshot', '--users-only'])
|
|
295
295
|
expect(result.exitCode).toBe(0)
|
|
296
296
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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'])
|
package/e2e/line.e2e.test.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { afterEach, beforeAll, describe, expect,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
81
|
+
it('profile returns current user profile', async () => {
|
|
82
82
|
if (!lineAvailable) return
|
|
83
83
|
|
|
84
84
|
const result = await runCLI('line', ['profile'])
|