3

Je reçois cette erreur sur une douzaine de spécifications défaillantes. D'autres développeurs de mon équipe (et notre CI) ne voient pas ces spécifications défaillantes, donc c'est un problème local à mon kit.RSpec: échec Cabybara Webkit InvalidResponseError

Edit: première 6 lignes sont un extrait de capybara de-webkit: pilote webkit_debug:

... 
Started request to "https://dialog.filepicker.io/dialog/comm_iframe/" 
Started request to "https://www.filepicker.io/dialog/comm_iframe/" 
Received "Evaluate((typeof angular !== 'undefined') && angular.element(document.querySelector('[ng-app]')).length > 0)" 
"TimeoutCommand" waiting for load to finish 
Received 0 from "https://dialog.filepicker.io/dialog/comm_iframe/" 
Page finished with false 
... 

    1) User edits profile information 
    Failure/Error: click_on t('users.edit') 
    Capybara::Webkit::InvalidResponseError: 
     Unable to load URL: http://127.0.0.1:53899/myprofile?as=1089 because of error loading https://dialog.filepicker.io/dialog/comm_iframe/: Unknown error 
    # ./spec/features/users_spec.rb:30:in `block (2 levels) in <top (required)>' 
    # ./spec/support/background_jobs.rb:14:in `block (3 levels) in <top (required)>' 
    # ./spec/support/background_jobs.rb:5:in `run_background_jobs_immediately' 
    # ./spec/support/background_jobs.rb:13:in `block (2 levels) in <top (required)>' 

Comment puis-je résoudre ce? Est-ce en quelque sorte lié à AngularJS?!?

Édition2: l'erreur est renvoyée sur le chemin visit (voir ci-dessous). Ajouter save_and_open_page une ligne avant ouvre juste une page vide. Mettre n'importe quoi après la ligne 30 n'est jamais appelé à cause d'une erreur. Ajouter binding.pry sur 29 me permet de consoler mais je ne suis pas vraiment sûr de ce que je devrais rechercher pour résoudre ce problème.

 25: scenario 'edits profile information', js: true do 
    26:  new_avatar = 'http://example.com/avatar.png' 
    27:  user = create(:user) 
    28: 
    => 29:  binding.pry 
    30:  visit myprofile_path(as: user) 
    31:  click_on t('users.edit') 
    32:  edit_profile(name: 'Edit User', avatar: new_avatar) 
    33:  visit myprofile_path 
    34: 
    35:  expect(page).to have_text('Edit User') 
+0

ajouter un save_and_open_page avant l'erreur et voir si vous êtes sur la bonne page avec les bons éléments. – forthowin

+0

'save_and_open_page' ne semble rien faire ... – Meltemi

+0

ajoutez gem 'launchy' dans votre gemfile et réessayez – forthowin

Répondre

3

Nous avons fini bloquer ces demandes tout à fait spec_helper.rb:

config.before :each, js: true do 
    page.driver.browser.url_blacklist = [ 
     "https://dialog.filepicker.io", 
     "https://www.filepicker.io" 
    ] 
    end