@blinkk/selective-edit
Version:
Selective structured text editor.
133 lines • 4.78 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const match_1 = require("./match");
const ava_1 = __importDefault(require("ava"));
(0, ava_1.default)('match rule respects allowed pattern', t => {
const failMessage = 'failed';
const rule = new match_1.MatchRule({
type: 'match',
allowed: {
pattern: '^s.*y$',
message: failMessage,
},
});
// Fails with invalid value.
t.is(rule.validate('testing'), failMessage);
t.is(rule.validate('foobar!@#@'), failMessage);
// Success when there is a correct value.
t.is(rule.validate('slurry'), null);
t.is(rule.validate('starry'), null);
// Success when there is no value or empty.
t.is(rule.validate(undefined), null);
t.is(rule.validate(null), null);
t.is(rule.validate(''), null);
});
(0, ava_1.default)('match rule respects allowed values', t => {
const failMessage = 'failed';
const rule = new match_1.MatchRule({
type: 'match',
allowed: {
values: ['apple', 'banana', 'grape'],
message: failMessage,
},
});
// Fails with invalid value.
t.is(rule.validate('testing'), failMessage);
t.is(rule.validate('foobar'), failMessage);
// Success when there is a correct value.
t.is(rule.validate('apple'), null);
t.is(rule.validate('banana'), null);
t.is(rule.validate('grape'), null);
// Success when there is no value or empty.
t.is(rule.validate(undefined), null);
t.is(rule.validate(null), null);
t.is(rule.validate(''), null);
});
(0, ava_1.default)('match rule respects allowed regexp values', t => {
const failMessage = 'failed';
const rule = new match_1.MatchRule({
type: 'match',
allowed: {
values: [/ap.*/, /bana.*/, /.*pe/],
message: failMessage,
},
});
// Fails with invalid value.
t.is(rule.validate('testing'), failMessage);
t.is(rule.validate('foobar'), failMessage);
// Success when there is a correct value.
t.is(rule.validate('apple'), null);
t.is(rule.validate('banana'), null);
t.is(rule.validate('grape'), null);
t.is(rule.validate('tape'), null);
// Success when there is no value or empty.
t.is(rule.validate(undefined), null);
t.is(rule.validate(null), null);
t.is(rule.validate(''), null);
});
(0, ava_1.default)('match rule respects excluded pattern', t => {
const failMessage = 'failed';
const rule = new match_1.MatchRule({
type: 'match',
excluded: {
pattern: '^s.*y$',
message: failMessage,
},
});
// Fails with invalid value.
t.is(rule.validate('slurry'), failMessage);
t.is(rule.validate('starry'), failMessage);
// Success when there is a correct value.
t.is(rule.validate('testing'), null);
t.is(rule.validate('foobar!@#@'), null);
// Success when there is no value or empty.
t.is(rule.validate(undefined), null);
t.is(rule.validate(null), null);
t.is(rule.validate(''), null);
});
(0, ava_1.default)('match rule respects excluded values', t => {
const failMessage = 'failed';
const rule = new match_1.MatchRule({
type: 'match',
excluded: {
values: ['apple', 'banana', 'grape'],
message: failMessage,
},
});
// Fails with invalid value.
t.is(rule.validate('apple'), failMessage);
t.is(rule.validate('banana'), failMessage);
t.is(rule.validate('grape'), failMessage);
// Success when there is a correct value.
t.is(rule.validate('testing'), null);
t.is(rule.validate('foobar'), null);
// Success when there is no value or empty.
t.is(rule.validate(undefined), null);
t.is(rule.validate(null), null);
t.is(rule.validate(''), null);
});
(0, ava_1.default)('match rule respects excluded regex values', t => {
const failMessage = 'failed';
const rule = new match_1.MatchRule({
type: 'match',
excluded: {
values: [/ap.*/, /bana.*/, /.*pe/],
message: failMessage,
},
});
// Fails with invalid value.
t.is(rule.validate('apple'), failMessage);
t.is(rule.validate('banana'), failMessage);
t.is(rule.validate('grape'), failMessage);
// Success when there is a correct value.
t.is(rule.validate('testing'), null);
t.is(rule.validate('foobar'), null);
// Success when there is no value or empty.
t.is(rule.validate(undefined), null);
t.is(rule.validate(null), null);
t.is(rule.validate(''), null);
});
//# sourceMappingURL=match.test.js.map