@tomgiee/tsdp 1.0.1 → 1.1.0
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/README.md +0 -39
- package/dist/src/builder/media-builder.d.ts.map +1 -1
- package/dist/src/builder/media-builder.js +5 -12
- package/dist/src/builder/session-builder.d.ts.map +1 -1
- package/dist/src/builder/session-builder.js +4 -14
- package/dist/src/index.d.ts +6 -10
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +37 -49
- package/dist/src/parser/core.d.ts +366 -0
- package/dist/src/parser/core.d.ts.map +1 -0
- package/dist/src/parser/core.js +802 -0
- package/dist/src/parser/field-parser.d.ts +51 -8
- package/dist/src/parser/field-parser.d.ts.map +1 -1
- package/dist/src/parser/field-parser.js +91 -23
- package/dist/src/parser/media-parser.d.ts +1 -1
- package/dist/src/parser/media-parser.d.ts.map +1 -1
- package/dist/src/parser/media-parser.js +9 -15
- package/dist/src/parser/session-parser.d.ts.map +1 -1
- package/dist/src/parser/session-parser.js +16 -17
- package/dist/src/parser/time-parser.d.ts +1 -1
- package/dist/src/parser/time-parser.d.ts.map +1 -1
- package/dist/src/parser/time-parser.js +8 -8
- package/dist/src/serializer/fields.d.ts +167 -0
- package/dist/src/serializer/fields.d.ts.map +1 -0
- package/dist/src/serializer/fields.js +320 -0
- package/dist/src/serializer/media-serializer.js +6 -7
- package/dist/src/serializer/session-serializer.js +13 -15
- package/dist/src/types/attributes.d.ts.map +1 -1
- package/dist/src/types/fields.d.ts +5 -5
- package/dist/src/types/fields.d.ts.map +1 -1
- package/dist/src/types/fields.js +4 -4
- package/dist/src/types/media.d.ts +9 -10
- package/dist/src/types/media.d.ts.map +1 -1
- package/dist/src/types/media.js +2 -4
- package/dist/src/types/network.d.ts +15 -56
- package/dist/src/types/network.d.ts.map +1 -1
- package/dist/src/types/network.js +3 -34
- package/dist/src/types/primitives.d.ts +3 -147
- package/dist/src/types/primitives.d.ts.map +1 -1
- package/dist/src/types/primitives.js +2 -171
- package/dist/src/types/session.d.ts +14 -14
- package/dist/src/types/session.d.ts.map +1 -1
- package/dist/src/types/time.d.ts +4 -4
- package/dist/src/types/time.d.ts.map +1 -1
- package/dist/src/types/time.js +8 -6
- package/dist/src/utils/address-parser.d.ts +4 -4
- package/dist/src/utils/address-parser.d.ts.map +1 -1
- package/dist/src/utils/address-parser.js +9 -16
- package/dist/src/validator/validator.d.ts +94 -0
- package/dist/src/validator/validator.d.ts.map +1 -0
- package/dist/src/validator/validator.js +573 -0
- package/dist/tests/unit/parser/attribute-parser.test.js +106 -107
- package/dist/tests/unit/parser/field-parser.test.js +66 -66
- package/dist/tests/unit/parser/media-parser.test.js +38 -38
- package/dist/tests/unit/parser/primitive-parser.test.js +89 -90
- package/dist/tests/unit/parser/scanner.test.js +32 -32
- package/dist/tests/unit/parser/time-parser.test.js +22 -22
- package/dist/tests/unit/serializer/attribute-serializer.test.js +22 -22
- package/dist/tests/unit/serializer/field-serializer.test.js +57 -57
- package/dist/tests/unit/serializer/media-serializer.test.js +5 -6
- package/dist/tests/unit/serializer/session-serializer.test.js +24 -24
- package/dist/tests/unit/serializer/time-serializer.test.js +16 -16
- package/dist/tests/unit/types/network.test.js +21 -56
- package/dist/tests/unit/types/primitives.test.js +0 -39
- package/dist/tests/unit/validator/media-validator.test.js +34 -35
- package/dist/tests/unit/validator/semantic-validator.test.js +36 -37
- package/dist/tests/unit/validator/session-validator.test.js +54 -54
- package/package.json +1 -1
|
@@ -3,157 +3,157 @@
|
|
|
3
3
|
* Tests for field-serializer.ts
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const
|
|
6
|
+
const fields_1 = require("../../../src/serializer/fields");
|
|
7
|
+
const fields_2 = require("../../../src/types/fields");
|
|
8
8
|
const network_1 = require("../../../src/types/network");
|
|
9
9
|
describe('field-serializer', () => {
|
|
10
10
|
describe('serializeVersionField', () => {
|
|
11
11
|
it('should serialize version 0', () => {
|
|
12
|
-
expect((0,
|
|
12
|
+
expect((0, fields_1.serializeVersionField)(0)).toBe('v=0');
|
|
13
13
|
});
|
|
14
14
|
});
|
|
15
15
|
describe('serializeOriginField', () => {
|
|
16
16
|
it('should serialize origin with IPv4', () => {
|
|
17
|
-
const origin = (0,
|
|
18
|
-
expect((0,
|
|
17
|
+
const origin = (0, fields_2.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5');
|
|
18
|
+
expect((0, fields_1.serializeOriginField)(origin)).toBe('o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5');
|
|
19
19
|
});
|
|
20
20
|
it('should serialize origin with hyphen username', () => {
|
|
21
|
-
const origin = (0,
|
|
22
|
-
expect((0,
|
|
21
|
+
const origin = (0, fields_2.createOrigin)('-', '1234567890', '1234567890', 'IN', 'IP4', '192.168.1.100');
|
|
22
|
+
expect((0, fields_1.serializeOriginField)(origin)).toBe('o=- 1234567890 1234567890 IN IP4 192.168.1.100');
|
|
23
23
|
});
|
|
24
24
|
it('should serialize origin with IPv6', () => {
|
|
25
|
-
const origin = (0,
|
|
26
|
-
expect((0,
|
|
25
|
+
const origin = (0, fields_2.createOrigin)('user', '123', '456', 'IN', 'IP6', '2001:db8::1');
|
|
26
|
+
expect((0, fields_1.serializeOriginField)(origin)).toBe('o=user 123 456 IN IP6 2001:db8::1');
|
|
27
27
|
});
|
|
28
28
|
it('should serialize origin with FQDN', () => {
|
|
29
|
-
const origin = (0,
|
|
30
|
-
expect((0,
|
|
29
|
+
const origin = (0, fields_2.createOrigin)('alice', '100', '200', 'IN', 'IP4', 'host.example.com');
|
|
30
|
+
expect((0, fields_1.serializeOriginField)(origin)).toBe('o=alice 100 200 IN IP4 host.example.com');
|
|
31
31
|
});
|
|
32
32
|
});
|
|
33
33
|
describe('serializeSessionNameField', () => {
|
|
34
34
|
it('should serialize session name', () => {
|
|
35
|
-
expect((0,
|
|
35
|
+
expect((0, fields_1.serializeSessionNameField)('SDP Seminar')).toBe('s=SDP Seminar');
|
|
36
36
|
});
|
|
37
37
|
it('should serialize single space session name', () => {
|
|
38
|
-
expect((0,
|
|
38
|
+
expect((0, fields_1.serializeSessionNameField)(' ')).toBe('s= ');
|
|
39
39
|
});
|
|
40
40
|
it('should serialize session name with special characters', () => {
|
|
41
|
-
expect((0,
|
|
41
|
+
expect((0, fields_1.serializeSessionNameField)('Test Session: Audio & Video!')).toBe('s=Test Session: Audio & Video!');
|
|
42
42
|
});
|
|
43
43
|
});
|
|
44
44
|
describe('serializeInformationField', () => {
|
|
45
45
|
it('should serialize information', () => {
|
|
46
|
-
expect((0,
|
|
46
|
+
expect((0, fields_1.serializeInformationField)('Session information')).toBe('i=Session information');
|
|
47
47
|
});
|
|
48
48
|
it('should serialize empty information', () => {
|
|
49
|
-
expect((0,
|
|
49
|
+
expect((0, fields_1.serializeInformationField)('')).toBe('i=');
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
52
|
describe('serializeUriField', () => {
|
|
53
53
|
it('should serialize HTTP URI', () => {
|
|
54
|
-
expect((0,
|
|
54
|
+
expect((0, fields_1.serializeUriField)('http://example.com/sdp')).toBe('u=http://example.com/sdp');
|
|
55
55
|
});
|
|
56
56
|
it('should serialize HTTPS URI', () => {
|
|
57
|
-
expect((0,
|
|
57
|
+
expect((0, fields_1.serializeUriField)('https://example.com/session')).toBe('u=https://example.com/session');
|
|
58
58
|
});
|
|
59
59
|
});
|
|
60
60
|
describe('serializeEmailField', () => {
|
|
61
61
|
it('should serialize email', () => {
|
|
62
|
-
expect((0,
|
|
62
|
+
expect((0, fields_1.serializeEmailField)('j.doe@example.com')).toBe('e=j.doe@example.com');
|
|
63
63
|
});
|
|
64
64
|
it('should serialize email with display name', () => {
|
|
65
|
-
expect((0,
|
|
65
|
+
expect((0, fields_1.serializeEmailField)('j.doe@example.com (Jane Doe)')).toBe('e=j.doe@example.com (Jane Doe)');
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
68
|
describe('serializePhoneField', () => {
|
|
69
69
|
it('should serialize phone', () => {
|
|
70
|
-
expect((0,
|
|
70
|
+
expect((0, fields_1.serializePhoneField)('+1 617 555-6011')).toBe('p=+1 617 555-6011');
|
|
71
71
|
});
|
|
72
72
|
it('should serialize phone with display name', () => {
|
|
73
|
-
expect((0,
|
|
73
|
+
expect((0, fields_1.serializePhoneField)('+1 617 555-6011 (Jane Doe)')).toBe('p=+1 617 555-6011 (Jane Doe)');
|
|
74
74
|
});
|
|
75
75
|
});
|
|
76
76
|
describe('serializeConnectionField', () => {
|
|
77
77
|
it('should serialize unicast IPv4 connection', () => {
|
|
78
|
-
const connection = (0,
|
|
79
|
-
expect((0,
|
|
78
|
+
const connection = (0, fields_2.createConnection)('IN', 'IP4', '192.168.1.100');
|
|
79
|
+
expect((0, fields_1.serializeConnectionField)(connection)).toBe('c=IN IP4 192.168.1.100');
|
|
80
80
|
});
|
|
81
81
|
it('should serialize unicast IPv6 connection', () => {
|
|
82
|
-
const connection = (0,
|
|
83
|
-
expect((0,
|
|
82
|
+
const connection = (0, fields_2.createConnection)('IN', 'IP6', '2001:db8::1');
|
|
83
|
+
expect((0, fields_1.serializeConnectionField)(connection)).toBe('c=IN IP6 2001:db8::1');
|
|
84
84
|
});
|
|
85
85
|
it('should serialize unicast FQDN connection', () => {
|
|
86
|
-
const connection = (0,
|
|
87
|
-
expect((0,
|
|
86
|
+
const connection = (0, fields_2.createConnection)('IN', 'IP4', 'host.example.com');
|
|
87
|
+
expect((0, fields_1.serializeConnectionField)(connection)).toBe('c=IN IP4 host.example.com');
|
|
88
88
|
});
|
|
89
89
|
it('should serialize IPv4 multicast with TTL', () => {
|
|
90
|
-
const connection = (0,
|
|
91
|
-
expect((0,
|
|
90
|
+
const connection = (0, fields_2.createConnection)('IN', 'IP4', (0, network_1.createIP4MulticastAddress)('224.2.17.12', 127));
|
|
91
|
+
expect((0, fields_1.serializeConnectionField)(connection)).toBe('c=IN IP4 224.2.17.12/127');
|
|
92
92
|
});
|
|
93
93
|
it('should serialize IPv4 multicast with TTL and numAddresses', () => {
|
|
94
|
-
const connection = (0,
|
|
95
|
-
expect((0,
|
|
94
|
+
const connection = (0, fields_2.createConnection)('IN', 'IP4', (0, network_1.createIP4MulticastAddress)('224.2.1.1', 127, 3));
|
|
95
|
+
expect((0, fields_1.serializeConnectionField)(connection)).toBe('c=IN IP4 224.2.1.1/127/3');
|
|
96
96
|
});
|
|
97
97
|
it('should serialize IPv6 multicast', () => {
|
|
98
|
-
const connection = (0,
|
|
99
|
-
expect((0,
|
|
98
|
+
const connection = (0, fields_2.createConnection)('IN', 'IP6', (0, network_1.createIP6MulticastAddress)('ff15::101'));
|
|
99
|
+
expect((0, fields_1.serializeConnectionField)(connection)).toBe('c=IN IP6 ff15::101');
|
|
100
100
|
});
|
|
101
101
|
it('should serialize IPv6 multicast with numAddresses', () => {
|
|
102
|
-
const connection = (0,
|
|
103
|
-
expect((0,
|
|
102
|
+
const connection = (0, fields_2.createConnection)('IN', 'IP6', (0, network_1.createIP6MulticastAddress)('ff15::101', 2));
|
|
103
|
+
expect((0, fields_1.serializeConnectionField)(connection)).toBe('c=IN IP6 ff15::101/2');
|
|
104
104
|
});
|
|
105
105
|
it('should serialize FQDN multicast with TTL', () => {
|
|
106
|
-
const connection = (0,
|
|
107
|
-
expect((0,
|
|
106
|
+
const connection = (0, fields_2.createConnection)('IN', 'IP4', (0, network_1.createFQDNMulticastAddress)('mcast.example.com', 127));
|
|
107
|
+
expect((0, fields_1.serializeConnectionField)(connection)).toBe('c=IN IP4 mcast.example.com/127');
|
|
108
108
|
});
|
|
109
109
|
it('should serialize FQDN multicast with TTL and numAddresses', () => {
|
|
110
|
-
const connection = (0,
|
|
111
|
-
expect((0,
|
|
110
|
+
const connection = (0, fields_2.createConnection)('IN', 'IP4', (0, network_1.createFQDNMulticastAddress)('mcast.example.com', 127, 2));
|
|
111
|
+
expect((0, fields_1.serializeConnectionField)(connection)).toBe('c=IN IP4 mcast.example.com/127/2');
|
|
112
112
|
});
|
|
113
113
|
});
|
|
114
114
|
describe('serializeConnectionAddress', () => {
|
|
115
115
|
it('should serialize unicast address', () => {
|
|
116
|
-
expect((0,
|
|
116
|
+
expect((0, fields_1.serializeConnectionAddress)('192.168.1.1')).toBe('192.168.1.1');
|
|
117
117
|
});
|
|
118
118
|
it('should serialize IPv4 multicast address', () => {
|
|
119
|
-
const addr = (0, network_1.createIP4MulticastAddress)(
|
|
120
|
-
expect((0,
|
|
119
|
+
const addr = (0, network_1.createIP4MulticastAddress)('224.0.0.1', 64);
|
|
120
|
+
expect((0, fields_1.serializeConnectionAddress)(addr)).toBe('224.0.0.1/64');
|
|
121
121
|
});
|
|
122
122
|
it('should serialize IPv6 multicast address', () => {
|
|
123
|
-
const addr = (0, network_1.createIP6MulticastAddress)(
|
|
124
|
-
expect((0,
|
|
123
|
+
const addr = (0, network_1.createIP6MulticastAddress)('ff02::1');
|
|
124
|
+
expect((0, fields_1.serializeConnectionAddress)(addr)).toBe('ff02::1');
|
|
125
125
|
});
|
|
126
126
|
});
|
|
127
127
|
describe('serializeBandwidthField', () => {
|
|
128
128
|
it('should serialize CT bandwidth', () => {
|
|
129
|
-
const bw = (0,
|
|
130
|
-
expect((0,
|
|
129
|
+
const bw = (0, fields_2.createBandwidth)('CT', 128);
|
|
130
|
+
expect((0, fields_1.serializeBandwidthField)(bw)).toBe('b=CT:128');
|
|
131
131
|
});
|
|
132
132
|
it('should serialize AS bandwidth', () => {
|
|
133
|
-
const bw = (0,
|
|
134
|
-
expect((0,
|
|
133
|
+
const bw = (0, fields_2.createBandwidth)('AS', 64);
|
|
134
|
+
expect((0, fields_1.serializeBandwidthField)(bw)).toBe('b=AS:64');
|
|
135
135
|
});
|
|
136
136
|
it('should serialize zero bandwidth', () => {
|
|
137
|
-
const bw = (0,
|
|
138
|
-
expect((0,
|
|
137
|
+
const bw = (0, fields_2.createBandwidth)('AS', 0);
|
|
138
|
+
expect((0, fields_1.serializeBandwidthField)(bw)).toBe('b=AS:0');
|
|
139
139
|
});
|
|
140
140
|
it('should serialize extension bandwidth type', () => {
|
|
141
|
-
const bw = (0,
|
|
142
|
-
expect((0,
|
|
141
|
+
const bw = (0, fields_2.createBandwidth)('X-YZ', 1000);
|
|
142
|
+
expect((0, fields_1.serializeBandwidthField)(bw)).toBe('b=X-YZ:1000');
|
|
143
143
|
});
|
|
144
144
|
});
|
|
145
145
|
describe('serializeKeyField', () => {
|
|
146
146
|
it('should serialize clear key', () => {
|
|
147
|
-
expect((0,
|
|
147
|
+
expect((0, fields_1.serializeKeyField)('clear:mypassword')).toBe('k=clear:mypassword');
|
|
148
148
|
});
|
|
149
149
|
it('should serialize base64 key', () => {
|
|
150
|
-
expect((0,
|
|
150
|
+
expect((0, fields_1.serializeKeyField)('base64:dGVzdA==')).toBe('k=base64:dGVzdA==');
|
|
151
151
|
});
|
|
152
152
|
it('should serialize URI key', () => {
|
|
153
|
-
expect((0,
|
|
153
|
+
expect((0, fields_1.serializeKeyField)('uri:https://example.com/key')).toBe('k=uri:https://example.com/key');
|
|
154
154
|
});
|
|
155
155
|
it('should serialize prompt key', () => {
|
|
156
|
-
expect((0,
|
|
156
|
+
expect((0, fields_1.serializeKeyField)('prompt')).toBe('k=prompt');
|
|
157
157
|
});
|
|
158
158
|
});
|
|
159
159
|
});
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const media_serializer_1 = require("../../../src/serializer/media-serializer");
|
|
7
7
|
const media_1 = require("../../../src/types/media");
|
|
8
8
|
const fields_1 = require("../../../src/types/fields");
|
|
9
|
-
const network_1 = require("../../../src/types/network");
|
|
10
9
|
const attributes_1 = require("../../../src/types/attributes");
|
|
11
10
|
describe('media-serializer', () => {
|
|
12
11
|
describe('serializeMediaField', () => {
|
|
@@ -64,7 +63,7 @@ describe('media-serializer', () => {
|
|
|
64
63
|
it('should serialize media description with connection', () => {
|
|
65
64
|
const md = (0, media_1.createMediaDescription)((0, media_1.createMedia)('audio', (0, media_1.createSimplePort)(49170), 'RTP/AVP', ['0']), {
|
|
66
65
|
connections: [
|
|
67
|
-
(0, fields_1.createConnection)('IN', 'IP4',
|
|
66
|
+
(0, fields_1.createConnection)('IN', 'IP4', '192.168.1.100'),
|
|
68
67
|
],
|
|
69
68
|
});
|
|
70
69
|
const lines = (0, media_serializer_1.serializeMediaDescription)(md);
|
|
@@ -75,8 +74,8 @@ describe('media-serializer', () => {
|
|
|
75
74
|
it('should serialize media description with multiple connections', () => {
|
|
76
75
|
const md = (0, media_1.createMediaDescription)((0, media_1.createMedia)('audio', (0, media_1.createSimplePort)(49170), 'RTP/AVP', ['0']), {
|
|
77
76
|
connections: [
|
|
78
|
-
(0, fields_1.createConnection)('IN', 'IP4',
|
|
79
|
-
(0, fields_1.createConnection)('IN', 'IP4',
|
|
77
|
+
(0, fields_1.createConnection)('IN', 'IP4', '192.168.1.100'),
|
|
78
|
+
(0, fields_1.createConnection)('IN', 'IP4', '192.168.1.101'),
|
|
80
79
|
],
|
|
81
80
|
});
|
|
82
81
|
const lines = (0, media_serializer_1.serializeMediaDescription)(md);
|
|
@@ -115,7 +114,7 @@ describe('media-serializer', () => {
|
|
|
115
114
|
it('should serialize complete media description with all fields', () => {
|
|
116
115
|
const md = (0, media_1.createMediaDescription)((0, media_1.createMedia)('audio', (0, media_1.createSimplePort)(49170), 'RTP/AVP', ['0']), {
|
|
117
116
|
information: 'Voice',
|
|
118
|
-
connections: [(0, fields_1.createConnection)('IN', 'IP4',
|
|
117
|
+
connections: [(0, fields_1.createConnection)('IN', 'IP4', '192.168.1.100')],
|
|
119
118
|
bandwidths: [(0, fields_1.createBandwidth)('AS', 64)],
|
|
120
119
|
key: 'clear:key',
|
|
121
120
|
attributes: [(0, attributes_1.createRtpmap)(0, 'PCMU', 8000), (0, attributes_1.createSendrecv)()],
|
|
@@ -133,7 +132,7 @@ describe('media-serializer', () => {
|
|
|
133
132
|
it('should serialize media description with correct field ordering', () => {
|
|
134
133
|
const md = (0, media_1.createMediaDescription)((0, media_1.createMedia)('video', (0, media_1.createSimplePort)(51372), 'RTP/AVP', ['99']), {
|
|
135
134
|
information: 'Video Stream',
|
|
136
|
-
connections: [(0, fields_1.createConnection)('IN', 'IP4',
|
|
135
|
+
connections: [(0, fields_1.createConnection)('IN', 'IP4', '192.168.1.100')],
|
|
137
136
|
bandwidths: [(0, fields_1.createBandwidth)('AS', 384)],
|
|
138
137
|
key: 'prompt',
|
|
139
138
|
attributes: [
|
|
@@ -16,7 +16,7 @@ describe('session-serializer', () => {
|
|
|
16
16
|
it('should serialize minimal valid SDP', () => {
|
|
17
17
|
const session = (0, session_1.createSessionDescription)({
|
|
18
18
|
version: 0,
|
|
19
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
19
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
20
20
|
sessionName: 'SDP Seminar',
|
|
21
21
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
22
22
|
});
|
|
@@ -29,7 +29,7 @@ describe('session-serializer', () => {
|
|
|
29
29
|
it('should serialize SDP with session information', () => {
|
|
30
30
|
const session = (0, session_1.createSessionDescription)({
|
|
31
31
|
version: 0,
|
|
32
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
32
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
33
33
|
sessionName: 'SDP Seminar',
|
|
34
34
|
sessionInformation: 'A Seminar on the session description protocol',
|
|
35
35
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
@@ -40,7 +40,7 @@ describe('session-serializer', () => {
|
|
|
40
40
|
it('should serialize SDP with URI', () => {
|
|
41
41
|
const session = (0, session_1.createSessionDescription)({
|
|
42
42
|
version: 0,
|
|
43
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
43
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
44
44
|
sessionName: 'SDP Seminar',
|
|
45
45
|
uri: 'http://www.example.com/seminars/sdp.pdf',
|
|
46
46
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
@@ -51,7 +51,7 @@ describe('session-serializer', () => {
|
|
|
51
51
|
it('should serialize SDP with emails and phones', () => {
|
|
52
52
|
const session = (0, session_1.createSessionDescription)({
|
|
53
53
|
version: 0,
|
|
54
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
54
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
55
55
|
sessionName: 'SDP Seminar',
|
|
56
56
|
emails: ['j.doe@example.com (Jane Doe)', 'jane@example.com'],
|
|
57
57
|
phones: ['+1 617 555-6011'],
|
|
@@ -65,9 +65,9 @@ describe('session-serializer', () => {
|
|
|
65
65
|
it('should serialize SDP with connection', () => {
|
|
66
66
|
const session = (0, session_1.createSessionDescription)({
|
|
67
67
|
version: 0,
|
|
68
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
68
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
69
69
|
sessionName: 'SDP Seminar',
|
|
70
|
-
connection: (0, fields_1.createConnection)('IN', 'IP4', (0, network_1.createIP4MulticastAddress)(
|
|
70
|
+
connection: (0, fields_1.createConnection)('IN', 'IP4', (0, network_1.createIP4MulticastAddress)('224.2.17.12', 127)),
|
|
71
71
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
72
72
|
});
|
|
73
73
|
const sdp = (0, session_serializer_1.serializeSessionDescription)(session);
|
|
@@ -76,7 +76,7 @@ describe('session-serializer', () => {
|
|
|
76
76
|
it('should serialize SDP with bandwidth', () => {
|
|
77
77
|
const session = (0, session_1.createSessionDescription)({
|
|
78
78
|
version: 0,
|
|
79
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
79
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
80
80
|
sessionName: 'SDP Seminar',
|
|
81
81
|
bandwidths: [(0, fields_1.createBandwidth)('AS', 128)],
|
|
82
82
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
@@ -87,7 +87,7 @@ describe('session-serializer', () => {
|
|
|
87
87
|
it('should serialize SDP with multiple time descriptions', () => {
|
|
88
88
|
const session = (0, session_1.createSessionDescription)({
|
|
89
89
|
version: 0,
|
|
90
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
90
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
91
91
|
sessionName: 'SDP Seminar',
|
|
92
92
|
timeDescriptions: [
|
|
93
93
|
(0, time_1.createTimeDescription)((0, time_1.createTiming)(2873397496, 2873404696)),
|
|
@@ -101,7 +101,7 @@ describe('session-serializer', () => {
|
|
|
101
101
|
it('should serialize SDP with repeat times', () => {
|
|
102
102
|
const session = (0, session_1.createSessionDescription)({
|
|
103
103
|
version: 0,
|
|
104
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
104
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
105
105
|
sessionName: 'SDP Seminar',
|
|
106
106
|
timeDescriptions: [
|
|
107
107
|
(0, time_1.createTimeDescription)((0, time_1.createTiming)(2873397496, 2873404696), [
|
|
@@ -115,7 +115,7 @@ describe('session-serializer', () => {
|
|
|
115
115
|
it('should serialize SDP with timezone adjustments', () => {
|
|
116
116
|
const session = (0, session_1.createSessionDescription)({
|
|
117
117
|
version: 0,
|
|
118
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
118
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
119
119
|
sessionName: 'SDP Seminar',
|
|
120
120
|
timeDescriptions: [
|
|
121
121
|
(0, time_1.createTimeDescription)((0, time_1.createTiming)(2873397496, 2873404696), [], (0, time_1.createTimezone)([
|
|
@@ -130,7 +130,7 @@ describe('session-serializer', () => {
|
|
|
130
130
|
it('should serialize SDP with session-level key', () => {
|
|
131
131
|
const session = (0, session_1.createSessionDescription)({
|
|
132
132
|
version: 0,
|
|
133
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
133
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
134
134
|
sessionName: 'SDP Seminar',
|
|
135
135
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
136
136
|
key: 'clear:mypassword',
|
|
@@ -141,7 +141,7 @@ describe('session-serializer', () => {
|
|
|
141
141
|
it('should serialize SDP with session-level attributes', () => {
|
|
142
142
|
const session = (0, session_1.createSessionDescription)({
|
|
143
143
|
version: 0,
|
|
144
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
144
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
145
145
|
sessionName: 'SDP Seminar',
|
|
146
146
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
147
147
|
attributes: [(0, attributes_1.createRecvonly)(), (0, attributes_1.createValueAttribute)('type', 'broadcast')],
|
|
@@ -153,9 +153,9 @@ describe('session-serializer', () => {
|
|
|
153
153
|
it('should serialize SDP with single media description', () => {
|
|
154
154
|
const session = (0, session_1.createSessionDescription)({
|
|
155
155
|
version: 0,
|
|
156
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
156
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
157
157
|
sessionName: 'SDP Seminar',
|
|
158
|
-
connection: (0, fields_1.createConnection)('IN', 'IP4', (0, network_1.createIP4MulticastAddress)(
|
|
158
|
+
connection: (0, fields_1.createConnection)('IN', 'IP4', (0, network_1.createIP4MulticastAddress)('224.2.17.12', 127)),
|
|
159
159
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
160
160
|
mediaDescriptions: [
|
|
161
161
|
(0, media_1.createMediaDescription)((0, media_1.createMedia)('audio', (0, media_1.createSimplePort)(49170), 'RTP/AVP', ['0'])),
|
|
@@ -167,9 +167,9 @@ describe('session-serializer', () => {
|
|
|
167
167
|
it('should serialize SDP with multiple media descriptions', () => {
|
|
168
168
|
const session = (0, session_1.createSessionDescription)({
|
|
169
169
|
version: 0,
|
|
170
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
170
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
171
171
|
sessionName: 'SDP Seminar',
|
|
172
|
-
connection: (0, fields_1.createConnection)('IN', 'IP4', (0, network_1.createIP4MulticastAddress)(
|
|
172
|
+
connection: (0, fields_1.createConnection)('IN', 'IP4', (0, network_1.createIP4MulticastAddress)('224.2.17.12', 127)),
|
|
173
173
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
174
174
|
mediaDescriptions: [
|
|
175
175
|
(0, media_1.createMediaDescription)((0, media_1.createMedia)('audio', (0, media_1.createSimplePort)(49170), 'RTP/AVP', ['0'])),
|
|
@@ -183,13 +183,13 @@ describe('session-serializer', () => {
|
|
|
183
183
|
it('should serialize SDP with media-level fields', () => {
|
|
184
184
|
const session = (0, session_1.createSessionDescription)({
|
|
185
185
|
version: 0,
|
|
186
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
186
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
187
187
|
sessionName: 'SDP Seminar',
|
|
188
188
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
189
189
|
mediaDescriptions: [
|
|
190
190
|
(0, media_1.createMediaDescription)((0, media_1.createMedia)('audio', (0, media_1.createSimplePort)(49170), 'RTP/AVP', ['0', '8']), {
|
|
191
191
|
information: 'Audio Stream',
|
|
192
|
-
connections: [(0, fields_1.createConnection)('IN', 'IP4',
|
|
192
|
+
connections: [(0, fields_1.createConnection)('IN', 'IP4', '192.168.1.100')],
|
|
193
193
|
bandwidths: [(0, fields_1.createBandwidth)('AS', 64)],
|
|
194
194
|
attributes: [
|
|
195
195
|
(0, attributes_1.createRtpmap)(0, 'PCMU', 8000),
|
|
@@ -213,13 +213,13 @@ describe('session-serializer', () => {
|
|
|
213
213
|
it('should serialize complete SDP with all fields', () => {
|
|
214
214
|
const session = (0, session_1.createSessionDescription)({
|
|
215
215
|
version: 0,
|
|
216
|
-
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4',
|
|
216
|
+
origin: (0, fields_1.createOrigin)('jdoe', '2890844526', '2890842807', 'IN', 'IP4', '10.47.16.5'),
|
|
217
217
|
sessionName: 'SDP Seminar',
|
|
218
218
|
sessionInformation: 'A Seminar on the session description protocol',
|
|
219
219
|
uri: 'http://www.example.com/seminars/sdp.pdf',
|
|
220
220
|
emails: ['j.doe@example.com (Jane Doe)'],
|
|
221
221
|
phones: ['+1 617 555-6011'],
|
|
222
|
-
connection: (0, fields_1.createConnection)('IN', 'IP4', (0, network_1.createIP4MulticastAddress)(
|
|
222
|
+
connection: (0, fields_1.createConnection)('IN', 'IP4', (0, network_1.createIP4MulticastAddress)('224.2.17.12', 127)),
|
|
223
223
|
bandwidths: [(0, fields_1.createBandwidth)('AS', 128)],
|
|
224
224
|
timeDescriptions: [
|
|
225
225
|
(0, time_1.createTimeDescription)((0, time_1.createTiming)(2873397496, 2873404696), [
|
|
@@ -234,7 +234,7 @@ describe('session-serializer', () => {
|
|
|
234
234
|
mediaDescriptions: [
|
|
235
235
|
(0, media_1.createMediaDescription)((0, media_1.createMedia)('audio', (0, media_1.createSimplePort)(49170), 'RTP/AVP', ['0']), {
|
|
236
236
|
information: 'Audio Stream',
|
|
237
|
-
connections: [(0, fields_1.createConnection)('IN', 'IP4',
|
|
237
|
+
connections: [(0, fields_1.createConnection)('IN', 'IP4', '192.168.1.100')],
|
|
238
238
|
bandwidths: [(0, fields_1.createBandwidth)('AS', 64)],
|
|
239
239
|
key: 'clear:mediakey',
|
|
240
240
|
attributes: [(0, attributes_1.createRtpmap)(0, 'PCMU', 8000), (0, attributes_1.createPtime)(20)],
|
|
@@ -271,7 +271,7 @@ describe('session-serializer', () => {
|
|
|
271
271
|
it('should use CRLF line endings', () => {
|
|
272
272
|
const session = (0, session_1.createSessionDescription)({
|
|
273
273
|
version: 0,
|
|
274
|
-
origin: (0, fields_1.createOrigin)('jdoe', '123', '456', 'IN', 'IP4',
|
|
274
|
+
origin: (0, fields_1.createOrigin)('jdoe', '123', '456', 'IN', 'IP4', '10.0.0.1'),
|
|
275
275
|
sessionName: 'Test',
|
|
276
276
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
277
277
|
});
|
|
@@ -286,12 +286,12 @@ describe('session-serializer', () => {
|
|
|
286
286
|
it('should serialize VoIP call SDP', () => {
|
|
287
287
|
const session = (0, session_1.createSessionDescription)({
|
|
288
288
|
version: 0,
|
|
289
|
-
origin: (0, fields_1.createOrigin)('-', '1234567890', '1234567890', 'IN', 'IP4',
|
|
289
|
+
origin: (0, fields_1.createOrigin)('-', '1234567890', '1234567890', 'IN', 'IP4', '192.168.1.100'),
|
|
290
290
|
sessionName: 'VoIP Call',
|
|
291
291
|
timeDescriptions: [(0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0))],
|
|
292
292
|
mediaDescriptions: [
|
|
293
293
|
(0, media_1.createMediaDescription)((0, media_1.createMedia)('audio', (0, media_1.createSimplePort)(10000), 'RTP/AVP', ['0', '8', '101']), {
|
|
294
|
-
connections: [(0, fields_1.createConnection)('IN', 'IP4',
|
|
294
|
+
connections: [(0, fields_1.createConnection)('IN', 'IP4', '192.168.1.100')],
|
|
295
295
|
attributes: [
|
|
296
296
|
(0, attributes_1.createRtpmap)(0, 'PCMU', 8000),
|
|
297
297
|
(0, attributes_1.createRtpmap)(8, 'PCMA', 8000),
|
|
@@ -3,36 +3,36 @@
|
|
|
3
3
|
* Tests for time-serializer.ts
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
6
|
+
const fields_1 = require("../../../src/serializer/fields");
|
|
7
7
|
const time_1 = require("../../../src/types/time");
|
|
8
8
|
const primitives_1 = require("../../../src/types/primitives");
|
|
9
9
|
describe('time-serializer', () => {
|
|
10
10
|
describe('serializeTimingField', () => {
|
|
11
11
|
it('should serialize permanent timing (0 to 0)', () => {
|
|
12
12
|
const timing = (0, time_1.createTiming)(0, 0);
|
|
13
|
-
expect((0,
|
|
13
|
+
expect((0, fields_1.serializeTimingField)(timing)).toBe('t=0 0');
|
|
14
14
|
});
|
|
15
15
|
it('should serialize bounded timing', () => {
|
|
16
16
|
const timing = (0, time_1.createTiming)(2873397496, 2873404696);
|
|
17
|
-
expect((0,
|
|
17
|
+
expect((0, fields_1.serializeTimingField)(timing)).toBe('t=2873397496 2873404696');
|
|
18
18
|
});
|
|
19
19
|
it('should serialize open-ended session', () => {
|
|
20
20
|
const timing = (0, time_1.createTiming)(3724394400, 0);
|
|
21
|
-
expect((0,
|
|
21
|
+
expect((0, fields_1.serializeTimingField)(timing)).toBe('t=3724394400 0');
|
|
22
22
|
});
|
|
23
23
|
});
|
|
24
24
|
describe('serializeRepeatField', () => {
|
|
25
25
|
it('should serialize repeat with days', () => {
|
|
26
26
|
const repeat = (0, time_1.createRepeat)((0, primitives_1.createTypedTime)(7, 'days'), (0, primitives_1.createTypedTime)(1, 'hours'), [(0, primitives_1.createTypedTime)(0, 'seconds')]);
|
|
27
|
-
expect((0,
|
|
27
|
+
expect((0, fields_1.serializeRepeatField)(repeat)).toBe('r=7d 1h 0');
|
|
28
28
|
});
|
|
29
29
|
it('should serialize repeat with multiple offsets', () => {
|
|
30
30
|
const repeat = (0, time_1.createRepeat)((0, primitives_1.createTypedTime)(7, 'days'), (0, primitives_1.createTypedTime)(1, 'hours'), [(0, primitives_1.createTypedTime)(0, 'seconds'), (0, primitives_1.createTypedTime)(25, 'hours')]);
|
|
31
|
-
expect((0,
|
|
31
|
+
expect((0, fields_1.serializeRepeatField)(repeat)).toBe('r=7d 1h 0 25h');
|
|
32
32
|
});
|
|
33
33
|
it('should serialize repeat with seconds (no suffix)', () => {
|
|
34
34
|
const repeat = (0, time_1.createRepeat)((0, primitives_1.createTypedTime)(604800, 'seconds'), (0, primitives_1.createTypedTime)(3600, 'seconds'), [(0, primitives_1.createTypedTime)(0, 'seconds'), (0, primitives_1.createTypedTime)(90000, 'seconds')]);
|
|
35
|
-
expect((0,
|
|
35
|
+
expect((0, fields_1.serializeRepeatField)(repeat)).toBe('r=604800 3600 0 90000');
|
|
36
36
|
});
|
|
37
37
|
it('should serialize repeat with mixed units', () => {
|
|
38
38
|
const repeat = (0, time_1.createRepeat)((0, primitives_1.createTypedTime)(7, 'days'), (0, primitives_1.createTypedTime)(90, 'minutes'), [
|
|
@@ -40,7 +40,7 @@ describe('time-serializer', () => {
|
|
|
40
40
|
(0, primitives_1.createTypedTime)(1800, 'seconds'),
|
|
41
41
|
(0, primitives_1.createTypedTime)(25, 'hours'),
|
|
42
42
|
]);
|
|
43
|
-
expect((0,
|
|
43
|
+
expect((0, fields_1.serializeRepeatField)(repeat)).toBe('r=7d 90m 0 1800 25h');
|
|
44
44
|
});
|
|
45
45
|
});
|
|
46
46
|
describe('serializeTimezoneField', () => {
|
|
@@ -48,33 +48,33 @@ describe('time-serializer', () => {
|
|
|
48
48
|
const timezone = (0, time_1.createTimezone)([
|
|
49
49
|
(0, time_1.createTimezoneAdjustment)(2882844526, (0, primitives_1.createTypedTime)(-1, 'hours')),
|
|
50
50
|
]);
|
|
51
|
-
expect((0,
|
|
51
|
+
expect((0, fields_1.serializeTimezoneField)(timezone)).toBe('z=2882844526 -1h');
|
|
52
52
|
});
|
|
53
53
|
it('should serialize multiple timezone adjustments', () => {
|
|
54
54
|
const timezone = (0, time_1.createTimezone)([
|
|
55
55
|
(0, time_1.createTimezoneAdjustment)(2882844526, (0, primitives_1.createTypedTime)(-1, 'hours')),
|
|
56
56
|
(0, time_1.createTimezoneAdjustment)(2898848070, (0, primitives_1.createTypedTime)(0, 'seconds')),
|
|
57
57
|
]);
|
|
58
|
-
expect((0,
|
|
58
|
+
expect((0, fields_1.serializeTimezoneField)(timezone)).toBe('z=2882844526 -1h 2898848070 0');
|
|
59
59
|
});
|
|
60
60
|
it('should serialize timezone with positive offset', () => {
|
|
61
61
|
const timezone = (0, time_1.createTimezone)([
|
|
62
62
|
(0, time_1.createTimezoneAdjustment)(3034423619, (0, primitives_1.createTypedTime)(1, 'hours')),
|
|
63
63
|
]);
|
|
64
|
-
expect((0,
|
|
64
|
+
expect((0, fields_1.serializeTimezoneField)(timezone)).toBe('z=3034423619 1h');
|
|
65
65
|
});
|
|
66
66
|
it('should serialize timezone with days offset', () => {
|
|
67
67
|
const timezone = (0, time_1.createTimezone)([
|
|
68
68
|
(0, time_1.createTimezoneAdjustment)(2882844526, (0, primitives_1.createTypedTime)(-1, 'days')),
|
|
69
69
|
(0, time_1.createTimezoneAdjustment)(2898848070, (0, primitives_1.createTypedTime)(1, 'days')),
|
|
70
70
|
]);
|
|
71
|
-
expect((0,
|
|
71
|
+
expect((0, fields_1.serializeTimezoneField)(timezone)).toBe('z=2882844526 -1d 2898848070 1d');
|
|
72
72
|
});
|
|
73
73
|
});
|
|
74
74
|
describe('serializeTimeDescription', () => {
|
|
75
75
|
it('should serialize time description with timing only', () => {
|
|
76
76
|
const td = (0, time_1.createTimeDescription)((0, time_1.createTiming)(0, 0));
|
|
77
|
-
const lines = (0,
|
|
77
|
+
const lines = (0, fields_1.serializeTimeDescription)(td);
|
|
78
78
|
expect(lines).toHaveLength(1);
|
|
79
79
|
expect(lines[0]).toBe('t=0 0');
|
|
80
80
|
});
|
|
@@ -82,7 +82,7 @@ describe('time-serializer', () => {
|
|
|
82
82
|
const td = (0, time_1.createTimeDescription)((0, time_1.createTiming)(2873397496, 2873404696), [
|
|
83
83
|
(0, time_1.createRepeat)((0, primitives_1.createTypedTime)(7, 'days'), (0, primitives_1.createTypedTime)(1, 'hours'), [(0, primitives_1.createTypedTime)(0, 'seconds')]),
|
|
84
84
|
]);
|
|
85
|
-
const lines = (0,
|
|
85
|
+
const lines = (0, fields_1.serializeTimeDescription)(td);
|
|
86
86
|
expect(lines).toHaveLength(2);
|
|
87
87
|
expect(lines[0]).toBe('t=2873397496 2873404696');
|
|
88
88
|
expect(lines[1]).toBe('r=7d 1h 0');
|
|
@@ -94,7 +94,7 @@ describe('time-serializer', () => {
|
|
|
94
94
|
(0, time_1.createTimezoneAdjustment)(2882844526, (0, primitives_1.createTypedTime)(-1, 'hours')),
|
|
95
95
|
(0, time_1.createTimezoneAdjustment)(2898848070, (0, primitives_1.createTypedTime)(0, 'seconds')),
|
|
96
96
|
]));
|
|
97
|
-
const lines = (0,
|
|
97
|
+
const lines = (0, fields_1.serializeTimeDescription)(td);
|
|
98
98
|
expect(lines).toHaveLength(3);
|
|
99
99
|
expect(lines[0]).toBe('t=2873397496 2873404696');
|
|
100
100
|
expect(lines[1]).toBe('r=7d 1h 0 25h');
|
|
@@ -105,7 +105,7 @@ describe('time-serializer', () => {
|
|
|
105
105
|
(0, time_1.createRepeat)((0, primitives_1.createTypedTime)(7, 'days'), (0, primitives_1.createTypedTime)(1, 'hours'), [(0, primitives_1.createTypedTime)(0, 'seconds')]),
|
|
106
106
|
(0, time_1.createRepeat)((0, primitives_1.createTypedTime)(1, 'days'), (0, primitives_1.createTypedTime)(30, 'minutes'), [(0, primitives_1.createTypedTime)(0, 'seconds')]),
|
|
107
107
|
]);
|
|
108
|
-
const lines = (0,
|
|
108
|
+
const lines = (0, fields_1.serializeTimeDescription)(td);
|
|
109
109
|
expect(lines).toHaveLength(3);
|
|
110
110
|
expect(lines[0]).toBe('t=2873397496 2873404696');
|
|
111
111
|
expect(lines[1]).toBe('r=7d 1h 0');
|