HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: /var/www/javago_test/node_modules/node-input-validator/test/edge.js
const assert = require('assert');

const { Validator } = require('../lib/index');

describe('Edge Cases', () => {
  describe('undefined', () => {
    it('should ignore undefined and not required fields', async () => {
      const v = new Validator({ field: undefined }, { field: 'string' });

      const matched = await v.check();
      assert.equal(matched, true);
    });

    it('should reject undefined and required fields', async () => {
      const v = new Validator({ field: undefined }, { field: 'required|string' });

      const matched = await v.check();
      assert.equal(matched, false);
    });
  });

  describe('null', () => {
    it('should ignore null and not required fields', async () => {
      const v = new Validator({ field: null }, { field: 'string' });

      const matched = await v.check();
      assert.equal(matched, true);
    });

    it('should reject null and required fields', async () => {
      const v = new Validator({ field: null }, { field: 'required|string' });

      const matched = await v.check();
      assert.equal(matched, false);
    });
  });

  describe('empty string', () => {
    it('should ignore empty string in not required fields', async () => {
      const v = new Validator({ field: '' }, { field: 'string' });

      const matched = await v.check();
      assert.equal(matched, true);
    });

    it('should reject empty string in required fields', async () => {
      const v = new Validator({ field: '' }, { field: 'required|string' });

      const matched = await v.check();
      assert.equal(matched, false);
    });
  });

  describe('exceptions', () => {
    it('Checking for invalid rule', async () => {
      try {
        const v = new Validator({ name: 'Harcharan Singh' }, { name: 'required|fullName' });

        await v.check();

        throw new Error('Rule was missing.');
      } catch (e) {
        assert.equal(e, 'Error: Validation Rule: fullName does not exists.');
      }
    });
  });
});