/
steamId.test.ts
207 lines (184 loc) · 9.65 KB
/
steamId.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
import { test, expect } from 'vitest';
import { Type, Format, SteamId, Instance, Universe } from '../dist/index';
test('parses IDs', () => {
const sid2 = new SteamId('STEAM_0:1:33066536');
expect(sid2.type).toBe(Type.Individual);
expect(sid2.universe).toBe(Universe.Public);
expect(sid2.accountId).toBe(66133073);
expect(sid2.format).toBe(Format.SteamId);
expect(sid2.instance).toBe(Instance.Desktop);
expect(sid2.isLobby()).toBe(false);
expect(sid2.isGroupChat()).toBe(false);
expect(sid2.isValid()).toBe(true);
const sid3 = new SteamId('[U:1:66133073]');
expect(sid3.type).toBe(Type.Individual);
expect(sid3.universe).toBe(Universe.Public);
expect(sid3.accountId).toBe(66133073);
expect(sid3.format).toBe(Format.SteamId3);
expect(sid3.instance).toBe(Instance.Desktop);
expect(sid3.isLobby()).toBe(false);
expect(sid3.isGroupChat()).toBe(false);
expect(sid3.isValid()).toBe(true);
const sid3_2 = new SteamId('U:1:66133073');
expect(sid3_2.type).toBe(Type.Individual);
expect(sid3_2.universe).toBe(Universe.Public);
expect(sid3_2.accountId).toBe(66133073);
expect(sid3_2.format).toBe(Format.SteamId3);
expect(sid3_2.instance).toBe(Instance.Desktop);
expect(sid3_2.isLobby()).toBe(false);
expect(sid3_2.isGroupChat()).toBe(false);
expect(sid3_2.isValid()).toBe(true);
const sid64 = new SteamId('76561198026398801');
expect(sid64.type).toBe(Type.Individual);
expect(sid64.universe).toBe(Universe.Public);
expect(sid64.accountId).toBe(66133073);
expect(sid64.format).toBe(Format.SteamId64);
expect(sid64.instance).toBe(Instance.Desktop);
expect(sid64.isLobby()).toBe(false);
expect(sid64.isGroupChat()).toBe(false);
expect(sid64.isValid()).toBe(true);
const fmid = new SteamId('steam:110000103f11c51');
expect(fmid.type).toBe(Type.Individual);
expect(fmid.universe).toBe(Universe.Public);
expect(fmid.accountId).toBe(66133073);
expect(fmid.format).toBe(Format.FiveM);
expect(fmid.instance).toBe(Instance.Desktop);
expect(fmid.isLobby()).toBe(false);
expect(fmid.isGroupChat()).toBe(false);
expect(fmid.isValid()).toBe(true);
const aid = SteamId.fromAccountId(66133073);
expect(aid.type).toBe(Type.Individual);
expect(aid.universe).toBe(Universe.Public);
expect(aid.accountId).toBe(66133073);
expect(aid.format).toBe(Format.AccountId);
expect(aid.instance).toBe(Instance.Desktop);
expect(aid.isLobby()).toBe(false);
expect(aid.isGroupChat()).toBe(false);
expect(aid.isValid()).toBe(true);
const gid3 = new SteamId('[g:1:40528594]');
expect(gid3.type).toBe(Type.Clan);
expect(gid3.universe).toBe(Universe.Public);
expect(gid3.accountId).toBe(40528594);
expect(gid3.format).toBe(Format.SteamId3);
expect(gid3.instance).toBe(Instance.All);
expect(gid3.isLobby()).toBe(false);
expect(gid3.isGroupChat()).toBe(false);
expect(gid3.isValid()).toBe(true);
const gid3_2 = new SteamId('[g:1:40528594]');
expect(gid3_2.type).toBe(Type.Clan);
expect(gid3_2.universe).toBe(Universe.Public);
expect(gid3_2.accountId).toBe(40528594);
expect(gid3_2.format).toBe(Format.SteamId3);
expect(gid3_2.instance).toBe(Instance.All);
expect(gid3_2.isLobby()).toBe(false);
expect(gid3_2.isGroupChat()).toBe(false);
expect(gid3_2.isValid()).toBe(true);
const gid64 = new SteamId('103582791470050002');
expect(gid64.type).toBe(Type.Clan);
expect(gid64.universe).toBe(Universe.Public);
expect(gid64.accountId).toBe(40528594);
expect(gid64.format).toBe(Format.SteamId64);
expect(gid64.instance).toBe(Instance.All);
expect(gid64.isLobby()).toBe(false);
expect(gid64.isGroupChat()).toBe(false);
expect(gid64.isValid()).toBe(true);
expect(() => new SteamId(Math.random().toString())).toThrow(/Invalid/);
});
test('renders individual IDs', () => {
const sid2 = new SteamId('STEAM_0:1:33066536');
expect(sid2.toSteamId2()).toBe('STEAM_0:1:33066536');
expect(sid2.toSteamId3()).toBe('[U:1:66133073]');
expect(sid2.toSteamId3(false)).toBe('U:1:66133073');
expect(sid2.toSteamId64()).toBe('76561198026398801');
expect(sid2.toSteamId64(true)).toBe('110000103f11c51');
expect(sid2.toFiveM()).toBe('steam:110000103f11c51');
expect(sid2.toInviteCode()).toBe('fwc-crhc');
expect(sid2.toShortUrl()).toBe('https://s.team/p/fwc-crhc');
const sid3 = new SteamId('[U:1:66133073]');
expect(sid3.toSteamId2()).toBe('STEAM_0:1:33066536');
expect(sid3.toSteamId3()).toBe('[U:1:66133073]');
expect(sid3.toSteamId3(false)).toBe('U:1:66133073');
expect(sid3.toSteamId64()).toBe('76561198026398801');
expect(sid3.toSteamId64(true)).toBe('110000103f11c51');
expect(sid3.toFiveM()).toBe('steam:110000103f11c51');
expect(sid3.toInviteCode()).toBe('fwc-crhc');
expect(sid3.toShortUrl()).toBe('https://s.team/p/fwc-crhc');
const sid3_2 = new SteamId('U:1:66133073');
expect(sid3_2.toSteamId2()).toBe('STEAM_0:1:33066536');
expect(sid3_2.toSteamId3()).toBe('[U:1:66133073]');
expect(sid3_2.toSteamId3(false)).toBe('U:1:66133073');
expect(sid3_2.toSteamId64()).toBe('76561198026398801');
expect(sid3_2.toSteamId64(true)).toBe('110000103f11c51');
expect(sid3_2.toFiveM()).toBe('steam:110000103f11c51');
expect(sid3_2.toInviteCode()).toBe('fwc-crhc');
expect(sid3_2.toShortUrl()).toBe('https://s.team/p/fwc-crhc');
const sid64 = new SteamId('76561198026398801');
expect(sid64.toSteamId2()).toBe('STEAM_0:1:33066536');
expect(sid64.toSteamId3()).toBe('[U:1:66133073]');
expect(sid64.toSteamId3(false)).toBe('U:1:66133073');
expect(sid64.toSteamId64()).toBe('76561198026398801');
expect(sid64.toSteamId64(true)).toBe('110000103f11c51');
expect(sid64.toFiveM()).toBe('steam:110000103f11c51');
expect(sid64.toInviteCode()).toBe('fwc-crhc');
expect(sid64.toShortUrl()).toBe('https://s.team/p/fwc-crhc');
const fmid = new SteamId('steam:110000103f11c51');
expect(fmid.toSteamId2()).toBe('STEAM_0:1:33066536');
expect(fmid.toSteamId3()).toBe('[U:1:66133073]');
expect(fmid.toSteamId3(false)).toBe('U:1:66133073');
expect(fmid.toSteamId64()).toBe('76561198026398801');
expect(fmid.toSteamId64(true)).toBe('110000103f11c51');
expect(fmid.toFiveM()).toBe('steam:110000103f11c51');
expect(fmid.toInviteCode()).toBe('fwc-crhc');
expect(fmid.toShortUrl()).toBe('https://s.team/p/fwc-crhc');
expect(SteamId.renderToFormat('STEAM_0:1:33066536', Format.SteamId)).toBe('STEAM_0:1:33066536');
expect(SteamId.renderToFormat('STEAM_0:1:33066536', Format.SteamId3)).toBe('[U:1:66133073]');
expect(SteamId.renderToFormat('STEAM_0:1:33066536', Format.SteamId64)).toBe('76561198026398801');
expect(SteamId.renderToFormat('STEAM_0:1:33066536', Format.FiveM)).toBe('steam:110000103f11c51');
expect(SteamId.renderToFormat('STEAM_0:1:33066536', Format.AccountId)).toBe(66133073);
expect(SteamId.renderToFormat('[U:1:66133073]', Format.SteamId)).toBe('STEAM_0:1:33066536');
expect(SteamId.renderToFormat('[U:1:66133073]', Format.SteamId3)).toBe('[U:1:66133073]');
expect(SteamId.renderToFormat('[U:1:66133073]', Format.SteamId64)).toBe('76561198026398801');
expect(SteamId.renderToFormat('[U:1:66133073]', Format.FiveM)).toBe('steam:110000103f11c51');
expect(SteamId.renderToFormat('[U:1:66133073]', Format.AccountId)).toBe(66133073);
expect(SteamId.renderToFormat('U:1:66133073', Format.SteamId)).toBe('STEAM_0:1:33066536');
expect(SteamId.renderToFormat('U:1:66133073', Format.SteamId3)).toBe('[U:1:66133073]');
expect(SteamId.renderToFormat('U:1:66133073', Format.SteamId64)).toBe('76561198026398801');
expect(SteamId.renderToFormat('U:1:66133073', Format.FiveM)).toBe('steam:110000103f11c51');
expect(SteamId.renderToFormat('U:1:66133073', Format.AccountId)).toBe(66133073);
expect(SteamId.renderToFormat('76561198026398801', Format.SteamId)).toBe('STEAM_0:1:33066536');
expect(SteamId.renderToFormat('76561198026398801', Format.SteamId3)).toBe('[U:1:66133073]');
expect(SteamId.renderToFormat('76561198026398801', Format.SteamId64)).toBe('76561198026398801');
expect(SteamId.renderToFormat('76561198026398801', Format.FiveM)).toBe('steam:110000103f11c51');
expect(SteamId.renderToFormat('76561198026398801', Format.AccountId)).toBe(66133073);
expect(SteamId.renderToFormat('steam:110000103f11c51', Format.SteamId)).toBe('STEAM_0:1:33066536');
expect(SteamId.renderToFormat('steam:110000103f11c51', Format.SteamId3)).toBe('[U:1:66133073]');
expect(SteamId.renderToFormat('steam:110000103f11c51', Format.SteamId64)).toBe('76561198026398801');
expect(SteamId.renderToFormat('steam:110000103f11c51', Format.FiveM)).toBe('steam:110000103f11c51');
expect(SteamId.renderToFormat('steam:110000103f11c51', Format.AccountId)).toBe(66133073);
});
test('renders group IDs', () => {
const gid3 = new SteamId('[g:1:40528594]');
expect(gid3.toSteamId3()).toBe('[g:1:40528594]');
expect(gid3.toSteamId3(false)).toBe('g:1:40528594');
expect(gid3.toSteamId64()).toBe('103582791470050002');
expect(gid3.toSteamId64(true)).toBe('1700000026a6ad2');
expect(() => gid3.toSteamId2()).toThrow(/individual/);
expect(() => gid3.toInviteCode()).toThrow(/individual/);
expect(() => gid3.toShortUrl()).toThrow(/individual/);
const gid3_2 = new SteamId('g:1:40528594');
expect(gid3_2.toSteamId3()).toBe('[g:1:40528594]');
expect(gid3_2.toSteamId3(false)).toBe('g:1:40528594');
expect(gid3_2.toSteamId64()).toBe('103582791470050002');
expect(gid3_2.toSteamId64(true)).toBe('1700000026a6ad2');
expect(() => gid3_2.toSteamId2()).toThrow(/individual/);
expect(() => gid3_2.toInviteCode()).toThrow(/individual/);
expect(() => gid3_2.toShortUrl()).toThrow(/individual/);
const gid64 = new SteamId('103582791470050002');
expect(gid64.toSteamId3()).toBe('[g:1:40528594]');
expect(gid64.toSteamId3(false)).toBe('g:1:40528594');
expect(gid64.toSteamId64()).toBe('103582791470050002');
expect(gid64.toSteamId64(true)).toBe('1700000026a6ad2');
expect(() => gid64.toSteamId2()).toThrow(/individual/);
expect(() => gid64.toInviteCode()).toThrow(/individual/);
expect(() => gid64.toShortUrl()).toThrow(/individual/);
});