Skip to content

Implement plan 2026-03-13_21-39_fixture-app-graphql-e2e-service-locator - #19

Merged
bpteam merged 1 commit into
masterfrom
2026-03-13_21-39_fixture-app-graphql-e2e-service-locator
Mar 13, 2026
Merged

bpteam merged 1 commit into
masterfrom
2026-03-13_21-39_fixture-app-graphql-e2e-service-locator

Conversation

@bpteam

@bpteam bpteam commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

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": []
}

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
bpteam force-pushed the 2026-03-13_21-39_fixture-app-graphql-e2e-service-locator branch from 587880b to 92df85e Compare March 13, 2026 23:55
@bpteam
bpteam merged commit 7c81316 into master Mar 13, 2026
3 checks passed
@bpteam
bpteam deleted the 2026-03-13_21-39_fixture-app-graphql-e2e-service-locator branch March 13, 2026 23:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant