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

#6161 - Fix (GraphQL): raise exception when blob is missing #6162

Conversation

dzc34
Copy link
Collaborator

@dzc34 dzc34 commented May 3, 2021

Fixed #6161 "ETQ developpeur, je souhaite éviter qu'une exception soit levée par la gem GraphQL lors des tests" / @adullact

Résumé

Lors des tests, une exception est levée par la gem GraphQL

Actuellement

rspec ./spec/controllers/api/v2/graphql_controller_spec.rb:777

Failures:

  1) API::V2::GraphqlController when authenticated mutations dossierEnvoyerMessage upload error should fail
     Failure/Error: expect(gql_errors).to eq(nil)

       expected: nil
            got: [{:backtrace=>["/usr/local/bundle/ruby/2.7.0/gems/graphql-1.12.5/lib/graphql/backtrace/tracer.rb:64:i...]

Comportement attendu

bin/rspec ./spec/controllers/api/v2/graphql_controller_spec.rb
............................................
44 examples, 0 failures

Correctif proposé

Il apparaît que l'appel à ActiveStorage::Blob.find_signed peut à l'occasion retourner la valeur nil. Ce qui, sans contrôle, nous amène à exécuter nil.open au lieu de blob.open à la ligne suivante.

Afin de faire passer avec succès le test incriminé, le correctif présenté ici propose de nous éviter cette déconvenue en levant une exception ActiveSupport::MessageVerifier::InvalidSignature qui sera interceptée par la clause rescue de la méthode appelante.


  • L'ADULLACT a mandaté le prestataire @synbioz pour développer plusieurs fonctionnalités (tickets et PR à venir).
  • C'est dans ce cadre que @synbioz nous propose certains correctifs annexes comme celui-ci.
  • Si c'est nécessaire, @akarzim et @jobygoude de @synbioz pourront interagir avec l'équipe betagouv sur le ticket et sur cette PR (répondre aux commentaires, pousser des commits, ...).

Rebase du code (si nécessaire)

Si besoin nous pouvons faire les rebases et/ou ajouter un utilisateur BetaGouv pour faire le rebase directement sur notre dépôt.


trackingAdullactContrib

Failures:

  1) API::V2::GraphqlController when authenticated mutations dossierEnvoyerMessage upload error should fail
     Failure/Error: expect(gql_errors).to eq(nil)

       expected: nil
            got: [{:backtrace=>["/usr/local/bundle/ruby/2.7.0/gems/graphql-1.12.5/lib/graphql/backtrace/tracer.rb:64:i...]
@kemenaran kemenaran force-pushed the 6161_fix_graphql-validate-blob branch from 82676a0 to cb717ae Compare May 4, 2021 09:26
@kemenaran kemenaran enabled auto-merge May 4, 2021 09:27
@kemenaran kemenaran merged commit 4eadf48 into demarches-simplifiees:main May 4, 2021
@dzc34 dzc34 deleted the 6161_fix_graphql-validate-blob branch May 4, 2021 09:36
@krichtof krichtof mentioned this pull request May 4, 2021
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.

ETQ developpeur, je souhaite éviter qu'une exception soit levée par la gem GraphQL lors des tests
3 participants