Implement plan 2026-03-13_21-39_fixture-app-graphql-e2e-service-locator - #19
Merged
bpteam merged 1 commit intoMar 13, 2026
Merged
Conversation
isFinished: Yes Implemented end-to-end fixture-app GraphQL HTTP coverage and fixed resolver visibility in the scoped TypeRegistry locator. Root cause fix is in src/DependencyInjection/FlexibleGraphqlExtension.php by adding resolver interface autoconfiguration/tagging so consumer resolvers/directives/union resolvers are tagged for flexible_graphql.type_registry.service_locator. Added real POST /graphql endpoint wiring via tests/fixture-app/src/Kernel.php + Controller/GraphqlController.php, expanded fixture SDL with input+union+directive+mutation, added concrete fixture resolver classes under tests/fixture-app/src/GraphQL/*, and added E2E HTTP test coverage in tests/E2e/FixtureAppHttpGraphqlTest.php with runtime locator assertions. Verified with fixture console commands, PHPUnit, and PHPStan.
bpteam
force-pushed
the
2026-03-13_21-39_fixture-app-graphql-e2e-service-locator
branch
from
March 13, 2026 23:55
587880b to
92df85e
Compare
bpteam
deleted the
2026-03-13_21-39_fixture-app-graphql-e2e-service-locator
branch
March 13, 2026 23:56
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.
isFinished: Yes
Implemented end-to-end fixture-app GraphQL HTTP coverage and fixed resolver visibility in the scoped TypeRegistry locator. Root cause fix is in src/DependencyInjection/FlexibleGraphqlExtension.php by adding resolver interface autoconfiguration/tagging so consumer resolvers/directives/union resolvers are tagged for flexible_graphql.type_registry.service_locator. Added real POST /graphql endpoint wiring via tests/fixture-app/src/Kernel.php + Controller/GraphqlController.php, expanded fixture SDL with input+union+directive+mutation, added concrete fixture resolver classes under tests/fixture-app/src/GraphQL/*, and added E2E HTTP test coverage in tests/E2e/FixtureAppHttpGraphqlTest.php with runtime locator assertions. Verified with fixture console commands, PHPUnit, and PHPStan.
Raw feedback:
{
"feedback": {
"approve": true,
"summary": "Implemented end-to-end fixture-app GraphQL HTTP coverage and fixed resolver visibility in the scoped TypeRegistry locator. Root cause fix is in src/DependencyInjection/FlexibleGraphqlExtension.php by adding resolver interface autoconfiguration/tagging so consumer resolvers/directives/union resolvers are tagged for flexible_graphql.type_registry.service_locator. Added real POST /graphql endpoint wiring via tests/fixture-app/src/Kernel.php + Controller/GraphqlController.php, expanded fixture SDL with input+union+directive+mutation, added concrete fixture resolver classes under tests/fixture-app/src/GraphQL/*, and added E2E HTTP test coverage in tests/E2e/FixtureAppHttpGraphqlTest.php with runtime locator assertions. Verified with fixture console commands, PHPUnit, and PHPStan."
},
"plan": {
"id": "2026-03-13_21-39_fixture-app-graphql-e2e-service-locator",
"assumptions": [
"Resolver visibility issue was caused by missing autoconfiguration/tagging of consumer resolver services for flexible_graphql.type_registry.service_locator.",
"Fixture app can execute in-process HTTP requests through Symfony Kernel without BrowserKit.",
"Directive runtime coverage can be proven through actual directive execution on a query field using generated TypeRegistry."
],
"risks": [
"Fixture GraphQL controller uses GraphQL::executeQuery (not StandardServer) to keep dependency surface minimal in tests.",
"Service ID assertions depend on generated class naming conventions from axtiva/flexible-graphql-php templates."
]
},
"changes": {
"files_changed": [
"src/DependencyInjection/FlexibleGraphqlExtension.php",
"tests/DependencyInjection/FlexibleGraphqlExtensionTest.php",
"tests/fixture-app/bin/console",
"tests/fixture-app/config/graphql/schema.graphql",
"tests/fixture-app/config/services.php",
"tests/fixture-app/src/Kernel.php"
],
"files_added": [
"tests/E2e/FixtureAppHttpGraphqlTest.php",
"tests/fixture-app/autoload.php",
"tests/fixture-app/src/Controller/GraphqlController.php",
"tests/fixture-app/src/GraphQL/Resolver/Query/GreetResolver.php",
"tests/fixture-app/src/GraphQL/Resolver/Query/SearchResolver.php",
"tests/fixture-app/src/GraphQL/Resolver/Mutation/CreateGroupAccountResolver.php",
"tests/fixture-app/src/GraphQL/Directive/UpperDirective.php",
"tests/fixture-app/src/GraphQL/UnionResolveType/SearchResultTypeResolver.php",
"docs/retro.md"
],
"notes": [
"Added resolver autoconfiguration registrations for ResolverInterface, DirectiveResolverInterface, CustomScalarResolverInterface, UnionResolveTypeInterface, federation representation, and federation service/entity resolvers.",
"Extended DI test to assert resolver autoconfiguration includes type_registry service tag.",
"Added fixture app autoloader to load App\ classes from src and generated var/generated.",
"Implemented fixture HTTP /graphql POST endpoint and route registration.",
"Expanded fixture schema to include Query+Mutation with arguments/input, union, and executable directive.",
"Added HTTP E2E test asserting response payloads and locator service availability for non-default resolvers.",
"Reverted unintended changes to tests/fixture-app/config/reference.php caused by cache clear."
]
},
"verification": {
"commands": [
{
"cmd": "composer install",
"ok": true,
"note": "Dependencies already satisfied; autoload files generated."
},
{
"cmd": "php tests/fixture-app/bin/console cache:clear --env=test",
"ok": true,
"note": "Fixture app booted and cache warmer path executed successfully."
},
{
"cmd": "php tests/fixture-app/bin/console flexible_graphql:generate-type-registry --env=test",
"ok": true,
"note": "Generated TypeRegistry and resolver/model files for expanded schema."
},
{
"cmd": "./vendor/bin/phpunit -c phpunit.xml.dist",
"ok": true,
"note": "Final run passed: 9 tests, 68 assertions."
},
{
"cmd": "./vendor/bin/phpstan analyse -c phpstan.neon.dist",
"ok": false,
"note": "Initial run failed due to PHP memory limit (128M)."
},
{
"cmd": "./vendor/bin/phpstan analyse -c phpstan.neon.dist --memory-limit=512M",
"ok": true,
"note": "Passed with increased memory limit."
}
],
"could_not_run": []
},
"retro": {
"written": true,
"path": "docs/retro.md"
},
"blockers": []
}