Skip to content

Commit 0d98367

Browse files
fix: Change format of version sent (#455)
* fix: Change format of version sent * get version from x-client-info header * add tests --------- Co-authored-by: Guilherme Souza <grsouza@pm.me>
1 parent e58fc94 commit 0d98367

File tree

2 files changed

+22
-82
lines changed

2 files changed

+22
-82
lines changed

src/RealtimeClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ export default class RealtimeClient {
367367
tokenToSend &&
368368
channel.updateJoinPayload({
369369
access_token: tokenToSend,
370-
version: VERSION,
370+
version: this.headers && this.headers['X-Client-Info'],
371371
})
372372

373373
if (channel.joinedOnce && channel._isJoined()) {

test/socket.test.ts

Lines changed: 21 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,16 @@ let randomProjectRef = () => crypto.randomUUID()
2121
let mockServer: Server
2222
let projectRef: string
2323
let url: string
24-
24+
const version = crypto.randomUUID()
2525
beforeEach(() => {
2626
projectRef = randomProjectRef()
2727
url = `wss://${projectRef}/socket`
2828
mockServer = new Server(url)
2929
socket = new RealtimeClient(url, {
3030
transport: MockWebSocket,
31+
headers: {
32+
'X-Client-Info': version,
33+
},
3134
})
3235
})
3336

@@ -399,27 +402,14 @@ describe('setAuth', () => {
399402
await socket.setAuth(token)
400403

401404
assert.strictEqual(socket.accessTokenValue, token)
405+
402406
assert.ok(pushStub1.calledWith('access_token', { access_token: token }))
403407
assert.ok(!pushStub2.calledWith('access_token', { access_token: token }))
404408
assert.ok(pushStub3.calledWith('access_token', { access_token: token }))
405-
assert.ok(
406-
payloadStub1.calledWith({
407-
access_token: token,
408-
version: '0.0.0-automated',
409-
})
410-
)
411-
assert.ok(
412-
payloadStub2.calledWith({
413-
access_token: token,
414-
version: '0.0.0-automated',
415-
})
416-
)
417-
assert.ok(
418-
payloadStub3.calledWith({
419-
access_token: token,
420-
version: '0.0.0-automated',
421-
})
422-
)
409+
410+
assert.ok(payloadStub1.calledWith({ access_token: token, version }))
411+
assert.ok(payloadStub2.calledWith({ access_token: token, version }))
412+
assert.ok(payloadStub3.calledWith({ access_token: token, version }))
423413
})
424414

425415
test("does not send message if token hasn't changed", async () => {
@@ -429,7 +419,7 @@ describe('setAuth', () => {
429419

430420
channel1.joinedOnce = true
431421

432-
const pushStub1 = sinon.stub(channel1, '_push')
422+
sinon.stub(channel1, '_push')
433423

434424
const payloadStub1 = sinon.stub(channel1, 'updateJoinPayload')
435425
const token = generateJWT('1h')
@@ -438,13 +428,7 @@ describe('setAuth', () => {
438428
await socket.setAuth(token)
439429

440430
assert.strictEqual(socket.accessTokenValue, token)
441-
442-
assert.ok(
443-
payloadStub1.calledOnceWith({
444-
access_token: token,
445-
version: '0.0.0-automated',
446-
})
447-
)
431+
assert.ok(payloadStub1.calledOnceWith({ access_token: token, version }))
448432
})
449433

450434
test("sets access token, updates channels' join payload, and pushes token to channels if is not a jwt", async () => {
@@ -477,30 +461,16 @@ describe('setAuth', () => {
477461
!pushStub2.calledWith('access_token', { access_token: new_token })
478462
)
479463
assert.ok(pushStub3.calledWith('access_token', { access_token: new_token }))
480-
assert.ok(
481-
payloadStub1.calledWith({
482-
access_token: new_token,
483-
version: '0.0.0-automated',
484-
})
485-
)
486-
assert.ok(
487-
payloadStub2.calledWith({
488-
access_token: new_token,
489-
version: '0.0.0-automated',
490-
})
491-
)
492-
assert.ok(
493-
payloadStub3.calledWith({
494-
access_token: new_token,
495-
version: '0.0.0-automated',
496-
})
497-
)
464+
assert.ok(payloadStub1.calledWith({ access_token: new_token, version }))
465+
assert.ok(payloadStub2.calledWith({ access_token: new_token, version }))
466+
assert.ok(payloadStub3.calledWith({ access_token: new_token, version }))
498467
})
499468

500469
test("sets access token using callback, updates channels' join payload, and pushes token to channels", async () => {
501470
let new_token = generateJWT('1h')
502471
let new_socket = new RealtimeClient(url, {
503472
transport: MockWebSocket,
473+
headers: { 'X-Client-Info': version },
504474
accessToken: () => Promise.resolve(token),
505475
})
506476

@@ -532,24 +502,9 @@ describe('setAuth', () => {
532502
!pushStub2.calledWith('access_token', { access_token: new_token })
533503
)
534504
assert.ok(pushStub3.calledWith('access_token', { access_token: new_token }))
535-
assert.ok(
536-
payloadStub1.calledWith({
537-
access_token: new_token,
538-
version: '0.0.0-automated',
539-
})
540-
)
541-
assert.ok(
542-
payloadStub2.calledWith({
543-
access_token: new_token,
544-
version: '0.0.0-automated',
545-
})
546-
)
547-
assert.ok(
548-
payloadStub3.calledWith({
549-
access_token: new_token,
550-
version: '0.0.0-automated',
551-
})
552-
)
505+
assert.ok(payloadStub1.calledWith({ access_token: new_token, version }))
506+
assert.ok(payloadStub2.calledWith({ access_token: new_token, version }))
507+
assert.ok(payloadStub3.calledWith({ access_token: new_token, version }))
553508
})
554509

555510
test("overrides access token, updates channels' join payload, and pushes token to channels", () => {
@@ -581,24 +536,9 @@ describe('setAuth', () => {
581536
!pushStub2.calledWith('access_token', { access_token: new_token })
582537
)
583538
assert.ok(pushStub3.calledWith('access_token', { access_token: new_token }))
584-
assert.ok(
585-
payloadStub1.calledWith({
586-
access_token: new_token,
587-
version: '0.0.0-automated',
588-
})
589-
)
590-
assert.ok(
591-
payloadStub2.calledWith({
592-
access_token: new_token,
593-
version: '0.0.0-automated',
594-
})
595-
)
596-
assert.ok(
597-
payloadStub3.calledWith({
598-
access_token: new_token,
599-
version: '0.0.0-automated',
600-
})
601-
)
539+
assert.ok(payloadStub1.calledWith({ access_token: new_token, version }))
540+
assert.ok(payloadStub2.calledWith({ access_token: new_token, version }))
541+
assert.ok(payloadStub3.calledWith({ access_token: new_token, version }))
602542
})
603543
})
604544

0 commit comments

Comments
 (0)