From 7834ff52b1df539f27fd4f30efc0181fcc3d9995 Mon Sep 17 00:00:00 2001
From: Shpuld Shpuldson <shp@cock.li>
Date: Wed, 17 Feb 2021 10:53:38 +0200
Subject: [PATCH] add test

---
 .../services/chat_service/chat_service.spec.js  | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/test/unit/specs/services/chat_service/chat_service.spec.js b/test/unit/specs/services/chat_service/chat_service.spec.js
index 0251cae7..fbbca436 100644
--- a/test/unit/specs/services/chat_service/chat_service.spec.js
+++ b/test/unit/specs/services/chat_service/chat_service.spec.js
@@ -88,4 +88,21 @@ describe('chatService', () => {
       expect(view.map(i => i.type)).to.eql(['date', 'message', 'message', 'date', 'message'])
     })
   })
+
+  describe('.cullOlderMessages', () => {
+    it('keeps 50 newest messages and idIndex matches', () => {
+      const chat = chatService.empty()
+
+      for (let i = 100; i > 0; i--) {
+        // Use decimal values with toFixed to hack together constant length predictable strings
+        chatService.add(chat, { messages: [{ ...message1, id: 'a' + (i / 1000).toFixed(3), idempotency_key: i }] })
+      }
+      chatService.cullOlderMessages(chat)
+      expect(chat.messages.length).to.eql(50)
+      expect(chat.messages[0].id).to.eql('a0.051')
+      expect(chat.minId).to.eql('a0.051')
+      expect(chat.messages[49].id).to.eql('a0.100')
+      expect(Object.keys(chat.idIndex).length).to.eql(50)
+    })
+  })
 })