absinthe-graphql / absinthe_plug

Plug support for Absinthe, the GraphQL toolkit for Elixir
https://hex.pm/packages/absinthe_plug
MIT License
261 stars 163 forks source link

Ensure module is loaded when fetching default_url #277

Open martosaur opened 1 year ago

martosaur commented 1 year ago

We've run into an issue recently when we were getting ** (RuntimeError) function for default_url: {Elixir.MyModule, graphiql_default_url} is not exported with arity 1 or 0 error. Both the module and the function did exist. After investigation, it turned out that for some reason by the time absinthe_plug was calling function_exported? the module was not loaded and function_exported? does not do this automatically.

So I believe it's worth loading the module explicitly. I also added a test which is a bit clunky, so if you know a better way to create an unloaded module please let me know!