Skip to content

Commit 927370a

Browse files
committed
refactor: improve test descriptions for clarity and consistency
1 parent e15a096 commit 927370a

4 files changed

Lines changed: 56 additions & 40 deletions

File tree

tests/7bit-encoding-decoding.test.ts

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,92 +3,95 @@ import { utils } from '../src/index';
33

44
const tests = [
55
{
6-
testName: 'Lowercase letters',
6+
name: 'should encode/decode lowercase letters',
77
text: 'abcdefghijklmnopqrstuvwxyz',
88
code: '61F1985C369FD169F59ADD76BFE171F99C5EB7DFF1793D'
99
},
1010
{
11-
name: 'Uppercase letters',
11+
name: 'should encode/decode uppercase letters',
1212
text: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
1313
code: '41E19058341E9149E592D9743EA151E9945AB55EB1592D'
1414
},
1515
{
16-
name: 'Digits',
16+
name: 'should encode/decode digits',
1717
text: '0123456789',
1818
code: 'B0986C46ABD96EB81C'
1919
},
2020
{
21-
name: '1 symbol',
21+
name: 'should encode/decode 1 symbol',
2222
text: 'a',
2323
code: '61'
2424
},
2525
{
26-
name: '2 symbols',
26+
name: 'should encode/decode 2 symbols',
2727
text: 'ab',
2828
code: '6131'
2929
},
3030
{
31-
name: '3 symbols',
31+
name: 'should encode/decode 3 symbols',
3232
text: 'abc',
3333
code: '61F118'
3434
},
3535
{
36-
name: '4 symbols',
36+
name: 'should encode/decode 4 symbols',
3737
text: 'abcd',
3838
code: '61F1980C'
3939
},
4040
{
41-
name: '5 symbols',
41+
name: 'should encode/decode 5 symbols',
4242
text: 'abcde',
4343
code: '61F1985C06'
4444
},
4545
{
46-
name: '6 symbols',
46+
name: 'should encode/decode 6 symbols',
4747
text: 'abcdef',
4848
code: '61F1985C3603'
4949
},
5050
{
51-
name: '7 symbols',
51+
name: 'should encode/decode 7 symbols',
5252
text: 'abcdefg',
5353
code: '61F1985C369F01'
5454
},
5555
{
56-
name: '8 symbols',
56+
name: 'should encode/decode 8 symbols',
5757
text: 'abcdefgh',
5858
code: '61F1985C369FD1'
5959
},
6060
{
61-
name: '9 symbols',
61+
name: 'should encode/decode 9 symbols',
6262
text: 'abcdefghi',
6363
code: '61F1985C369FD169'
6464
},
6565
{
66-
name: '"@" loss',
66+
name: 'should ignore "@" during encoding (7-bit loss)',
6767
text: 'abcdefg@',
6868
code: '61F1985C369F01',
6969
codeLen: 8
7070
},
7171
{
72-
name: 'Final "}" decoding error',
72+
name: 'should correctly decode final "}" character (escape test)',
7373
text: '{test}',
7474
code: '1B14BD3CA76F52'
7575
},
7676
{
77-
name: 'Text with alignment',
77+
name: 'should encode with 3-bit alignment',
7878
text: 'abc',
7979
code: '088BC7',
8080
alignBits: 3
8181
}
8282
];
8383

