From b442d9d45ad208e5a41987afdd3c2f237efe2f13 Mon Sep 17 00:00:00 2001 From: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com> Date: Tue, 2 Apr 2024 11:28:06 +1300 Subject: [PATCH] ENH Let unit tests manipulate the DB before loading fixtures (#11182) --- src/Dev/SapphireTest.php | 8 ++++++++ src/Dev/State/FixtureTestState.php | 1 + 2 files changed, 9 insertions(+) diff --git a/src/Dev/SapphireTest.php b/src/Dev/SapphireTest.php index 3694f18ae..df953acc2 100644 --- a/src/Dev/SapphireTest.php +++ b/src/Dev/SapphireTest.php @@ -251,6 +251,14 @@ abstract class SapphireTest extends TestCase implements TestOnly return $this->requireDefaultRecordsFrom; } + /** + * Called after the database is created, but before fixtures are loaded. + */ + public function onBeforeLoadFixtures(): void + { + // no-op - this method is intended to be overridden by subclasses. + } + /** * Setup the test. * Always sets up in order: diff --git a/src/Dev/State/FixtureTestState.php b/src/Dev/State/FixtureTestState.php index 441f212c3..2488c5f17 100644 --- a/src/Dev/State/FixtureTestState.php +++ b/src/Dev/State/FixtureTestState.php @@ -63,6 +63,7 @@ class FixtureTestState implements TestState $instance->augmentDefaultRecords(); } } + $test->onBeforeLoadFixtures(); $this->loadFixtures($test); }