From 9809b46979d506cc57a0712154ec82b8473259b7 Mon Sep 17 00:00:00 2001 From: yasserf Date: Sat, 8 Apr 2017 14:53:34 +0200 Subject: [PATCH] fix: setting anonymous record with same name Setting anonymous record with same name discards and resubscribes the same record, it should just ignore it Fixes #312 --- src/record/anonymous-record.js | 4 ++++ test-unit/unit/record/anonymous-recordSpec.js | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/src/record/anonymous-record.js b/src/record/anonymous-record.js index ce0a17df2..85550b8a4 100644 --- a/src/record/anonymous-record.js +++ b/src/record/anonymous-record.js @@ -119,6 +119,10 @@ AnonymousRecord.prototype.unsubscribe = function () { * @returns {void} */ AnonymousRecord.prototype.setName = function (recordName) { + if (this.name === recordName) { + return + } + this.name = recordName let i diff --git a/test-unit/unit/record/anonymous-recordSpec.js b/test-unit/unit/record/anonymous-recordSpec.js index 8d380f05a..561db3da2 100644 --- a/test-unit/unit/record/anonymous-recordSpec.js +++ b/test-unit/unit/record/anonymous-recordSpec.js @@ -41,6 +41,13 @@ describe('anonymous record allows switching of underlying records', () => { expect(recordHandler._connection.lastSendMessage).toBe(msg('R|CR|recordA+')) }) + it('does nothing if same name is set again', () => { + recordHandler._connection.lastSendMessage = null + anonymousRecord.setName('recordA') + expect(anonymousRecord.name).toBe('recordA') + expect(recordHandler._connection.lastSendMessage).toBe(null) + }) + it('updates subscriptions once the record is ready', () => { expect(firstnameCallback).not.toHaveBeenCalled() expect(generalCallback).not.toHaveBeenCalled()