MOON
Server: Apache
System: Linux server1.quantilytics.org 3.10.0-1160.144.1.el7.tuxcare.els4.x86_64 #1 SMP Tue Apr 7 08:40:40 UTC 2026 x86_64
User: netwave (1071)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/netwave/.vscode-server/bin/1a5daa3a0231a0fbba4f14db7ec463cf99d7768e/node_modules/vsda/test.js
'use strict';

const assert = require('assert');
const vsda = require('./index');

describe('vsda module', () => {
  it('has signer interface', () => {
    assert.strictEqual(typeof vsda.signer, 'function');
    assert.strictEqual(typeof Object.getOwnPropertyDescriptor(
      vsda.signer.prototype, 'sign').value, 'function');
  });

  it('has validator interface', () => {
    assert.strictEqual(typeof vsda.validator, 'function');
    assert.strictEqual(typeof Object.getOwnPropertyDescriptor(
      vsda.validator.prototype, 'createNewMessage').value, 'function');
    assert.strictEqual(typeof Object.getOwnPropertyDescriptor(
      vsda.validator.prototype, 'validate').value, 'function');
  });

  it('can sign with a valid string input', () => {
    const signer = new vsda.signer();
    const validator = new vsda.validator();
    const message = validator.createNewMessage("test");
    const signed_message = signer.sign(message);
    assert.strictEqual(validator.validate(signed_message), "ok");
  })

  it('throws for invalid input', () => {
    const signer = new vsda.signer();
    const validator = new vsda.validator();
    assert.throws(() => {
      validator.createNewMessage()
    }, "/^Error: Wrong number of arguments$/");
    assert.throws(() => {
      validator.createNewMessage(1)
    }, "/^Error: Wrong type of argment. Expects a string.$/");

    assert.throws(() => {
      validator.validate(1, 2)
    }, "/^Error: Wrong number of arguments$/");
    assert.throws(() => {
      validator.validate(1)
    }, "/^Error: Wrong type of argment. Expects a string.$/");

    assert.throws(() => {
      signer.sign("test1", "test2")
    }, "/^Error: Wrong number of arguments$/");
    assert.throws(() => {
      signer.sign(undefined)
    }, "/^Error: Wrong type of argment. Expects a string.$/");
  })
});