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/api.javaapp.co.uk/node_modules/node-input-validator/test/async.js
const assert = require('assert');

const niv = require('../lib/index');

const { Validator } = niv;

niv.extend('asyncIn', async ({ value, args }) => {
  const results = await new Promise((resolve) => {
    setTimeout(() => {
      if (args.indexOf(value) >= 0) {
        resolve(true);
        return;
      }

      resolve(false);
    }, 500);
  });
  return results;
});

describe('Async Rules', () => {
  it('should pass using async', async () => {
    const v = new Validator(
      { status: 'active' }, { status: 'asyncIn:active,inactive' },
    );

    const matched = await v.check();

    assert.equal(matched, true);
  });

  it('should pass using async and sync', async () => {
    const v = new Validator(
      { status: 'active' }, { status: 'string|asyncIn:active,inactive|ascii' },
    );

    const matched = await v.check();

    assert.equal(matched, true);
  });

  it('should fails using async', async () => {
    const v = new Validator(
      { status: 'active' }, { status: 'asyncIn:activated,deactivated' },
    );

    const matched = await v.check();

    assert.equal(matched, false);
  });
});