Home Reference Source Test

test/1_unitTests/6_misc/uuidBufferConvert.test.ts

import {uuidToBuffer, uuidFromBuffer} from '../../../src'
import * as assert from 'assert'
import uuid = require('uuid/v4')

describe('uuid to buffer', (): void => {
  const testId = uuid()

  it('converts a uuid to formated buffer', (): void => {
    const result = uuidToBuffer(testId)
    assert.strictEqual(result.toString(), Buffer.from(testId.replace(/-/g, ''), 'hex').toString())
  })

  it('returns a buffer for id=null', (): void => {
    const result = uuidToBuffer(null)
    assert.strictEqual(result.toString(), Buffer.alloc(16).toString())
  })

  it('throws on uuid size', (): void => {
    try {
      const result = uuidToBuffer('00000000-0000-0000-0000-00000000000')
      assert.fail(result.toString())
    } catch (err) {
      assert.strictEqual(err.name, 'EventstoreProtocolError')
    }
  })

  it('throws on invalid uuid format', (): void => {
    try {
      const result = uuidToBuffer('000000000000000000000000000000000000')
      assert.fail(result.toString())
    } catch (err) {
      assert.strictEqual(err.name, 'EventstoreProtocolError')
    }
  })
})

describe('buffer to uuid', (): void => {
  const testId = uuid()
  const testBuffer = Buffer.from(testId.replace(/-/g, ''), 'hex')

  it('converts buffer to uuid', (): void => {
    const result = uuidFromBuffer(testBuffer)
    assert.strictEqual(result, testId)
  })

  it('converts buffer to uuid', (): void => {
    const result = uuidFromBuffer(Buffer.alloc(16))
    assert.strictEqual(result, '')
  })

  it('throws on invalid buffer size', (): void => {
    const invalidBuffer = Buffer.alloc(17, 'hex')
    try {
      const result = uuidFromBuffer(invalidBuffer)
      assert.fail(result)
    } catch (err) {
      assert.strictEqual(err.name, 'EventstoreProtocolError')
    }
  })
})