First commit
This commit is contained in:
54
node_modules/@ldapjs/messages/lib/parse-to-message.test.js
generated
vendored
Normal file
54
node_modules/@ldapjs/messages/lib/parse-to-message.test.js
generated
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
'use strict'
|
||||
|
||||
const tap = require('tap')
|
||||
const { BerReader } = require('@ldapjs/asn1')
|
||||
const parseToMessage = require('./parse-to-message')
|
||||
|
||||
const messageBytesArrays = require('./messages/_fixtures/message-byte-arrays')
|
||||
|
||||
tap.test('throws if input not a BerReader', async t => {
|
||||
const input = Buffer.from([0x30, 0x01, 0x64])
|
||||
t.throws(
|
||||
() => parseToMessage(input),
|
||||
Error('Expected BerReader but got [object Uint8Array]')
|
||||
)
|
||||
})
|
||||
|
||||
tap.test('throws if sequence is invalid', async t => {
|
||||
const input = new BerReader(Buffer.from([0x0a, 0x01, 0x64]))
|
||||
t.throws(
|
||||
() => parseToMessage(input),
|
||||
Error('Expected 0x02: got 0x64')
|
||||
)
|
||||
})
|
||||
|
||||
tap.test('parses messages correctly', async t => {
|
||||
for (const [name, messageBytes] of Object.entries(messageBytesArrays)) {
|
||||
t.comment(`verifying message bytes: ${name}`)
|
||||
const expected = Buffer.from(messageBytes)
|
||||
const reader = new BerReader(expected)
|
||||
const message = parseToMessage(reader)
|
||||
const found = message.toBer().buffer
|
||||
const isEqual = t.equal(expected.compare(found), 0, `${name} comparison`)
|
||||
|
||||
if (isEqual === false) {
|
||||
const diff = {}
|
||||
for (let i = 0; i < expected.length; i += 1) {
|
||||
if (expected[i] !== found[i]) {
|
||||
diff[i] = {
|
||||
expected: Number(expected[i]).toString(16),
|
||||
found: Number(found[i]).toString(16)
|
||||
}
|
||||
}
|
||||
}
|
||||
t.fail(`${name} differs`, diff)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
tap.test('parses search req with evolution filter', async t => {
|
||||
const messageBytes = require('./_fixtures/evolution-filter-req')
|
||||
const messageBuffer = Buffer.from(messageBytes)
|
||||
const message = parseToMessage(new BerReader(messageBuffer))
|
||||
t.equal(messageBuffer.compare(message.toBer().buffer), 0)
|
||||
})
|
||||
Reference in New Issue
Block a user