const { default: is, isNot, isOr, isSomeNot } = require('../'); const test = require('ava'); test('should render only if prop is truthy', t => { const rule = is('test')`hello`; t.deepEqual(rule({ test: false }), []); t.deepEqual(rule({ test: true }), ['hello']); }); test('should render only if prop is falsy', t => { const rule = isNot('test')`hello`; t.deepEqual(rule({ test: false }), ['hello']); t.deepEqual(rule({ test: true }), []); }); test('should render only if all props are truthy', t => { const rule = is('t1', 't2')`hello`; t.deepEqual(rule({ t1: true, t2: false }), []); t.deepEqual(rule({ t1: false, t2: false }), []); t.deepEqual(rule({ t1: false, t2: true }), []); t.deepEqual(rule({ t1: true, t2: true }), ['hello']); }); test('should render only if all props are falsy', t => { const rule = isNot('t1', 't2')`hello`; t.deepEqual(rule({ t1: true, t2: false }), []); t.deepEqual(rule({ t1: false, t2: false }), ['hello']); t.deepEqual(rule({ t1: false, t2: true }), []); t.deepEqual(rule({ t1: true, t2: true }), []); }); test('should render only if one prop is truthy', t => { const rule = isOr('t1', 't2')`hello`; t.deepEqual(rule({ t1: true, t2: false }), ['hello']); t.deepEqual(rule({ t1: false, t2: false }), []); t.deepEqual(rule({ t1: false, t2: true }), ['hello']); t.deepEqual(rule({ t1: true, t2: true }), ['hello']); }); test('should render only if one prop is falsy', t => { const rule = isSomeNot('t1', 't2')`hello`; t.deepEqual(rule({ t1: true, t2: false }), ['hello']); t.deepEqual(rule({ t1: false, t2: false }), ['hello']); t.deepEqual(rule({ t1: false, t2: true }), ['hello']); t.deepEqual(rule({ t1: true, t2: true }), []); });