Skip to content

IBX-12530: Bootstrapped integration tests through Bootstrapper - #8

Merged
Steveb-p merged 3 commits into
4.6from
bootstrapper-adoption
Sep 10, 2026
Merged

Steveb-p merged 3 commits into
4.6from
bootstrapper-adoption

Conversation

@Steveb-p

@Steveb-p Steveb-p commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator
🎫 Issue IBX-12530

Related PRs:

Description:

Brings this package's integration bootstrap in line with the rest of the org (IBX-12358):
tests/integration/bootstrap.php replaces its bare autoload require with a
Bootstrapper::bootstrap() call, and TestKernel registers IbexaTestCoreBundle so the hook
machinery is available.

Database preparation is switched off via OPTION_PREPARE_DATABASE => false. 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.

Worth being upfront about the payoff: every built-in hook is unsatisfiable here and gets dropped
by RemoveUnsatisfiableHooksPass, so HooksExecutor ends up running zero hooks and the suite
behaves exactly as before (8 tests, 18 assertions, same as on 4.6). What this buys is a
consistent 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 Bootstrapper currently hard-requires an IbexaTestKernel
subclass, which this package deliberately isn't — it has no ibexa/core dependency at all, and
adding one just to satisfy the test bootstrap would be a poor trade for a thin standalone library.
#44 relaxes that to KernelInterface and makes the built-in hooks drop themselves when their
collaborators aren't present; this package is the first consumer of both halves.

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 Steveb-p changed the title Bootstrap integration tests through Bootstrapper Bootstrapped integration tests through Bootstrapper Sep 9, 2026
@Steveb-p Steveb-p changed the title Bootstrapped integration tests through Bootstrapper IBX-12530: Bootstrapped integration tests through Bootstrapper Sep 9, 2026
@Steveb-p
Steveb-p requested a review from a team September 10, 2026 07:48
@Steveb-p
Steveb-p marked this pull request as ready for review September 10, 2026 07:48
@Steveb-p
Steveb-p requested a review from a team September 10, 2026 10:55
ibexa/test-core is merged, so CI resolves it normally again.
@Steveb-p
Steveb-p merged commit fd330dc into 4.6 Sep 10, 2026
10 checks passed
@Steveb-p
Steveb-p deleted the bootstrapper-adoption branch September 10, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants