IBX-12530: Bootstrapped integration tests through Bootstrapper - #8
Merged
Merged
Conversation
Brings this package in line with the rest of the org's test setups (IBX-12358): tests/integration/ bootstrap.php replaces its bare autoload require with a Bootstrapper::bootstrap() call, and the kernel registers IbexaTestCoreBundle so the hook machinery is available. Database preparation is switched off. This package's TestKernel is a plain Symfony kernel with two in-memory SQLite connections built inline -- no repository, no schema, no fixtures -- so doctrine:database:drop/create have nothing to act on, and every built-in hook is unsatisfiable here and gets dropped by RemoveUnsatisfiableHooksPass. The suite therefore behaves exactly as before; what this buys is a consistent entry point and somewhere to hang a hook if this package ever grows one, not a behavioural change. Requires ibexa/test-core#44 -- until that lands, Bootstrapper hard-requires an IbexaTestKernel subclass, which this package deliberately isn't (it has no ibexa/core dependency at all).
Points CI at the branch that lets Bootstrapper accept any KernelInterface, so this PR's tests can run before that PR merges. Must be removed before merging.
Steveb-p
marked this pull request as ready for review
September 10, 2026 07:48
konradoboza
approved these changes
Sep 10, 2026
ibexa/test-core is merged, so CI resolves it normally again.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related PRs:
Bootstrappercan't accept this package's kernel without itDescription:
Brings this package's integration bootstrap in line with the rest of the org (IBX-12358):
tests/integration/bootstrap.phpreplaces its bare autoloadrequirewith aBootstrapper::bootstrap()call, andTestKernelregistersIbexaTestCoreBundleso the hookmachinery is available.
Database preparation is switched off via
OPTION_PREPARE_DATABASE => false. This package'sTestKernelis a plain Symfony kernel with two in-memory SQLite connections built inline — norepository, no schema, no fixtures — so
doctrine:database:drop/createhave nothing to act on.Worth being upfront about the payoff: every built-in hook is unsatisfiable here and gets dropped
by
RemoveUnsatisfiableHooksPass, soHooksExecutorends up running zero hooks and the suitebehaves exactly as before (8 tests, 18 assertions, same as on
4.6). What this buys is aconsistent entry point with the other packages and somewhere to hang a hook if this one ever grows
a real bootstrap need — not a behavioural change. Happy to drop it if that's not worth the churn.
It needs ibexa/test-core#44 because
Bootstrappercurrently hard-requires anIbexaTestKernelsubclass, which this package deliberately isn't — it has no
ibexa/coredependency at all, andadding one just to satisfy the test bootstrap would be a poor trade for a thin standalone library.
#44 relaxes that to
KernelInterfaceand makes the built-in hooks drop themselves when theircollaborators aren't present; this package is the first consumer of both halves.