demarches-simplifiees / demarches-simplifiees.fr

Dématérialiser et simplifier les démarches administratives
https://www.demarches-simplifiees.fr
GNU Affero General Public License v3.0
190 stars 89 forks source link

Une spec de types_de_champ_spec échoue aléatoirement #5179

Closed Keirua closed 1 year ago

Keirua commented 4 years ago

Décrivez le bug

Une spec échoue aléatoirement dans ./spec/features/new_administrateur/types_de_champ_spec.rb. Cela casse occasionnellement la CI.

  1) As an administrateur I can edit types de champ Add repetition champ

     Failure/Error: raise ActionController::RoutingError, "No route matches [#{env['REQUEST_METHOD']}] #{env['PATH_INFO'].inspect}"

     ActionController::RoutingError:

       No route matches [PATCH] "/users/sign_in"

Reproduction

git checkout f7201dd17
bundle exec rspec --seed 48147 --profile 10 --format RspecJunitFormatter --out ~/test_results/rspec.xml --format progress spec/controllers/new_administrateur/groupe_instructeurs_controller_spec.rb spec/controllers/api/v1/dossiers_controller_spec.rb spec/controllers/users/dossiers_controller_spec.rb spec/features/users/sign_up_spec.rb spec/controllers/instructeurs/dossiers_controller_spec.rb spec/features/admin/procedure_creation_spec.rb spec/features/new_administrateur/types_de_champ_spec.rb spec/features/users/list_dossiers_spec.rb spec/mailers/dossier_mailer_spec.rb spec/services/dossier_search_service_spec.rb spec/features/admin/procedure_publish_spec.rb spec/controllers/instructeurs/groupe_instructeurs_controller_spec.rb spec/controllers/new_administrateur/procedures_controller_spec.rb spec/helpers/dossier_helper_spec.rb spec/views/users/dossiers/show/_status_overview.html.haml_spec.rb spec/models/concern/mail_template_concern_spec.rb spec/views/shared/dossiers/_champs.html.haml_spec.rb spec/models/champ_spec.rb spec/views/admin/procedures/show.html.haml_spec.rb spec/lib/api_entreprise/etablissement_adapter_spec.rb spec/features/instructeurs/instructeur_creation_spec.rb spec/models/invite_spec.rb spec/controllers/users/sessions_controller_spec.rb spec/services/api_entreprise_service_spec.rb spec/views/shared/attachment/_update.html.haml_spec.rb spec/views/commencer/show.html.haml_spec.rb spec/controllers/manager/administrateurs_controller_spec.rb spec/features/users/managing_password_spec.rb spec/controllers/users/commencer_controller_spec.rb spec/views/users/dossiers/demande.html.haml_spec.rb spec/views/users/dossiers/etablissement.html.haml_spec.rb spec/serializers/dossier_serializer_spec.rb spec/controllers/admin/mail_templates_controller_spec.rb spec/controllers/api_controller_spec.rb spec/views/users/_procedure_footer.html.haml_spec.rb spec/models/commentaire_spec.rb spec/models/assign_to_spec.rb spec/helpers/dossier_link_helper_spec.rb spec/controllers/support_controller_spec.rb spec/models/attestation_template_spec.rb spec/controllers/application_controller_spec.rb spec/lib/helpscout/user_conversations_adapter_spec.rb spec/controllers/manager/users_controller_spec.rb spec/models/service_spec.rb spec/jobs/find_dubious_procedures_job_spec.rb spec/views/layouts/_new_header_spec.rb spec/controllers/concerns/procedure_context_concern_spec.rb spec/controllers/new_administrateur/types_de_champ_controller_spec.rb spec/views/instructeur/dossiers/_state_button_motivation.html.haml_spec.rb spec/controllers/users/confirmations_controller_spec.rb spec/jobs/administrateur_activate_before_expiration_job_spec.rb spec/serializers/procedure_serializer_spec.rb spec/models/groupe_instructeur_spec.rb spec/views/layouts/_navbar_spec.rb spec/controllers/champs/dossier_link_controller_spec.rb spec/serializers/dossiers_serializer_spec.rb spec/controllers/users/activate_controller_spec.rb spec/lib/tasks/deployment/20190306172842_create_default_path_for_brouillons_spec.rb spec/mailers/administration_mailer_spec.rb spec/controllers/users/passwords_controller_spec.rb spec/jobs/weekly_overview_job_spec.rb spec/models/champs/integer_number_champ_spec.rb spec/views/users/dossiers/show/_header.html.haml_spec.rb spec/models/etablissement_spec.rb spec/controllers/administrations/omniauth_callbacks_controller_spec.rb spec/models/types_de_champ/linked_drop_down_list_type_de_champ_spec.rb spec/models/siret_spec.rb spec/helpers/string_to_html_helper_spec.rb spec/models/geo_area_spec.rb spec/services/geojson_service_spec.rb spec/models/drop_down_list_spec.rb spec/models/france_connect_information_spec.rb spec/lib/helpscout/form_adapter_spec.rb spec/models/champs/yes_no_champ_spec.rb spec/lib/universign/api_spec.rb spec/services/render_partial_service_spec.rb spec/controllers/new_administrateur/administrateur_controller_spec.rb spec/jobs/application_job_spec.rb

