Skip to content

Commit f2448fd

Browse files
committed
Fix splitMatchesMessage bug
1 parent 863e4be commit f2448fd

File tree

3 files changed

+111
-1
lines changed

3 files changed

+111
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
export const mockData = `<a href="https://www.hltv.org/matches/2358348/imperial-vs-pain-esl-challenger-melbourne-2022">Imperial vs paiN</a>
2+
Rating: ☆☆
3+
<i>04 Sep 02:15 @ ESL Challenger Melbourne 2022</i>
4+
5+
<a href="https://www.hltv.org/matches/2358468/falcons-vs-1win-cct-central-europe-series-1">Falcons vs 1WIN</a>
6+
Rating: –
7+
<i>04 Sep 05:00 @ CCT Central Europe Series 1</i>
8+
9+
<a href="https://www.hltv.org/matches/2358469/mibr-vs-ec-kyiv-cct-central-europe-series-1">MIBR vs EC Kyiv</a>
10+
Rating: –
11+
<i>04 Sep 08:00 @ CCT Central Europe Series 1</i>
12+
13+
<a href="https://www.hltv.org/matches/2358556/into-the-breach-vs-blvkhvnd-ukic-beyond-summer-invitational-2022">Into the Breach vs BLVKHVND</a>
14+
Rating: –
15+
<i>04 Sep 09:00 @ UKIC Beyond Summer Invitational 2022</i>
16+
17+
<a href="https://www.hltv.org/matches/2358515/eclot-vs-titans-tipsport-prague-2022">ECLOT vs TITANS</a>
18+
Rating: –
19+
<i>04 Sep 09:30 @ Tipsport Prague 2022</i>
20+
21+
<a href="https://www.hltv.org/matches/2358533/vpprodigy-vs-wannafly-cyberpark-cup-2022">VP.Prodigy vs wannafly</a>
22+
Rating: –
23+
<i>04 Sep 10:55 @ Cyberpark Cup 2022</i>
24+
25+
<a href="https://www.hltv.org/matches/2358508/strive-in-chaos-vs-partizan-res-season-3">Strive in chaos vs Partizan</a>
26+
Rating: –
27+
<i>04 Sep 11:00 @ RES Season 3</i>
28+
29+
<a href="https://www.hltv.org/matches/2358514/sinners-vs-cryptova-tipsport-prague-2022">SINNERS vs Cryptova</a>
30+
Rating: –
31+
<i>04 Sep 11:00 @ Tipsport Prague 2022</i>
32+
33+
<a href="https://www.hltv.org/matches/2358470/cct-central-europe-series-1-grand-final-cct-central-europe-series-1">TBD vs TBD</a>
34+
Rating: –
35+
<i>04 Sep 11:30 @ CCT Central Europe Series 1 - Grand Final</i>
36+
37+
<a href="https://www.hltv.org/matches/2358557/1pin-vs-eko-ukic-beyond-summer-invitational-2022">1PIN vs EKO</a>
38+
Rating: –
39+
<i>04 Sep 12:00 @ UKIC Beyond Summer Invitational 2022</i>
40+
41+
<a href="https://www.hltv.org/matches/2358546/eternal-fire-vs-brosskiez-esa-supremes-fall-2022">Eternal Fire vs Brosskiez</a>
42+
Rating: –
43+
<i>04 Sep 13:00 @ ESA Supremes Fall 2022</i>
44+
45+
<a href="https://www.hltv.org/matches/2358538/x-vs-0to100-res-season-3">X vs 0to100</a>
46+
Rating: –
47+
<i>04 Sep 14:00 @ RES Season 3</i>
48+
49+
<a href="https://www.hltv.org/matches/2358539/masonic-vs-saw-flow-fireleague-2022-europe-closed-qualifier">MASONIC vs SAW</a>
50+
Rating: –
51+
<i>04 Sep 14:10 @ Flow FiReLEAGUE 2022 Europe Closed Qualifier</i>
52+
53+
<a href="https://www.hltv.org/matches/2358548/sharks-vs-daotsu-cbcs-masters-festival-2022">Sharks vs Daotsu</a>
54+
Rating: –
55+
<i>04 Sep 14:20 @ CBCS Masters Festival 2022</i>
56+
57+
<a href="https://www.hltv.org/matches/2357705/natus-vincere-vs-ninjas-in-pyjamas-esl-pro-league-season-16">Natus Vincere vs Ninjas in Pyjamas</a>
58+
Rating: ☆☆☆
59+
<i>04 Sep 14:30 @ ESL Pro League Season 16</i>
60+
61+
<a href="https://www.hltv.org/matches/2357706/vitality-vs-spirit-esl-pro-league-season-16">Vitality vs Spirit</a>
62+
Rating: ☆☆
63+
<i>04 Sep 14:30 @ ESL Pro League Season 16</i>
64+
65+
<a href="https://www.hltv.org/matches/2357707/fnatic-vs-endpoint-esl-pro-league-season-16">fnatic vs Endpoint</a>
66+
Rating: ☆
67+
<i>04 Sep 14:30 @ ESL Pro League Season 16</i>
68+
69+
<a href="https://www.hltv.org/matches/2358578/mad-kings-vs-supremacy-gosu-masters-2022">Mad Kings vs Supremacy</a>
70+
Rating: –
71+
<i>04 Sep 17:00 @ Gosu Masters 2022</i>
72+
73+
<a href="https://www.hltv.org/matches/2358549/b4-vs-oddik-cbcs-masters-festival-2022">B4 vs ODDIK</a>
74+
Rating: –
75+
<i>04 Sep 17:50 @ CBCS Masters Festival 2022</i>
76+
77+
<a href="https://www.hltv.org/matches/2358178/petes-hookah-lounge-vs-x13-iem-road-to-rio-2022-north-america-open-qualifier-3">Pete&#39;s Hookah Lounge vs X13</a>
78+
Rating: –
79+
<i>04 Sep 19:00 @ IEM Road to Rio 2022 North America Open Qualifier 3</i>
80+
81+
<a href="https://www.hltv.org/matches/2358179/infinity-vs-timbermen-iem-road-to-rio-2022-north-america-open-qualifier-3">Infinity vs timbermen</a>
82+
Rating: –
83+
<i>04 Sep 19:00 @ IEM Road to Rio 2022 North America Open Qualifier 3</i>
84+
85+
<a href="https://www.hltv.org/matches/2358180/unjustified-vs-teamone-iem-road-to-rio-2022-north-america-open-qualifier-3">Unjustified vs TeamOne</a>
86+
Rating: –
87+
<i>04 Sep 19:00 @ IEM Road to Rio 2022 North America Open Qualifier 3</i>
88+
89+
<a href="https://www.hltv.org/matches/2358181/davenport-university-vs-bhop-iem-road-to-rio-2022-north-america-open-qualifier-3">Davenport University vs BHOP</a>
90+
Rating: –
91+
<i>04 Sep 19:00 @ IEM Road to Rio 2022 North America Open Qualifier 3</i>
92+
93+
<a href="https://www.hltv.org/matches/2358182/iem-road-to-rio-2022-north-america-open-qualifier-3-semi-final-1-iem-road-to-rio-2022-north-america-open-qualifier-3">TBD vs TBD</a>
94+
Rating: –
95+
<i>04 Sep 20:00 @ IEM Road to Rio 2022 North America Open Qualifier 3 - Semi-final #1</i>
96+
97+
<a href="https://www.hltv.org/matches/2358183/iem-road-to-rio-2022-north-america-open-qualifier-3-semi-final-2-iem-road-to-rio-2022-north-america-open-qualifier-3">TBD vs TBD</a>
98+
Rating: –
99+
<i>04 Sep 20:00 @ IEM Road to Rio 2022 North America Open Qualifier 3 - Semi-final #2</i>`

