Skip to content

Commit c1d745c

Browse files
committed
Clean up slop for format entity test
1 parent 409c59e commit c1d745c

20 files changed

+429
-426
lines changed

test/format.basic.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { assertEquals, assertInstanceOf, describe, it } from "./deps.test.ts";
1+
import { assertEquals, describe, it } from "./deps.test.ts";
22
import { FormattedString } from "../src/format.ts";
33
import type { MessageEntity } from "../src/deps.deno.ts";
44

test/format.blockquote.test.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { assertEquals, assertInstanceOf, describe, it } from "./deps.test.ts";
2+
import { FormattedString } from "../src/format.ts";
3+
4+
describe("FormattedString - blockquote formatting methods", () => {
5+
it("Static blockquote method", () => {
6+
const text = "quoted text";
7+
8+
const blockquoteFormatted = FormattedString.blockquote(text);
9+
10+
assertInstanceOf(blockquoteFormatted, FormattedString);
11+
assertEquals(blockquoteFormatted.rawText, text);
12+
13+
// Test entity properties
14+
assertEquals(blockquoteFormatted.rawEntities.length, 1);
15+
assertEquals(blockquoteFormatted.rawEntities[0]?.type, "blockquote");
16+
assertEquals(blockquoteFormatted.rawEntities[0]?.offset, 0);
17+
assertEquals(blockquoteFormatted.rawEntities[0]?.length, text.length);
18+
});
19+
it("Instance blockquote method", () => {
20+
const initialText = "As they say: ";
21+
const quoteText = "To be or not to be";
22+
const initialFormatted = new FormattedString(initialText, []);
23+
24+
const quoteResult = initialFormatted.blockquote(quoteText);
25+
26+
assertInstanceOf(quoteResult, FormattedString);
27+
assertEquals(quoteResult.rawText, `${initialText}${quoteText}`);
28+
29+
// Test entity properties
30+
assertEquals(quoteResult.rawEntities.length, 1);
31+
assertEquals(quoteResult.rawEntities[0]?.type, "blockquote");
32+
assertEquals(quoteResult.rawEntities[0]?.offset, initialText.length);
33+
assertEquals(quoteResult.rawEntities[0]?.length, quoteText.length);
34+
});
35+
});

test/format.bold.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { assertEquals, assertInstanceOf, describe, it } from "./deps.test.ts";
22
import { FormattedString } from "../src/format.ts";
33

