fh1ch/node-bacstack

View on GitHub
test/unit/bvlc.spec.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

const utils = require('./utils');
const baBvlc = require('../../lib/bvlc');

describe('bacstack - BVLC layer', () => {
  it('should successfuly encode and decode a package', () => {
    const buffer = utils.getBuffer();
    baBvlc.encode(buffer.buffer, 10, 1482);
    const result = baBvlc.decode(buffer.buffer, 0);
    expect(result).toEqual({
      len: 4,
      func: 10,
      msgLength: 1482
    });
  });

  it('should successfuly encode and decode a forwarded package', () => {
    const buffer = utils.getBuffer();
    baBvlc.encode(buffer.buffer, 4, 1482);
    const result = baBvlc.decode(buffer.buffer, 0);
    expect(result).toEqual({
      len: 10,
      func: 4,
      msgLength: 1482
    });
  });

  it('should fail if invalid BVLC type', () => {
    const buffer = utils.getBuffer();
    baBvlc.encode(buffer.buffer, 10, 1482);
    buffer.buffer[0] = 8;
    const result = baBvlc.decode(buffer.buffer, 0);
    expect(result).toBeUndefined();
  });

  it('should fail if invalid length', () => {
    const buffer = utils.getBuffer();
    baBvlc.encode(buffer.buffer, 10, 1481);
    buffer.buffer[0] = 8;
    const result = baBvlc.decode(buffer.buffer, 0);
    expect(result).toBeUndefined();
  });

  it('should fail if invalid function', () => {
    const buffer = utils.getBuffer();
    baBvlc.encode(buffer.buffer, 100, 1482);
    const result = baBvlc.decode(buffer.buffer, 0);
    expect(result).toBeUndefined();
  });

  it('should fail if unsuported function', () => {
    const buffer = utils.getBuffer();
    baBvlc.encode(buffer.buffer, 5, 1482);
    const result = baBvlc.decode(buffer.buffer, 0);
    expect(result).toBeUndefined();
  });
});