8484
describe('7bit encoding', () => {
85-
test.each(tests)('$testName', ({ text, alignBits, code: result, codeLen }) => {
86-
expect(utils.Helper.encode7Bit(text, alignBits)).toEqual({ result, length: codeLen ? codeLen : expect.any(Number) });
85+
test.each(tests)('$name', ({ text, alignBits, code: result, codeLen }) => {
86+
expect(utils.Helper.encode7Bit(text, alignBits)).toEqual({
87+
result,
88+
length: codeLen ?? expect.any(Number)
89+
});
8790
});
8891
});
8992

9093
describe('7bit decoding', () => {
91-
test.each(tests)('$testName', ({ code, codeLen, alignBits, text }) => {
94+
test.each(tests)('$name', ({ code, codeLen, alignBits, text }) => {
9295
expect(utils.Helper.decode7Bit(code, codeLen, alignBits)).toBe(text);
9396
});
9497
});

tests/appending.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { describe, expect, test } from 'vitest';
22
import { parse } from '../src/index';
33
import { expectDeliver, expectUserData } from './utils/checkPdu';
44

5-
describe('Appending PDU strings', () => {
6-
test('Simple concatenated message', () => {
5+
describe('PDU concatenation and message reassembly', () => {
6+
test('should correctly append simple concatenated messages (in order)', () => {
77
const pduStr1 = '07919730071111F1400B919746121611F10000811170021222230E06080412340201C8329BFD6601';
88
const pduStr2 = '07919730071111F1400B919746121611F10000811170021232230F06080412340202A0FB5BCE268700';
99

@@ -17,7 +17,7 @@ describe('Appending PDU strings', () => {
1717
expectUserData(parsedPdu1, { text: 'Hello, world!' });
1818
});
1919

20-
test('Concatenated message with reversed part order', () => {
20+
test('should correctly append concatenated messages with reversed part order', () => {
2121
const pduStr1 = '07919730071111F1400B919746121611F10000811170021232230F06080412350202A0FB5BCE268700';
2222
const pduStr2 = '07919730071111F1400B919746121611F10000811170021222230B06080412350201C8340B';
2323

@@ -50,7 +50,7 @@ describe('Appending PDU strings', () => {
5050
pduStr2: '07919730071111F1400B919746121611F10000811170021242230D06080412340303A076D8FD03',
5151
text: "What's man?"
5252
}
53-
])('Concatenated message unsorted parts ($parts)', ({ pduStr1, pduStr2, text }) => {
53+
])('should append unsorted message parts ($parts)', ({ pduStr1, pduStr2, text }) => {
5454
const parsedPdu1 = parse(pduStr1);
5555
expectDeliver(parsedPdu1);
5656

@@ -61,7 +61,7 @@ describe('Appending PDU strings', () => {
6161
expectUserData(parsedPdu1, { text });
6262
});
6363

64-
test('Duplicated parts of a concatenated message', () => {
64+
test('should not duplicate user data when appending the same part twice', () => {
6565
const pduStr = '07919730071111F1400B919746121611F10000811170021222230E06080412340201C8329BFD6601';
6666

6767
const parsedPdu = parse(pduStr);
@@ -73,7 +73,7 @@ describe('Appending PDU strings', () => {
7373
expectUserData(parsedPdu, { text: 'Hello,' });
7474
});
7575

76-
test('Parts of different messages', () => {
76+
test('should throw error when appending parts from different messages', () => {
7777
const pduStr1 = '07919730071111F1400B919746121611F10000811170021222230E06080412340201C8329BFD6601';
7878
const pduStr2 = '07919730071111F1400B919746121611F10000811170021232230F06080412350202A0FB5BCE268700';
7979

@@ -86,7 +86,7 @@ describe('Appending PDU strings', () => {
8686
expect(() => parsedPdu1.data.append(parsedPdu2)).toThrowError('Part from different message!');
8787
});
8888

89-
test('Parts with a collided identifiers', () => {
89+
test('should throw error when appending parts with collided identifiers', () => {
9090
const pduStr1 = '07919730071111F1400B919746121611F10000811170021222230E06080412340201C8329BFD6601';
9191
const pduStr2 = '07919730071111F1400B919746121611F10000811170021232230C06080412340302A03A9C05';
9292

@@ -99,7 +99,7 @@ describe('Appending PDU strings', () => {
9999
expect(() => parsedPdu1.data.append(parsedPdu2)).toThrowError('Part from different message!');
100100
});
101101

102-
test('Concat message with 8bit ref.', () => {
102+
test('should correctly append concatenated message using 8-bit reference', () => {
103103
const pduStr1 = '07919730071111F1400B919746121611F10000100161916223230D0500032E020190E175DD1D06';
104104
const pduStr2 = '07919730071111F1400B919746121611F10000100161916233230E0500032E020240ED303D4C0F03';
105105

tests/parsing.test.ts

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import {
1212
expectUserDataHeader
1313
} from './utils/checkPdu';
1414

15-
describe('Parser', () => {
16-
test('Simple Deliver message', () => {
15+
describe('SMS PDU parser', () => {
16+
test('should parse a simple Deliver PDU correctly', () => {
1717
const pduStr = '07919730071111F1000B919746121611F10000811170021222230DC8329BFD6681EE6F399B1C02';
1818
const parsedPdu = parse(pduStr);
1919

@@ -24,7 +24,7 @@ describe('Parser', () => {
2424
expectUserData(parsedPdu, { text: 'Hello, world!' });
2525
});
2626

27-
test('Negative SCTS Time Zone offset', () => {
27+
test('should parse Deliver PDU with negative time-zone offset', () => {
2828
const pduStr = '07919730071111F1000B919746121611F100008111700212222B0DC8329BFD6681EE6F399B1C02';
2929
const parsedPdu = parse(pduStr);
3030

@@ -34,24 +34,26 @@ describe('Parser', () => {
3434

3535
test.each([
3636
{
37+
name: '+',
3738
pduStr: '001100039199F90000FF1A4937BD2C7787E9E9B73BCC06C1D16F7719E4AEB7C56539',
3839
address: '+999',
3940
text: 'International phone number'
4041
},
4142
{
43+
name: '00',
4244
pduStr: '001100039199F90000FF1A4937BD2C7787E9E9B73BCC06C1D16F7719E4AEB7C56539',
4345
address: '00999',
4446
text: 'International phone number'
4547
}
46-
])('International phone number ($address)', ({ pduStr, address, text }) => {
48+
])('should parse Deliver/Submit PDU with international "$name" prefix', ({ pduStr, address, text }) => {
4749
const parsedPdu = parse(pduStr);
4850

4951
expectDeliverOrSubmit(parsedPdu);
5052
expectAddress(parsedPdu, address);
5153
expectUserData(parsedPdu, { text });
5254
});
5355

54-
test('Non-International phone number', () => {
56+
test('should parse a non-international Submit PDU correctly', () => {
5557
const pduStr = '000100038199F9000005C8329BFD06';
5658
const parsedPdu = parse(pduStr);
5759

@@ -60,7 +62,7 @@ describe('Parser', () => {
6062
expectUserData(parsedPdu, { text: 'Hello' });
6163
});
6264

63-
test('Alphanumeric OA', () => {
65+
test('should parse Deliver PDU with alphanumeric originator address', () => {
6466
const pduStr = '07911326060032F0000DD0D432DBFC96D30100001121313121114012D7327BFC6E9741F437885A669BDF723A';
6567
const parsedPdu = parse(pduStr);
6668

@@ -71,7 +73,7 @@ describe('Parser', () => {
7173
expectUserData(parsedPdu, { text: 'Welcome to Telfort' });
7274
});
7375

74-
test('Flash SMS', () => {
76+
test('should parse Flash SMS Deliver PDU correctly', () => {
7577
const pduStr = '07919730071111F1000B919746121611F10010811170021222231054747A0E4ACF416190991D9EA343';
7678
const parsedPdu = parse(pduStr);
7779

@@ -92,14 +94,14 @@ describe('Parser', () => {
9294
text: '{test}',
9395
size: 8
9496
}
95-
])('Extended 7 bit symbols ("$text")', ({ pduStr, text, size }) => {
97+
])('should parse extended 7-bit symbol "$text"', ({ pduStr, text, size }) => {
9698
const parsedPdu = parse(pduStr);
9799

98100
expectDeliverOrSubmit(parsedPdu);
99101
expectUserData(parsedPdu, { text, size });
100102
});
101103

102-
test('UCS2 encoded', () => {
104+
test('should parse UCS2 encoded Deliver PDU correctly', () => {
103105
const pduStr = '07919730071111F1000B919746121611F100088111800212222318041F04400438043204350442002C0020043C043804400021';
104106
const parsedPdu = parse(pduStr);
105107

@@ -109,7 +111,7 @@ describe('Parser', () => {
109111
expectUserData(parsedPdu, { text: '\u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0438\u0440!', size: 24 });
110112
});
111113

112-
test('Test small letters at input', () => {
114+
test('should parse lowercase-hex PDU string correctly', () => {
113115
const pduStr = '07919730071111f1400b919746121611f100008111701222822310050a03000410846f3619f476b3f3';
114116
const parsedPdu = parse(pduStr);
115117

@@ -119,14 +121,16 @@ describe('Parser', () => {
119121

120122
test.each([
121123
{
124+
name: 'bold, italic, underline, strikethrough',
122125
pduStr: '07919730071111F1400B919746121611F100008111701222322342140A030004100A030606200A030E09400A031C0D80C2379BCC0225E961767ACC0255DDE4B29C9D76974161371934A5CBD3EB321D2D7FD7CF6817',
123126
text: 'Bold, Italic, Underline and Strikethrough.'
124127
},
125128
{
129+
name: 'bold only',
126130
pduStr: '07919730071111F1400B919746121611F100008111701222822310050A03000410846F3619F476B3F3',
127131
text: 'Bold only'
128132
}
129-
])('EMS formatted text (#%#)', ({ pduStr, text }) => {
133+
])('should parse EMS formatted text ($name)', ({ pduStr, text }) => {
130134
const parsedPdu = parse(pduStr);
131135

132136
expectDeliverOrSubmit(parsedPdu);
@@ -135,20 +139,22 @@ describe('Parser', () => {
135139

136140
test.each([
137141
{
142+
name: 'segment 1 of 2',
138143
pduStr: '07919730071111F1400B919746121611F10000100161916223230D0500032E020190E175DD1D06',
139144
pointer: 0x2e,
140145
segments: 2,
141146
current: 1,
142147
text: 'Hakuna'
143148
},
144149
{
150+
name: 'segment 2 of 2',
145151
pduStr: '07919730071111F1400B919746121611F10000100161916233230E0500032E020240ED303D4C0F03',
146152
pointer: 0x2e,
147153
segments: 2,
148154
current: 2,
149155
text: ' matata'
150156
}
151-
])('Concatenated messages with 8bit ref. (#%#)', ({ pduStr, pointer, segments, current, text }) => {
157+
])('should parse concatenated 8-bit ref, $name', ({ pduStr, pointer, segments, current, text }) => {
152158
const parsedPdu = parse(pduStr);
153159

154160
expectDeliverOrSubmit(parsedPdu);
@@ -158,55 +164,62 @@ describe('Parser', () => {
158164

159165
test.each([
160166
{
167+
name: '(0x1234), segment 1 of 2',
161168
pduStr: '07919730071111F1400B919746121611F10000811170021222230E06080412340201C8329BFD6601',
162169
pointer: 0x1234,
163170
segments: 2,
164171
current: 1,
165172
text: 'Hello,'
166173
},
167174
{
175+
name: '(0x1234), segment 2 of 2',
168176
pduStr: '07919730071111F1400B919746121611F10000811170021232230F06080412340202A0FB5BCE268700',
169177
pointer: 0x1234,
170178
segments: 2,
171179
current: 2,
172180
text: ' world!'
173181
},
174182
{
183+
name: '(0x1235), segment 1 of 2',
175184
pduStr: '07919730071111F1400B919746121611F10000811170021222230B06080412350201C8340B',
176185
pointer: 0x1235,
177186
segments: 2,
178187
current: 1,
179188
text: 'Hi,'
180189
},
181190
{
191+
name: '(0x1235), segment 2 of 2',
182192
pduStr: '07919730071111F1400B919746121611F10000811170021232230F06080412350202A0FB5BCE268700',
183193
pointer: 0x1235,
184194
segments: 2,
185195
current: 2,
186196
text: ' world!'
187197
},
188198
{
199+
name: '(0x1234), segment 1 of 3',
189200
pduStr: '07919730071111F1400B919746121611F10000811170021222230E060804123403015774987E9A03',
190201
pointer: 0x1234,
191202
segments: 3,
192203
current: 1,
193204
text: "What's"
194205
},
195206
{
207+
name: '(0x1234), segment 2 of 3',
196208
pduStr: '07919730071111F1400B919746121611F10000811170021232230C06080412340302A03A9C05',
197209
pointer: 0x1234,
198210
segments: 3,
199211
current: 2,
200212
text: ' up,'
201213
},
202214
{
215+
name: '(0x1234), segment 3 of 3',
203216
pduStr: '07919730071111F1400B919746121611F10000811170021242230D06080412340303A076D8FD03',
204217
pointer: 0x1234,
205218
segments: 3,
206219
current: 3,
207220
text: ' man?'
208221
}
209-
])('Concatenated messages with 16bit ref. (#%#)', ({ pduStr, pointer, segments, current, text }) => {
222+
])('should parse concatenated 16-bit $name', ({ pduStr, pointer, segments, current, text }) => {
210223
const parsedPdu = parse(pduStr);
211224

212225
expectDeliverOrSubmit(parsedPdu);

tests/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"extends": "../tsconfig.json",
3-
"include": ["./"]
3+
"include": ["./**/*.ts"]
44
}

0 commit comments

Comments
 (0)