4-
describe("FormattedString - Static formatting methods", () => {
4+
describe("FormattedString - bold formatting methods", () => {
55
it("Static bold methods", () => {
66
const text = "bold text";
77

@@ -24,13 +24,10 @@ describe("FormattedString - Static formatting methods", () => {
2424
assertEquals(bFormatted.rawEntities[0]?.offset, 0);
2525
assertEquals(bFormatted.rawEntities[0]?.length, text.length);
2626
});
27-
});
28-
29-
describe("FormattedString", () => {
3027
it("Instance bold methods", () => {
3128
const initialText = "Hello ";
3229
const boldText = "World";
33-
const initialFormatted = new FormattedString(initialText, []);
30+
const initialFormatted = new FormattedString(initialText);
3431

3532
const boldResult = initialFormatted.bold(boldText);
3633
const bResult = initialFormatted.b(boldText);

test/format.code.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { assertEquals, assertInstanceOf, describe, it } from "./deps.test.ts";
22
import { FormattedString } from "../src/format.ts";
33

4-
describe("FormattedString - Static formatting methods", () => {
4+
describe("FormattedString - code formatting methods", () => {
55
it("Static code method", () => {
66
const text = "code text";
77

@@ -16,13 +16,10 @@ describe("FormattedString - Static formatting methods", () => {
1616
assertEquals(codeFormatted.rawEntities[0]?.offset, 0);
1717
assertEquals(codeFormatted.rawEntities[0]?.length, text.length);
1818
});
19-
});
20-
21-
describe("FormattedString", () => {
2219
it("Instance code method", () => {
2320
const initialText = "Run ";
2421
const codeText = "npm install";
25-
const initialFormatted = new FormattedString(initialText, []);
22+
const initialFormatted = new FormattedString(initialText);
2623

2724
const codeResult = initialFormatted.code(codeText);
2825

test/format.customEmoji.test.ts

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { assertEquals, assertInstanceOf, describe, it } from "./deps.test.ts";
2+
import { FormattedString } from "../src/format.ts";
3+
4+
describe("FormattedString - customEmoji formatting methods", () => {
5+
it("Static customEmoji method", () => {
6+
const placeholder = "😀";
7+
const emojiId = "5123456789123456789";
8+
9+
const emojiFormatted = FormattedString.customEmoji(placeholder, emojiId);
10+
11+
assertInstanceOf(emojiFormatted, FormattedString);
12+
assertEquals(emojiFormatted.rawText, placeholder);
13+
14+
// Test entity properties
15+
assertEquals(emojiFormatted.rawEntities.length, 1);
16+
assertEquals(emojiFormatted.rawEntities[0]?.type, "text_link");
17+
assertEquals(emojiFormatted.rawEntities[0]?.offset, 0);
18+
assertEquals(emojiFormatted.rawEntities[0]?.length, placeholder.length);
19+
assertEquals(
20+
//@ts-expect-error quick test
21+
emojiFormatted.rawEntities[0]?.url,
22+
`tg://emoji?id=5123456789123456789`,
23+
);
24+
});
25+
it("Instance customEmoji method", () => {
26+
const initialText = "Check this out ";
27+
const placeholder = "😀";
28+
const emojiId = "5123456789123456789";
29+
const initialFormatted = new FormattedString(initialText);
30+
31+
const emojiResult = initialFormatted.customEmoji(placeholder, emojiId);
32+
33+
assertInstanceOf(emojiResult, FormattedString);
34+
assertEquals(emojiResult.rawText, `${initialText}${placeholder}`);
35+
36+
// Test entity properties
37+
assertEquals(emojiResult.rawEntities.length, 1);
38+
assertEquals(emojiResult.rawEntities[0]?.type, "text_link");
39+
assertEquals(emojiResult.rawEntities[0]?.offset, initialText.length);
40+
assertEquals(emojiResult.rawEntities[0]?.length, placeholder.length);
41+
assertEquals(
42+
//@ts-expect-error quick test
43+
emojiResult.rawEntities[0]?.url,
44+
`tg://emoji?id=5123456789123456789`,
45+
);
46+
});
47+
});
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { assertEquals, assertInstanceOf, describe, it } from "./deps.test.ts";
2+
import { FormattedString } from "../src/format.ts";
3+
4+
describe("FormattedString - expandableBlockquote formatting methods", () => {
5+
it("Static expandableBlockquote method", () => {
6+
const text = "expandable quoted text";
7+
8+
const expandableBlockquoteFormatted = FormattedString.expandableBlockquote(
9+
text,
10+
);
11+
12+
assertInstanceOf(expandableBlockquoteFormatted, FormattedString);
13+
assertEquals(expandableBlockquoteFormatted.rawText, text);
14+
15+
// Test entity properties
16+
assertEquals(expandableBlockquoteFormatted.rawEntities.length, 1);
17+
assertEquals(
18+
expandableBlockquoteFormatted.rawEntities[0]?.type,
19+
"expandable_blockquote",
20+
);
21+
assertEquals(expandableBlockquoteFormatted.rawEntities[0]?.offset, 0);
22+
assertEquals(
23+
expandableBlockquoteFormatted.rawEntities[0]?.length,
24+
text.length,
25+
);
26+
});
27+
it("Instance expandableBlockquote method", () => {
28+
const initialText = "Long quote: ";
29+
const quoteText = "This is a very long quote that should be expandable";
30+
const initialFormatted = new FormattedString(initialText);
31+
32+
const quoteResult = initialFormatted.expandableBlockquote(quoteText);
33+
34+
assertInstanceOf(quoteResult, FormattedString);
35+
assertEquals(quoteResult.rawText, `${initialText}${quoteText}`);
36+
37+
// Test entity properties
38+
assertEquals(quoteResult.rawEntities.length, 1);
39+
assertEquals(quoteResult.rawEntities[0]?.type, "expandable_blockquote");
40+
assertEquals(quoteResult.rawEntities[0]?.offset, initialText.length);
41+
assertEquals(quoteResult.rawEntities[0]?.length, quoteText.length);
42+
});
43+
});

test/format.italic.test.ts

Lines changed: 45 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,51 @@
11
import { assertEquals, assertInstanceOf, describe, it } from "./deps.test.ts";
22
import { FormattedString } from "../src/format.ts";
33

4-
describe("FormattedString - Italic formatting", () => {
5-
describe("Static formatting methods", () => {
6-
it("Static italic methods", () => {
7-
const text = "italic text";
8-
9-
const italicFormatted = FormattedString.italic(text);
10-
const iFormatted = FormattedString.i(text);
11-
12-
assertInstanceOf(italicFormatted, FormattedString);
13-
assertInstanceOf(iFormatted, FormattedString);
14-
assertEquals(italicFormatted.rawText, text);
15-
assertEquals(iFormatted.rawText, text);
16-
17-
// Test entity properties
18-
assertEquals(italicFormatted.rawEntities.length, 1);
19-
assertEquals(italicFormatted.rawEntities[0]?.type, "italic");
20-
assertEquals(italicFormatted.rawEntities[0]?.offset, 0);
21-
assertEquals(italicFormatted.rawEntities[0]?.length, text.length);
22-
23-
assertEquals(iFormatted.rawEntities.length, 1);
24-
assertEquals(iFormatted.rawEntities[0]?.type, "italic");
25-
assertEquals(iFormatted.rawEntities[0]?.offset, 0);
26-
assertEquals(iFormatted.rawEntities[0]?.length, text.length);
27-
});
4+
describe("FormattedString - italic formatting methods", () => {
5+
it("Static italic methods", () => {
6+
const text = "italic text";
7+
8+
const italicFormatted = FormattedString.italic(text);
9+
const iFormatted = FormattedString.i(text);
10+
11+
assertInstanceOf(italicFormatted, FormattedString);
12+
assertInstanceOf(iFormatted, FormattedString);
13+
assertEquals(italicFormatted.rawText, text);
14+
assertEquals(iFormatted.rawText, text);
15+
16+
// Test entity properties
17+
assertEquals(italicFormatted.rawEntities.length, 1);
18+
assertEquals(italicFormatted.rawEntities[0]?.type, "italic");
19+
assertEquals(italicFormatted.rawEntities[0]?.offset, 0);
20+
assertEquals(italicFormatted.rawEntities[0]?.length, text.length);
21+
22+
assertEquals(iFormatted.rawEntities.length, 1);
23+
assertEquals(iFormatted.rawEntities[0]?.type, "italic");
24+
assertEquals(iFormatted.rawEntities[0]?.offset, 0);
25+
assertEquals(iFormatted.rawEntities[0]?.length, text.length);
2826
});
29-
30-
describe("Instance formatting methods", () => {
31-
it("Instance italic methods", () => {
32-
const initialText = "Hello ";
33-
const italicText = "World";
34-
const initialFormatted = new FormattedString(initialText, []);
35-
36-
const italicResult = initialFormatted.italic(italicText);
37-
const iResult = initialFormatted.i(italicText);
38-
39-
assertInstanceOf(italicResult, FormattedString);
40-
assertInstanceOf(iResult, FormattedString);
41-
assertEquals(italicResult.rawText, `${initialText}${italicText}`);
42-
assertEquals(iResult.rawText, `${initialText}${italicText}`);
43-
44-
// Test entity properties
45-
assertEquals(italicResult.rawEntities.length, 1);
46-
assertEquals(italicResult.rawEntities[0]?.type, "italic");
47-
assertEquals(italicResult.rawEntities[0]?.offset, initialText.length);
48-
assertEquals(italicResult.rawEntities[0]?.length, italicText.length);
49-
50-
assertEquals(iResult.rawEntities.length, 1);
51-
assertEquals(iResult.rawEntities[0]?.type, "italic");
52-
assertEquals(iResult.rawEntities[0]?.offset, initialText.length);
53-
assertEquals(iResult.rawEntities[0]?.length, italicText.length);
54-
});
27+
it("Instance italic methods", () => {
28+
const initialText = "Hello ";
29+
const italicText = "World";
30+
const initialFormatted = new FormattedString(initialText);
31+
32+
const italicResult = initialFormatted.italic(italicText);
33+
const iResult = initialFormatted.i(italicText);
34+
35+
assertInstanceOf(italicResult, FormattedString);
36+
assertInstanceOf(iResult, FormattedString);
37+
assertEquals(italicResult.rawText, `${initialText}${italicText}`);
38+
assertEquals(iResult.rawText, `${initialText}${italicText}`);
39+
40+
// Test entity properties
41+
assertEquals(italicResult.rawEntities.length, 1);
42+
assertEquals(italicResult.rawEntities[0]?.type, "italic");
43+
assertEquals(italicResult.rawEntities[0]?.offset, initialText.length);
44+
assertEquals(italicResult.rawEntities[0]?.length, italicText.length);
45+
46+
assertEquals(iResult.rawEntities.length, 1);
47+
assertEquals(iResult.rawEntities[0]?.type, "italic");
48+
assertEquals(iResult.rawEntities[0]?.offset, initialText.length);
49+
assertEquals(iResult.rawEntities[0]?.length, italicText.length);
5550
});
5651
});

test/format.link.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { assertEquals, assertInstanceOf, describe, it } from "./deps.test.ts";
22
import { FormattedString } from "../src/format.ts";
33

4-
describe("FormattedString - Static link methods", () => {
4+
describe("FormattedString - link formatting methods", () => {
55
it("Static link methods", () => {
66
const text = "link text";
77
const url = "https://example.com";
@@ -29,14 +29,11 @@ describe("FormattedString - Static link methods", () => {
2929
//@ts-expect-error quick test
3030
assertEquals(aFormatted.rawEntities[0]?.url, url);
3131
});
32-
});
33-
34-
describe("FormattedString - Instance link methods", () => {
3532
it("Instance link methods", () => {
3633
const initialText = "Visit ";
3734
const linkText = "our website";
3835
const url = "https://example.com";
39-
const initialFormatted = new FormattedString(initialText, []);
36+
const initialFormatted = new FormattedString(initialText);
4037

4138
const linkResult = initialFormatted.link(linkText, url);
4239
const aResult = initialFormatted.a(linkText, url);

test/format.linkMessage.test.ts

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import { assertEquals, assertInstanceOf, describe, it } from "./deps.test.ts";
2+
import { FormattedString } from "../src/format.ts";
3+
4+
describe("FormattedString - linkMessage formatting methods", () => {
5+
it("Static linkMessage method for valid supergroup", () => {
6+
const text = "message link";
7+
const chatId = -1001234567890;
8+
const messageId = 123;
9+
10+
const messageLinkFormatted = FormattedString.linkMessage(
11+
text,
12+
chatId,
13+
messageId,
14+
);
15+
16+
assertInstanceOf(messageLinkFormatted, FormattedString);
17+
assertEquals(messageLinkFormatted.rawText, text);
18+
19+
// Test entity properties
20+
assertEquals(messageLinkFormatted.rawEntities.length, 1);
21+
assertEquals(messageLinkFormatted.rawEntities[0]?.type, "text_link");
22+
assertEquals(messageLinkFormatted.rawEntities[0]?.offset, 0);
23+
assertEquals(messageLinkFormatted.rawEntities[0]?.length, text.length);
24+
assertEquals(
25+
//@ts-expect-error quick test
26+
messageLinkFormatted.rawEntities[0]?.url,
27+
`https://t.me/c/1234567890/123`,
28+
);
29+
});
30+
it("Static linkMessage method for invalid chat (positive ID)", () => {
31+
const text = "message link";
32+
const chatId = 1234567890; // Positive chat ID (private chat)
33+
const messageId = 123;
34+
35+
const messageLinkFormatted = FormattedString.linkMessage(
36+
text,
37+
chatId,
38+
messageId,
39+
);
40+
41+
assertInstanceOf(messageLinkFormatted, FormattedString);
42+
assertEquals(messageLinkFormatted.rawText, text);
43+
// Should not create a link for private chats
44+
assertEquals(messageLinkFormatted.rawEntities.length, 0);
45+
});
46+
it("Instance linkMessage method", () => {
47+
const initialText = "See ";
48+
const linkText = "this message";
49+
const chatId = -1001234567890;
50+
const messageId = 123;
51+
const initialFormatted = new FormattedString(initialText);
52+
53+
const linkResult = initialFormatted.linkMessage(
54+
linkText,
55+
chatId,
56+
messageId,
57+
);
58+
59+
assertInstanceOf(linkResult, FormattedString);
60+
assertEquals(linkResult.rawText, `${initialText}${linkText}`);
61+
62+
// Test entity properties
63+
assertEquals(linkResult.rawEntities.length, 1);
64+
assertEquals(linkResult.rawEntities[0]?.type, "text_link");
65+
assertEquals(linkResult.rawEntities[0]?.offset, initialText.length);
66+
assertEquals(linkResult.rawEntities[0]?.length, linkText.length);
67+
assertEquals(
68+
//@ts-expect-error quick test
69+
linkResult.rawEntities[0]?.url,
70+
`https://t.me/c/1234567890/123`,
71+
);
72+
});
73+
});

0 commit comments

Comments
 (0)