respect-validation/tests/feature/Rules/SpacedTest.php
Henrique Moody a37cac7142
Invert the behaviour of NoWhitespace
Since we have the ability to use `not` as a prefix, having rules that
validate negative behavior makes them a bit inflexible, verbose, and
harder to understand.

This commit will refactor the `NoWhitespace` rule by inverting its
behaviour and renaming it to `Spaced`. Although this is a breaking
change, users will still be able to have a similar behavior with the
prefix `not` + `Spaced`.
2025-12-29 09:11:01 +01:00

24 lines
958 B
PHP

<?php
/*
* Copyright (c) Alexandre Gomes Gaigalas <alganet@gmail.com>
* SPDX-License-Identifier: MIT
*/
declare(strict_types=1);
test('default template', catchAll(
fn() => v::spaced()->assert('word'),
fn(string $message, string $fullMessage, array $messages) => expect()
->and($message)->toBe('"word" must contain at least one whitespace')
->and($fullMessage)->toBe('- "word" must contain at least one whitespace')
->and($messages)->toBe(['spaced' => '"word" must contain at least one whitespace']),
));
test('inverted template', catchAll(
fn() => v::not(v::spaced())->assert('two words'),
fn(string $message, string $fullMessage, array $messages) => expect()
->and($message)->toBe('"two words" must not contain whitespaces')
->and($fullMessage)->toBe('- "two words" must not contain whitespaces')
->and($messages)->toBe(['notSpaced' => '"two words" must not contain whitespaces']),
));