From b6d60b90101171a8b5ad3b3eeda3cd8440f927fc Mon Sep 17 00:00:00 2001
From: John Johnston <john.johnston@aquera.com>
Date: Sun, 1 Aug 2021 12:38:00 -0700
Subject: [PATCH] chore: 'add buffer' unit test

---
 test/client.test.js | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/test/client.test.js b/test/client.test.js
index 7d27a86..e05a0bf 100644
--- a/test/client.test.js
+++ b/test/client.test.js
@@ -508,6 +508,40 @@ tap.test('add success with object', function (t) {
   })
 })
 
+tap.test('add buffer', function (t) {
+  const { BerReader } = require('asn1')
+  const dn = `cn=add, ${SUFFIX}`
+  const attribute = 'thumbnailPhoto'
+  const binary = 0xa5
+  const entry = {
+    [attribute]: Buffer.from([binary])
+  }
+  const write = t.context.client._socket.write
+  t.context.client._socket.write = (data, encoding, cb) => {
+    const reader = new BerReader(data)
+    t.equal(data.byteLength, 49)
+    t.ok(reader.readSequence())
+    t.equal(reader.readInt(), 0x1)
+    t.equal(reader.readSequence(), 0x68)
+    t.equal(reader.readString(), dn)
+    t.ok(reader.readSequence())
+    t.ok(reader.readSequence())
+    t.equal(reader.readString(), attribute)
+    t.equal(reader.readSequence(), 0x31)
+    t.equal(reader.readByte(), 0x4)
+    t.equal(reader.readByte(), 1)
+    t.equal(reader.readByte(), binary)
+    t.context.client._socket.write = write
+    t.context.client._socket.write(data, encoding, cb)
+  }
+  t.context.client.add(dn, entry, function (err, res) {
+    t.error(err)
+    t.ok(res)
+    t.equal(res.status, 0)
+    t.end()
+  })
+})
+
 tap.test('compare success', function (t) {
   t.context.client.compare('cn=compare, ' + SUFFIX, 'cn', 'test', function (err, matched, res) {
     t.error(err)