mirror of
https://github.com/Respect/Validation.git
synced 2026-03-17 23:59:51 +01:00
The problem with the current approach is that the "expect()" calls happen inside "tests/Pest.php". That means that when something fails, we can't easily know which exact expectation has failed. This commit will change the helper functions, and will make the tests more verbose, but event with that, the developer experience is better.
40 lines
1.6 KiB
PHP
40 lines
1.6 KiB
PHP
<?php
|
|
|
|
/*
|
|
* Copyright (c) Alexandre Gomes Gaigalas <alganet@gmail.com>
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
test('Default mode', catchAll(
|
|
fn() => v::keyExists('foo')->assert(['bar' => 'baz']),
|
|
fn(string $message, string $fullMessage, array $messages) => expect()
|
|
->and($message)->toBe('`.foo` must be present')
|
|
->and($fullMessage)->toBe('- `.foo` must be present')
|
|
->and($messages)->toBe(['foo' => '`.foo` must be present'])
|
|
));
|
|
|
|
test('Inverted mode', catchAll(
|
|
fn() => v::not(v::keyExists('foo'))->assert(['foo' => 'baz']),
|
|
fn(string $message, string $fullMessage, array $messages) => expect()
|
|
->and($message)->toBe('`.foo` must not be present')
|
|
->and($fullMessage)->toBe('- `.foo` must not be present')
|
|
->and($messages)->toBe(['foo' => '`.foo` must not be present'])
|
|
));
|
|
|
|
test('Custom name', catchAll(
|
|
fn() => v::keyExists('foo')->setName('Custom name')->assert(['bar' => 'baz']),
|
|
fn(string $message, string $fullMessage, array $messages) => expect()
|
|
->and($message)->toBe('Custom name must be present')
|
|
->and($fullMessage)->toBe('- Custom name must be present')
|
|
->and($messages)->toBe(['foo' => 'Custom name must be present'])
|
|
));
|
|
|
|
test('Custom template', catchAll(
|
|
fn() => v::keyExists('foo')->assert(['bar' => 'baz'], 'Custom template for {{name}}'),
|
|
fn(string $message, string $fullMessage, array $messages) => expect()
|
|
->and($message)->toBe('Custom template for `.foo`')
|
|
->and($fullMessage)->toBe('- Custom template for `.foo`')
|
|
->and($messages)->toBe(['foo' => 'Custom template for `.foo`'])
|
|
));
|