yaebal 0.0.4 → 0.0.6
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/lib/index.test.js +43 -0
- package/lib/index.test.js.map +1 -1
- package/package.json +10 -10
- package/src/index.test.ts +52 -0
package/lib/index.test.js
CHANGED
|
@@ -43,6 +43,49 @@ test("typed routers expose the generated shortcuts + narrowed fields", () => {
|
|
|
43
43
|
void args;
|
|
44
44
|
void ctx.react; // command handlers get the message context
|
|
45
45
|
});
|
|
46
|
+
bot.on("guest_message", (ctx) => {
|
|
47
|
+
void ctx.answer; // GuestMessageContext shortcut — answerGuestQuery, not sendMessage
|
|
48
|
+
void ctx.guest_bot_caller_user; // who summoned the guest bot
|
|
49
|
+
});
|
|
46
50
|
assert.ok(bot);
|
|
47
51
|
});
|
|
52
|
+
test("guest_message answer() posts a real message via answerGuestQuery", async () => {
|
|
53
|
+
const guestUpdate = {
|
|
54
|
+
update_id: 1,
|
|
55
|
+
guest_message: {
|
|
56
|
+
message_id: 5,
|
|
57
|
+
date: 0,
|
|
58
|
+
chat: { id: 42, type: "private" },
|
|
59
|
+
guest_query_id: "gq1",
|
|
60
|
+
guest_bot_caller_user: { id: 7, is_bot: false, first_name: "u" },
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
const calls = [];
|
|
64
|
+
const stubApi = {
|
|
65
|
+
call: (method, params) => {
|
|
66
|
+
calls.push({ method, params });
|
|
67
|
+
return Promise.resolve({ inline_message_id: "im1" });
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
const ctx = richContext(stubApi, guestUpdate, "guest_message");
|
|
71
|
+
assert.equal(ctx.guest_bot_caller_user?.first_name, "u");
|
|
72
|
+
await ctx.answer({
|
|
73
|
+
type: "article",
|
|
74
|
+
id: "1",
|
|
75
|
+
title: "hi",
|
|
76
|
+
input_message_content: { message_text: "hi" },
|
|
77
|
+
});
|
|
78
|
+
assert.deepEqual(calls[0], {
|
|
79
|
+
method: "answerGuestQuery",
|
|
80
|
+
params: {
|
|
81
|
+
guest_query_id: "gq1",
|
|
82
|
+
result: {
|
|
83
|
+
type: "article",
|
|
84
|
+
id: "1",
|
|
85
|
+
title: "hi",
|
|
86
|
+
input_message_content: { message_text: "hi" },
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
});
|
|
48
91
|
//# sourceMappingURL=index.test.js.map
|
package/lib/index.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,GAAG,GAAG,EAAW,CAAC;AAExB,MAAM,aAAa,GAAG;IACrB,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE;QACR,UAAU,EAAE,CAAC;QACb,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE;QAC/C,IAAI,EAAE,IAAI;KACV;CACQ,CAAC;AAEX,IAAI,CAAC,wEAAwE,EAAE,GAAG,EAAE;IACnF,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,OAAO,CAAC,CAAC,CAAC,8CAA8C;IAEjF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,0BAA0B;IACxD,MAAM,CAAC,KAAK,CAAE,GAAwC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,2BAA2B;IAClG,MAAM,CAAC,KAAK,CAAC,OAAQ,GAAoC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,8BAA8B;IAC5G,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,wBAAwB;AACpE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAChE,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEjC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEH,mFAAmF;AACnF,4EAA4E;AAC5E,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC3E,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEjC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,CAAC,GAAW,GAAG,CAAC,IAAI,CAAC,CAAC,yCAAyC;QAErE,KAAK,CAAC,CAAC;QACP,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,oDAAoD;QACpE,KAAK,GAAG,CAAC,QAAQ,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,EAAE;QACrC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,gCAAgC;IAClD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAa,GAAG,CAAC,IAAI,CAAC;QAEhC,KAAK,IAAI,CAAC;QACV,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,2CAA2C;IAC5D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yaebal",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "yaebal — batteries-included Telegram Bot API framework: core + auto-generated contexts + the common plugins, one import.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -16,15 +16,15 @@
|
|
|
16
16
|
"src"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@yaebal/
|
|
20
|
-
"@yaebal/
|
|
21
|
-
"@yaebal/keyboard": "0.
|
|
22
|
-
"@yaebal/callback-data": "0.0.
|
|
23
|
-
"@yaebal/
|
|
24
|
-
"@yaebal/
|
|
25
|
-
"@yaebal/i18n": "0.0.
|
|
26
|
-
"@yaebal/fmt": "0.0.
|
|
27
|
-
"@yaebal/web": "0.0.
|
|
19
|
+
"@yaebal/contexts": "0.0.5",
|
|
20
|
+
"@yaebal/core": "0.0.8",
|
|
21
|
+
"@yaebal/keyboard": "0.1.1",
|
|
22
|
+
"@yaebal/callback-data": "0.0.3",
|
|
23
|
+
"@yaebal/session": "0.0.3",
|
|
24
|
+
"@yaebal/filters": "0.0.3",
|
|
25
|
+
"@yaebal/i18n": "0.0.4",
|
|
26
|
+
"@yaebal/fmt": "0.0.3",
|
|
27
|
+
"@yaebal/web": "0.0.3"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/node": "latest"
|
package/src/index.test.ts
CHANGED
|
@@ -57,5 +57,57 @@ test("typed routers expose the generated shortcuts + narrowed fields", () => {
|
|
|
57
57
|
void ctx.react; // command handlers get the message context
|
|
58
58
|
});
|
|
59
59
|
|
|
60
|
+
bot.on("guest_message", (ctx) => {
|
|
61
|
+
void ctx.answer; // GuestMessageContext shortcut — answerGuestQuery, not sendMessage
|
|
62
|
+
void ctx.guest_bot_caller_user; // who summoned the guest bot
|
|
63
|
+
});
|
|
64
|
+
|
|
60
65
|
assert.ok(bot);
|
|
61
66
|
});
|
|
67
|
+
|
|
68
|
+
test("guest_message answer() posts a real message via answerGuestQuery", async () => {
|
|
69
|
+
const guestUpdate = {
|
|
70
|
+
update_id: 1,
|
|
71
|
+
guest_message: {
|
|
72
|
+
message_id: 5,
|
|
73
|
+
date: 0,
|
|
74
|
+
chat: { id: 42, type: "private" },
|
|
75
|
+
guest_query_id: "gq1",
|
|
76
|
+
guest_bot_caller_user: { id: 7, is_bot: false, first_name: "u" },
|
|
77
|
+
},
|
|
78
|
+
} as never;
|
|
79
|
+
|
|
80
|
+
const calls: { method: string; params: unknown }[] = [];
|
|
81
|
+
const stubApi = {
|
|
82
|
+
call: (method: string, params: unknown) => {
|
|
83
|
+
calls.push({ method, params });
|
|
84
|
+
return Promise.resolve({ inline_message_id: "im1" });
|
|
85
|
+
},
|
|
86
|
+
} as never;
|
|
87
|
+
|
|
88
|
+
const ctx = richContext(stubApi, guestUpdate, "guest_message") as Context & {
|
|
89
|
+
answer: (result: unknown) => Promise<unknown>;
|
|
90
|
+
guest_bot_caller_user?: { first_name: string };
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
assert.equal(ctx.guest_bot_caller_user?.first_name, "u");
|
|
94
|
+
|
|
95
|
+
await ctx.answer({
|
|
96
|
+
type: "article",
|
|
97
|
+
id: "1",
|
|
98
|
+
title: "hi",
|
|
99
|
+
input_message_content: { message_text: "hi" },
|
|
100
|
+
});
|
|
101
|
+
assert.deepEqual(calls[0], {
|
|
102
|
+
method: "answerGuestQuery",
|
|
103
|
+
params: {
|
|
104
|
+
guest_query_id: "gq1",
|
|
105
|
+
result: {
|
|
106
|
+
type: "article",
|
|
107
|
+
id: "1",
|
|
108
|
+
title: "hi",
|
|
109
|
+
input_message_content: { message_text: "hi" },
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
});
|