@openclaw/msteams 2026.5.2 → 2026.5.3-beta.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/dist/api.js +3 -0
- package/dist/channel-D7hdreTh.js +984 -0
- package/dist/channel-config-api.js +2 -0
- package/dist/channel-plugin-api.js +2 -0
- package/dist/channel.runtime-BC1ruIfN.js +573 -0
- package/dist/config-schema-B8QezH6t.js +15 -0
- package/dist/contract-api.js +2 -0
- package/dist/graph-users-9uQJepqr.js +1354 -0
- package/dist/index.js +22 -0
- package/dist/oauth-BWJyilR1.js +114 -0
- package/dist/oauth.token-xxpoLWy5.js +115 -0
- package/dist/policy-DTnU2GR7.js +142 -0
- package/dist/probe-D_H8yFps.js +2194 -0
- package/dist/resolve-allowlist-D41JSziq.js +219 -0
- package/dist/runtime-api-DV1iVMn1.js +28 -0
- package/dist/runtime-api.js +2 -0
- package/dist/secret-contract-BuoEXmPS.js +35 -0
- package/dist/secret-contract-api.js +2 -0
- package/dist/setup-entry.js +15 -0
- package/dist/setup-plugin-api.js +64 -0
- package/dist/setup-surface-BLkFQYIQ.js +313 -0
- package/dist/src-CFp1QpFd.js +4064 -0
- package/dist/test-api.js +2 -0
- package/package.json +14 -6
- package/api.ts +0 -3
- package/channel-config-api.ts +0 -1
- package/channel-plugin-api.ts +0 -2
- package/config-api.ts +0 -4
- package/contract-api.ts +0 -4
- package/index.ts +0 -20
- package/runtime-api.ts +0 -73
- package/secret-contract-api.ts +0 -5
- package/setup-entry.ts +0 -13
- package/setup-plugin-api.ts +0 -3
- package/src/ai-entity.ts +0 -7
- package/src/approval-auth.ts +0 -44
- package/src/attachments/bot-framework.test.ts +0 -461
- package/src/attachments/bot-framework.ts +0 -362
- package/src/attachments/download.ts +0 -311
- package/src/attachments/graph.test.ts +0 -416
- package/src/attachments/graph.ts +0 -484
- package/src/attachments/html.ts +0 -122
- package/src/attachments/payload.ts +0 -14
- package/src/attachments/remote-media.test.ts +0 -137
- package/src/attachments/remote-media.ts +0 -112
- package/src/attachments/shared.test.ts +0 -530
- package/src/attachments/shared.ts +0 -626
- package/src/attachments/types.ts +0 -47
- package/src/attachments.graph.test.ts +0 -342
- package/src/attachments.helpers.test.ts +0 -246
- package/src/attachments.test-helpers.ts +0 -17
- package/src/attachments.test.ts +0 -687
- package/src/attachments.ts +0 -18
- package/src/block-streaming-config.test.ts +0 -61
- package/src/channel-api.ts +0 -1
- package/src/channel.actions.test.ts +0 -742
- package/src/channel.directory.test.ts +0 -200
- package/src/channel.runtime.ts +0 -56
- package/src/channel.setup.ts +0 -77
- package/src/channel.test.ts +0 -128
- package/src/channel.ts +0 -1136
- package/src/config-schema.ts +0 -6
- package/src/config-ui-hints.ts +0 -12
- package/src/conversation-store-fs.test.ts +0 -74
- package/src/conversation-store-fs.ts +0 -149
- package/src/conversation-store-helpers.test.ts +0 -202
- package/src/conversation-store-helpers.ts +0 -105
- package/src/conversation-store-memory.ts +0 -51
- package/src/conversation-store.shared.test.ts +0 -225
- package/src/conversation-store.ts +0 -71
- package/src/directory-live.test.ts +0 -156
- package/src/directory-live.ts +0 -111
- package/src/doctor.ts +0 -27
- package/src/errors.test.ts +0 -133
- package/src/errors.ts +0 -246
- package/src/feedback-reflection-prompt.ts +0 -117
- package/src/feedback-reflection-store.ts +0 -114
- package/src/feedback-reflection.test.ts +0 -237
- package/src/feedback-reflection.ts +0 -283
- package/src/file-consent-helpers.test.ts +0 -326
- package/src/file-consent-helpers.ts +0 -126
- package/src/file-consent-invoke.ts +0 -150
- package/src/file-consent.test.ts +0 -363
- package/src/file-consent.ts +0 -287
- package/src/graph-chat.ts +0 -55
- package/src/graph-group-management.test.ts +0 -318
- package/src/graph-group-management.ts +0 -168
- package/src/graph-members.test.ts +0 -89
- package/src/graph-members.ts +0 -48
- package/src/graph-messages.actions.test.ts +0 -243
- package/src/graph-messages.read.test.ts +0 -391
- package/src/graph-messages.search.test.ts +0 -213
- package/src/graph-messages.test-helpers.ts +0 -50
- package/src/graph-messages.ts +0 -534
- package/src/graph-teams.test.ts +0 -215
- package/src/graph-teams.ts +0 -114
- package/src/graph-thread.test.ts +0 -246
- package/src/graph-thread.ts +0 -146
- package/src/graph-upload.test.ts +0 -258
- package/src/graph-upload.ts +0 -531
- package/src/graph-users.ts +0 -29
- package/src/graph.test.ts +0 -516
- package/src/graph.ts +0 -293
- package/src/inbound.test.ts +0 -221
- package/src/inbound.ts +0 -148
- package/src/index.ts +0 -4
- package/src/media-helpers.test.ts +0 -202
- package/src/media-helpers.ts +0 -105
- package/src/mentions.test.ts +0 -244
- package/src/mentions.ts +0 -114
- package/src/messenger.test.ts +0 -865
- package/src/messenger.ts +0 -605
- package/src/monitor-handler/access.ts +0 -125
- package/src/monitor-handler/inbound-media.test.ts +0 -289
- package/src/monitor-handler/inbound-media.ts +0 -180
- package/src/monitor-handler/message-handler-mock-support.test-support.ts +0 -28
- package/src/monitor-handler/message-handler.authz.test.ts +0 -669
- package/src/monitor-handler/message-handler.dm-media.test.ts +0 -54
- package/src/monitor-handler/message-handler.test-support.ts +0 -100
- package/src/monitor-handler/message-handler.thread-parent.test.ts +0 -223
- package/src/monitor-handler/message-handler.thread-session.test.ts +0 -77
- package/src/monitor-handler/message-handler.ts +0 -1000
- package/src/monitor-handler/reaction-handler.test.ts +0 -267
- package/src/monitor-handler/reaction-handler.ts +0 -210
- package/src/monitor-handler/thread-session.ts +0 -17
- package/src/monitor-handler.adaptive-card.test.ts +0 -162
- package/src/monitor-handler.feedback-authz.test.ts +0 -314
- package/src/monitor-handler.file-consent.test.ts +0 -423
- package/src/monitor-handler.sso.test.ts +0 -563
- package/src/monitor-handler.test-helpers.ts +0 -180
- package/src/monitor-handler.ts +0 -534
- package/src/monitor-handler.types.ts +0 -27
- package/src/monitor-types.ts +0 -6
- package/src/monitor.lifecycle.test.ts +0 -278
- package/src/monitor.test.ts +0 -119
- package/src/monitor.ts +0 -442
- package/src/oauth.flow.ts +0 -77
- package/src/oauth.shared.ts +0 -37
- package/src/oauth.test.ts +0 -305
- package/src/oauth.token.ts +0 -158
- package/src/oauth.ts +0 -130
- package/src/outbound.test.ts +0 -130
- package/src/outbound.ts +0 -71
- package/src/pending-uploads-fs.test.ts +0 -246
- package/src/pending-uploads-fs.ts +0 -235
- package/src/pending-uploads.test.ts +0 -173
- package/src/pending-uploads.ts +0 -121
- package/src/policy.test.ts +0 -240
- package/src/policy.ts +0 -262
- package/src/polls-store-memory.ts +0 -32
- package/src/polls.test.ts +0 -160
- package/src/polls.ts +0 -323
- package/src/presentation.ts +0 -68
- package/src/probe.test.ts +0 -77
- package/src/probe.ts +0 -132
- package/src/reply-dispatcher.test.ts +0 -437
- package/src/reply-dispatcher.ts +0 -346
- package/src/reply-stream-controller.test.ts +0 -235
- package/src/reply-stream-controller.ts +0 -147
- package/src/resolve-allowlist.test.ts +0 -250
- package/src/resolve-allowlist.ts +0 -309
- package/src/revoked-context.ts +0 -17
- package/src/runtime.ts +0 -9
- package/src/sdk-types.ts +0 -59
- package/src/sdk.test.ts +0 -666
- package/src/sdk.ts +0 -884
- package/src/secret-contract.ts +0 -49
- package/src/secret-input.ts +0 -7
- package/src/send-context.ts +0 -231
- package/src/send.test.ts +0 -493
- package/src/send.ts +0 -637
- package/src/sent-message-cache.test.ts +0 -15
- package/src/sent-message-cache.ts +0 -56
- package/src/session-route.ts +0 -40
- package/src/setup-core.ts +0 -160
- package/src/setup-surface.test.ts +0 -202
- package/src/setup-surface.ts +0 -320
- package/src/sso-token-store.test.ts +0 -72
- package/src/sso-token-store.ts +0 -166
- package/src/sso.ts +0 -300
- package/src/storage.ts +0 -25
- package/src/store-fs.ts +0 -44
- package/src/streaming-message.test.ts +0 -262
- package/src/streaming-message.ts +0 -297
- package/src/test-runtime.ts +0 -16
- package/src/thread-parent-context.test.ts +0 -224
- package/src/thread-parent-context.ts +0 -159
- package/src/token-response.ts +0 -11
- package/src/token.test.ts +0 -259
- package/src/token.ts +0 -195
- package/src/user-agent.test.ts +0 -86
- package/src/user-agent.ts +0 -53
- package/src/webhook-timeouts.ts +0 -27
- package/src/welcome-card.test.ts +0 -81
- package/src/welcome-card.ts +0 -57
- package/test-api.ts +0 -1
- package/tsconfig.json +0 -16
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import { beforeAll, describe, expect, it } from "vitest";
|
|
2
|
-
import type { OpenClawConfig } from "../runtime-api.js";
|
|
3
|
-
import {
|
|
4
|
-
CHANNEL_TO,
|
|
5
|
-
CHAT_ID,
|
|
6
|
-
type GraphMessagesTestModule,
|
|
7
|
-
getGraphMessagesMockState,
|
|
8
|
-
installGraphMessagesMockDefaults,
|
|
9
|
-
loadGraphMessagesTestModule,
|
|
10
|
-
} from "./graph-messages.test-helpers.js";
|
|
11
|
-
|
|
12
|
-
const mockState = getGraphMessagesMockState();
|
|
13
|
-
installGraphMessagesMockDefaults();
|
|
14
|
-
let searchMessagesMSTeams: GraphMessagesTestModule["searchMessagesMSTeams"];
|
|
15
|
-
|
|
16
|
-
beforeAll(async () => {
|
|
17
|
-
({ searchMessagesMSTeams } = await loadGraphMessagesTestModule());
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
describe("searchMessagesMSTeams", () => {
|
|
21
|
-
it("searches chat messages with query string", async () => {
|
|
22
|
-
mockState.fetchGraphJson.mockResolvedValue({
|
|
23
|
-
value: [
|
|
24
|
-
{
|
|
25
|
-
id: "msg-1",
|
|
26
|
-
body: { content: "Meeting notes from Monday" },
|
|
27
|
-
from: { user: { id: "u1", displayName: "Alice" } },
|
|
28
|
-
createdDateTime: "2026-03-25T10:00:00Z",
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
const result = await searchMessagesMSTeams({
|
|
34
|
-
cfg: {} as OpenClawConfig,
|
|
35
|
-
to: CHAT_ID,
|
|
36
|
-
query: "meeting notes",
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
expect(result.messages).toEqual([
|
|
40
|
-
{
|
|
41
|
-
id: "msg-1",
|
|
42
|
-
text: "Meeting notes from Monday",
|
|
43
|
-
from: { user: { id: "u1", displayName: "Alice" } },
|
|
44
|
-
createdAt: "2026-03-25T10:00:00Z",
|
|
45
|
-
},
|
|
46
|
-
]);
|
|
47
|
-
const calledPath = mockState.fetchGraphJson.mock.calls[0][0].path as string;
|
|
48
|
-
expect(calledPath).toContain(`/chats/${encodeURIComponent(CHAT_ID)}/messages?`);
|
|
49
|
-
expect(calledPath).toContain("$search=");
|
|
50
|
-
expect(calledPath).toContain("$top=25");
|
|
51
|
-
const decoded = decodeURIComponent(calledPath);
|
|
52
|
-
expect(decoded).toContain('$search="meeting notes"');
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it("searches channel messages", async () => {
|
|
56
|
-
mockState.fetchGraphJson.mockResolvedValue({
|
|
57
|
-
value: [
|
|
58
|
-
{
|
|
59
|
-
id: "msg-2",
|
|
60
|
-
body: { content: "Sprint review" },
|
|
61
|
-
from: { user: { id: "u2", displayName: "Bob" } },
|
|
62
|
-
createdDateTime: "2026-03-25T11:00:00Z",
|
|
63
|
-
},
|
|
64
|
-
],
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
const result = await searchMessagesMSTeams({
|
|
68
|
-
cfg: {} as OpenClawConfig,
|
|
69
|
-
to: CHANNEL_TO,
|
|
70
|
-
query: "sprint",
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
expect(result.messages).toHaveLength(1);
|
|
74
|
-
const calledPath = mockState.fetchGraphJson.mock.calls[0][0].path as string;
|
|
75
|
-
expect(calledPath).toContain("/teams/team-id-1/channels/channel-id-1/messages?");
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
it("applies limit parameter", async () => {
|
|
79
|
-
mockState.fetchGraphJson.mockResolvedValue({ value: [] });
|
|
80
|
-
|
|
81
|
-
await searchMessagesMSTeams({
|
|
82
|
-
cfg: {} as OpenClawConfig,
|
|
83
|
-
to: CHAT_ID,
|
|
84
|
-
query: "test",
|
|
85
|
-
limit: 10,
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
const calledPath = mockState.fetchGraphJson.mock.calls[0][0].path as string;
|
|
89
|
-
expect(calledPath).toContain("$top=10");
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
it("clamps limit to max 50", async () => {
|
|
93
|
-
mockState.fetchGraphJson.mockResolvedValue({ value: [] });
|
|
94
|
-
|
|
95
|
-
await searchMessagesMSTeams({
|
|
96
|
-
cfg: {} as OpenClawConfig,
|
|
97
|
-
to: CHAT_ID,
|
|
98
|
-
query: "test",
|
|
99
|
-
limit: 100,
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
const calledPath = mockState.fetchGraphJson.mock.calls[0][0].path as string;
|
|
103
|
-
expect(calledPath).toContain("$top=50");
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
it("clamps limit to min 1", async () => {
|
|
107
|
-
mockState.fetchGraphJson.mockResolvedValue({ value: [] });
|
|
108
|
-
|
|
109
|
-
await searchMessagesMSTeams({
|
|
110
|
-
cfg: {} as OpenClawConfig,
|
|
111
|
-
to: CHAT_ID,
|
|
112
|
-
query: "test",
|
|
113
|
-
limit: 0,
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
const calledPath = mockState.fetchGraphJson.mock.calls[0][0].path as string;
|
|
117
|
-
expect(calledPath).toContain("$top=1");
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
it("applies from filter", async () => {
|
|
121
|
-
mockState.fetchGraphJson.mockResolvedValue({ value: [] });
|
|
122
|
-
|
|
123
|
-
await searchMessagesMSTeams({
|
|
124
|
-
cfg: {} as OpenClawConfig,
|
|
125
|
-
to: CHAT_ID,
|
|
126
|
-
query: "budget",
|
|
127
|
-
from: "Alice",
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
const calledPath = mockState.fetchGraphJson.mock.calls[0][0].path as string;
|
|
131
|
-
expect(calledPath).toContain("$filter=");
|
|
132
|
-
const decoded = decodeURIComponent(calledPath);
|
|
133
|
-
expect(decoded).toContain("from/user/displayName eq 'Alice'");
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
it("escapes single quotes in from filter", async () => {
|
|
137
|
-
mockState.fetchGraphJson.mockResolvedValue({ value: [] });
|
|
138
|
-
|
|
139
|
-
await searchMessagesMSTeams({
|
|
140
|
-
cfg: {} as OpenClawConfig,
|
|
141
|
-
to: CHAT_ID,
|
|
142
|
-
query: "test",
|
|
143
|
-
from: "O'Brien",
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
const calledPath = mockState.fetchGraphJson.mock.calls[0][0].path as string;
|
|
147
|
-
const decoded = decodeURIComponent(calledPath);
|
|
148
|
-
expect(decoded).toContain("O''Brien");
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
it("strips double quotes from query to prevent injection", async () => {
|
|
152
|
-
mockState.fetchGraphJson.mockResolvedValue({ value: [] });
|
|
153
|
-
|
|
154
|
-
await searchMessagesMSTeams({
|
|
155
|
-
cfg: {} as OpenClawConfig,
|
|
156
|
-
to: CHAT_ID,
|
|
157
|
-
query: 'say "hello" world',
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
const calledPath = mockState.fetchGraphJson.mock.calls[0][0].path as string;
|
|
161
|
-
const decoded = decodeURIComponent(calledPath);
|
|
162
|
-
expect(decoded).toContain('$search="say hello world"');
|
|
163
|
-
expect(decoded).not.toContain('""');
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
it("passes ConsistencyLevel: eventual header", async () => {
|
|
167
|
-
mockState.fetchGraphJson.mockResolvedValue({ value: [] });
|
|
168
|
-
|
|
169
|
-
await searchMessagesMSTeams({
|
|
170
|
-
cfg: {} as OpenClawConfig,
|
|
171
|
-
to: CHAT_ID,
|
|
172
|
-
query: "test",
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
expect(mockState.fetchGraphJson).toHaveBeenCalledWith(
|
|
176
|
-
expect.objectContaining({
|
|
177
|
-
headers: { ConsistencyLevel: "eventual" },
|
|
178
|
-
}),
|
|
179
|
-
);
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
it("returns empty array when no messages match", async () => {
|
|
183
|
-
mockState.fetchGraphJson.mockResolvedValue({ value: [] });
|
|
184
|
-
|
|
185
|
-
const result = await searchMessagesMSTeams({
|
|
186
|
-
cfg: {} as OpenClawConfig,
|
|
187
|
-
to: CHAT_ID,
|
|
188
|
-
query: "nonexistent",
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
expect(result.messages).toEqual([]);
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
it("resolves user: target through conversation store", async () => {
|
|
195
|
-
mockState.findPreferredDmByUserId.mockResolvedValue({
|
|
196
|
-
conversationId: "a:bot-id",
|
|
197
|
-
reference: { graphChatId: "19:dm-chat@thread.tacv2" },
|
|
198
|
-
});
|
|
199
|
-
mockState.fetchGraphJson.mockResolvedValue({ value: [] });
|
|
200
|
-
|
|
201
|
-
await searchMessagesMSTeams({
|
|
202
|
-
cfg: {} as OpenClawConfig,
|
|
203
|
-
to: "user:aad-user-1",
|
|
204
|
-
query: "hello",
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
expect(mockState.findPreferredDmByUserId).toHaveBeenCalledWith("aad-user-1");
|
|
208
|
-
const calledPath = mockState.fetchGraphJson.mock.calls[0][0].path as string;
|
|
209
|
-
expect(calledPath).toContain(
|
|
210
|
-
`/chats/${encodeURIComponent("19:dm-chat@thread.tacv2")}/messages?`,
|
|
211
|
-
);
|
|
212
|
-
});
|
|
213
|
-
});
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { beforeEach, vi } from "vitest";
|
|
2
|
-
|
|
3
|
-
const graphMessagesMockState = vi.hoisted(() => ({
|
|
4
|
-
resolveGraphToken: vi.fn(),
|
|
5
|
-
fetchGraphJson: vi.fn(),
|
|
6
|
-
fetchGraphAbsoluteUrl: vi.fn(),
|
|
7
|
-
postGraphJson: vi.fn(),
|
|
8
|
-
postGraphBetaJson: vi.fn(),
|
|
9
|
-
deleteGraphRequest: vi.fn(),
|
|
10
|
-
findPreferredDmByUserId: vi.fn(),
|
|
11
|
-
}));
|
|
12
|
-
|
|
13
|
-
vi.mock("./graph.js", () => {
|
|
14
|
-
return {
|
|
15
|
-
resolveGraphToken: graphMessagesMockState.resolveGraphToken,
|
|
16
|
-
fetchGraphJson: graphMessagesMockState.fetchGraphJson,
|
|
17
|
-
fetchGraphAbsoluteUrl: graphMessagesMockState.fetchGraphAbsoluteUrl,
|
|
18
|
-
postGraphJson: graphMessagesMockState.postGraphJson,
|
|
19
|
-
postGraphBetaJson: graphMessagesMockState.postGraphBetaJson,
|
|
20
|
-
deleteGraphRequest: graphMessagesMockState.deleteGraphRequest,
|
|
21
|
-
escapeOData: vi.fn((value: string) => value.replaceAll("'", "''")),
|
|
22
|
-
};
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
vi.mock("./conversation-store-fs.js", () => ({
|
|
26
|
-
createMSTeamsConversationStoreFs: () => ({
|
|
27
|
-
findPreferredDmByUserId: graphMessagesMockState.findPreferredDmByUserId,
|
|
28
|
-
}),
|
|
29
|
-
}));
|
|
30
|
-
|
|
31
|
-
export const TOKEN = "test-graph-token";
|
|
32
|
-
export const CHAT_ID = "19:abc@thread.tacv2";
|
|
33
|
-
export const CHANNEL_TO = "team-id-1/channel-id-1";
|
|
34
|
-
|
|
35
|
-
export function getGraphMessagesMockState(): typeof graphMessagesMockState {
|
|
36
|
-
return graphMessagesMockState;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export type GraphMessagesTestModule = typeof import("./graph-messages.js");
|
|
40
|
-
|
|
41
|
-
export function loadGraphMessagesTestModule(): Promise<GraphMessagesTestModule> {
|
|
42
|
-
return import("./graph-messages.js");
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export function installGraphMessagesMockDefaults(): void {
|
|
46
|
-
beforeEach(() => {
|
|
47
|
-
vi.clearAllMocks();
|
|
48
|
-
graphMessagesMockState.resolveGraphToken.mockResolvedValue(TOKEN);
|
|
49
|
-
});
|
|
50
|
-
}
|