respect-validation/tests/feature/Rules/GraphTest.php
Henrique Moody d3239e878d
Change how we're writing Pest tests
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.
2025-12-18 14:02:33 +01:00

48 lines
1.7 KiB
PHP

<?php
/*
* Copyright (c) Alexandre Gomes Gaigalas <alganet@gmail.com>
* SPDX-License-Identifier: MIT
*/
declare(strict_types=1);
test('Scenario #1', catchMessage(
fn() => v::graph()->assert("foo\nbar"),
fn(string $message) => expect($message)->toBe('"foo\\nbar" must contain only graphical characters')
));
test('Scenario #2', catchMessage(
fn() => v::graph('foo')->assert("foo\nbar"),
fn(string $message) => expect($message)->toBe('"foo\\nbar" must contain only graphical characters and "foo"')
));
test('Scenario #3', catchMessage(
fn() => v::not(v::graph())->assert('foobar'),
fn(string $message) => expect($message)->toBe('"foobar" must not contain graphical characters')
));
test('Scenario #4', catchMessage(
fn() => v::not(v::graph("\n"))->assert("foo\nbar"),
fn(string $message) => expect($message)->toBe('"foo\\nbar" must not contain graphical characters or "\\n"')
));
test('Scenario #5', catchFullMessage(
fn() => v::graph()->assert("foo\nbar"),
fn(string $fullMessage) => expect($fullMessage)->toBe('- "foo\\nbar" must contain only graphical characters')
));
test('Scenario #6', catchFullMessage(
fn() => v::graph('foo')->assert("foo\nbar"),
fn(string $fullMessage) => expect($fullMessage)->toBe('- "foo\\nbar" must contain only graphical characters and "foo"')
));
test('Scenario #7', catchFullMessage(
fn() => v::not(v::graph())->assert('foobar'),
fn(string $fullMessage) => expect($fullMessage)->toBe('- "foobar" must not contain graphical characters')
));
test('Scenario #8', catchFullMessage(
fn() => v::not(v::graph("\n"))->assert("foo\nbar"),
fn(string $fullMessage) => expect($fullMessage)->toBe('- "foo\\nbar" must not contain graphical characters or "\\n"')
));