src/notifier/__tests__/splitLongTelegramMessage.spec.js

+11
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const {
44
FeaturedMatchesMessage,
55
} = require('../messages')
66
const { splitLongTelegramMessage } = require('../splitLongTelegramMessage')
7+
const { mockData } = require('./splitLongTelegramMessage.mock')
78

89
const LONG_MESSAGE = `ABC vs XYZ\n\n`.repeat(333) + 'abcdef\n\n123456'
910
const UNSPLITABLE_MESSAGE = '0123456789'.repeat(10001)
@@ -35,6 +36,16 @@ test('splits featured matches message', () => {
3536
expect(result[1]).toBe('abcdef\n\n123456')
3637
})
3738

39+
test('splits real featured matches message', () => {
40+
const message = makeTelegramMessage(
41+
new FeaturedMatchesMessage({ text: mockData }),
42+
)
43+
44+
const result = splitLongTelegramMessage(message)
45+
46+
expect(result.length).toBe(2)
47+
})
48+
3849
function makeTelegramMessage(smartMessage) {
3950
const [{ messages }] = makeUsersTelegramMessages([
4051
{

src/notifier/splitLongTelegramMessage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function splitMatchesMessage(text) {
2929
}
3030

3131
const substring = text.substring(0, MAX_TELEGRAM_MESSAGE_LENGTH).trim()
32-
const index = substring.search(/\n\n[^\n]+$/)
32+
const index = substring.lastIndexOf('\n\n')
3333

3434
if (-1 === index) {
3535
throw new Error('Unsplitable message: ' + text)

0 commit comments

Comments
 (0)