import { expect } from 'chai';
import React from 'react';
import { numericString } from '..';
import callValidator from './_callValidator';
describe('numericString', () => {
it('returns a function', () => {
expect(typeof numericString()).to.equal('function');
});
function assertPasses(validator, element, propName) {
expect(callValidator(validator, element, propName, '"numericString" test')).to.equal(null);
}
function assertFails(validator, element, propName) {
expect(callValidator(validator, element, propName, '"numericString" test')).to.be.instanceOf(Error);
}
it('behaves when absent', () => {
const validator = numericString();
assertPasses(validator, (
{}} />), 'a');
});
it('passes on the zeroes', () => {
const validator = numericString();
assertPasses(validator, (
), 'a');
assertPasses(validator.isRequired, (
), 'a');
assertPasses(validator, (
), 'a');
assertPasses(validator.isRequired, (
), 'a');
assertPasses(validator, (
), 'a');
assertPasses(validator.isRequired, (
), 'a');
});
it('passes when a numeric string', () => {
assertPasses(numericString(), (
), 'a');
assertPasses(numericString(), (
), 'a');
assertPasses(numericString(), (
), 'a');
assertPasses(numericString(), (
), 'a');
assertPasses(numericString(), (
), 'a');
assertPasses(numericString(), (
), 'a');
assertPasses(numericString(), (
), 'a');
assertPasses(numericString(), (
), 'a');
assertPasses(numericString(), (
), 'a');
});
it('fails when not a numeric string', () => {
assertFails(numericString(), (
), 'a');
assertFails(numericString(), (
), 'a');
assertFails(numericString(), (
), 'a');
});
it('fails on edge cases', () => {
const validator = numericString();
assertFails(validator, (
), 'a');
assertFails(validator, (
), 'a');
assertFails(validator, (
), 'a');
assertFails(validator, (
), 'a');
assertFails(validator, (
), 'a');
assertFails(validator, (
), 'a');
});
it('fails on edge cases when required', () => {
const validator = numericString().isRequired;
assertFails(validator, (
), 'a');
assertFails(validator, (
), 'a');
assertFails(validator, (
), 'a');
assertFails(validator, (
), 'a');
assertFails(validator, (
), 'a');
assertFails(validator, (
), 'a');
});
});