Ce test case est très long à jouer, je n'ai pour le moment pas réussi à le réduire. On peut peut-être

Keirua commented 4 years ago

Apparement ce n'est pas (uniquement) une question de seed. Avec 48147, je n'ai pas non plus l'erreur systématiquement.

essai 1: ça échoue avec seed 68

$ dev > bin/rspec --seed 68  ./spec/features/new_administrateur/types_de_champ_spec.rb --fail-fast
Running via Spring preloader in process 14868
Run options:
  include {:focus=>true}
  exclude {:disable=>true}

All examples were filtered out; ignoring {:focus=>true}

Randomized with seed 68
F  HTML screenshot: /home/clemk/dev/tps/tmp/capybara/screenshot_2020-05-20-11-07-50.411.html
  Image screenshot: /home/clemk/dev/tps/tmp/capybara/screenshot_2020-05-20-11-07-50.411.png

Failures:

  1) As an administrateur I can edit types de champ Add carte champ
     Got 0 failures and 2 other errors:

     1.1) Failure/Error: wait_until { procedure.types_de_champ.first.cadastres == true }

          NoMethodError:
            undefined method `cadastres' for nil:NilClass
          # ./spec/features/new_administrateur/types_de_champ_spec.rb:125:in `block (3 levels) in <top (required)>'
          # ./spec/support/feature_helpers.rb:106:in `block in wait_until'
          # ./spec/support/feature_helpers.rb:105:in `wait_until'
          # ./spec/features/new_administrateur/types_de_champ_spec.rb:125:in `block (2 levels) in <top (required)>'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:285:in `load'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:285:in `block in load'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:257:in `load_dependency'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/dependencies.rb:285:in `load'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/spring-2.0.2/lib/spring/command_wrapper.rb:38:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/spring-2.0.2/lib/spring/application.rb:201:in `block in serve'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/spring-2.0.2/lib/spring/application.rb:171:in `fork'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/spring-2.0.2/lib/spring/application.rb:171:in `serve'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/spring-2.0.2/lib/spring/application.rb:135:in `run'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>'
          # -e:1:in `<main>'

     1.2) Failure/Error: raise ActionController::RoutingError, "No route matches [#{env['REQUEST_METHOD']}] #{env['PATH_INFO'].inspect}"

          ActionController::RoutingError:
            No route matches [PATCH] "/users/sign_in"
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/railties-5.2.4.2/lib/rails/rack/logger.rb:38:in `call_app'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/railties-5.2.4.2/lib/rails/rack/logger.rb:26:in `block in call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/tagged_logging.rb:71:in `block in tagged'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/tagged_logging.rb:28:in `tagged'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/tagged_logging.rb:71:in `tagged'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/railties-5.2.4.2/lib/rails/rack/logger.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/request_id.rb:27:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/action_dispatch/request_id.rb:12:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/method_override.rb:24:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/runtime.rb:22:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/activesupport-5.2.4.2/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/executor.rb:14:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/actionpack-5.2.4.2/lib/action_dispatch/middleware/static.rb:127:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/sendfile.rb:110:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/rack-mini-profiler-1.0.1/lib/mini_profiler/profiler.rb:171:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/sentry-raven-2.7.4/lib/raven/integrations/rack.rb:51:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/skylight-core-4.2.1/lib/skylight/core/probes/middleware.rb:26:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/railties-5.2.4.2/lib/rails/engine.rb:524:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/urlmap.rb:74:in `block in call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/urlmap.rb:58:in `each'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/rack-2.2.2/lib/rack/urlmap.rb:58:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/capybara-3.29.0/lib/capybara/server/middleware.rb:48:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/puma-3.12.4/lib/puma/configuration.rb:227:in `call'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/puma-3.12.4/lib/puma/server.rb:675:in `handle_request'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/puma-3.12.4/lib/puma/server.rb:476:in `process_client'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/puma-3.12.4/lib/puma/server.rb:334:in `block in run'
          # /home/clemk/.rvm/gems/ruby-2.6.5/gems/puma-3.12.4/lib/puma/thread_pool.rb:135:in `block in spawn_thread'
          # ------------------
          # --- Caused by: ---
          # Capybara::CapybaraError:
          #   Your application server raised an error - It has been raised in your test code because Capybara.raise_server_errors == true
          #   /home/clemk/.rvm/gems/ruby-2.6.5/gems/capybara-3.29.0/lib/capybara/session.rb:158:in `raise_server_error!'

Finished in 6.35 seconds (files took 0.83216 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/features/new_administrateur/types_de_champ_spec.rb:118 # As an administrateur I can edit types de champ Add carte champ

Randomized with seed 68

essai 2: ça marche -_-

$ bin/rspec --seed 68  ./spec/features/new_administrateur/types_de_champ_spec.rb --fail-fast
Running via Spring preloader in process 15273
Run options:
  include {:focus=>true}
  exclude {:disable=>true}

All examples were filtered out; ignoring {:focus=>true}

Randomized with seed 68
.......

Finished in 14.8 seconds (files took 0.58721 seconds to load)
7 examples, 0 failures

Randomized with seed 68
tchak commented 1 year ago

won't fix