Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add failing test for ParseIDs middleware inside mutation #150

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

howleysv
Copy link

I'm not sure exactly how this can be fixed, but figured submitting a failing test could be useful to illustrate the issue.

Basically, the ParseIDs middleware fails when resolving objects below the root payload object in relay mutations.

@howleysv
Copy link
Author

Test error is

  1) test parsing nested ids works with nested id args (Absinthe.Relay.Node.ParseIDsTest)
     test/lib/absinthe/relay/node/parse_ids_test.exs:501
     ** (RuntimeError) Can't find ParseIDs schema root argument :input
     code: |> Absinthe.run(SchemaClassic)
     stacktrace:
       (absinthe_relay) lib/absinthe/relay/node/parse_ids.ex:240: Absinthe.Relay.Node.ParseIDs.find_schema_root!/2
       (absinthe_relay) lib/absinthe/relay/node/parse_ids.ex:216: Absinthe.Relay.Node.ParseIDs.parse/3
       (absinthe_relay) lib/absinthe/relay/node/parse_ids.ex:198: Absinthe.Relay.Node.ParseIDs.call/2
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:230: Absinthe.Phase.Document.Execution.Resolution.reduce_resolution/1
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:185: Absinthe.Phase.Document.Execution.Resolution.do_resolve_field/3
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:170: Absinthe.Phase.Document.Execution.Resolution.do_resolve_fields/6
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:88: Absinthe.Phase.Document.Execution.Resolution.walk_result/5
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:280: Absinthe.Phase.Document.Execution.Resolution.build_result/3
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:170: Absinthe.Phase.Document.Execution.Resolution.do_resolve_fields/6
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:88: Absinthe.Phase.Document.Execution.Resolution.walk_result/5
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:280: Absinthe.Phase.Document.Execution.Resolution.build_result/3
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:170: Absinthe.Phase.Document.Execution.Resolution.do_resolve_fields/6
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:88: Absinthe.Phase.Document.Execution.Resolution.walk_result/5
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:67: Absinthe.Phase.Document.Execution.Resolution.perform_resolution/3
       (absinthe) lib/absinthe/phase/document/execution/resolution.ex:24: Absinthe.Phase.Document.Execution.Resolution.resolve_current/3
       (absinthe) lib/absinthe/pipeline.ex:366: Absinthe.Pipeline.run_phase/3
       (absinthe) lib/absinthe.ex:103: Absinthe.run/3
       test/lib/absinthe/relay/node/parse_ids_test.exs:520: (test)

@benwilson512
Copy link
Contributor

Ah. Yeah, if you're using the classic form it's expecting :input to be there, but that should be restricted to just mutation fields. Good catch, will fix!

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.

2 participants