Capybara + Phantomjs = completado 401 no autorizado -- ruby-on-rails campo con rspec campo con capybara campo con phantomjs campo con poltergeist camp Relacionados El problema

Capybara+phantomjs = Completed 401 Unauthorized


1
vote

problema

Español

Estoy tratando de probar una creación de PageVote. Funciona bien: el usuario hace clic en una imagen, PageVote se crea

Pero la prueba con Capybara y Phantomjs no funciona = (

Aquí está la prueba:

  it "should change the PageVote after clicking on a vote link", js: true do    visit page_path( @page, locale: :ru )    expect( PageVote.count ).to eq(0)    find("#vote-5").click    expect( PageVote.count ).to eq(1) end   

el controlador

  def create     Rails.logger.debug "Count before: " + PageVote.count.to_s     @page = Page.find( params[ :page ] )     @vote = PageVote.new( ip_address: request.env['REMOTE_ADDR'], vote: params[ :vote ], page: @page )     @vote.save      Rails.logger.debug "Count after: " + PageVote.count.to_s      respond_to do |format|       format.html { redirect_to page_path( @page ) }       format.js     end end   

y los registros de la prueba son

  Started POST "/ru/page_votes?page=1&vote=5" for 127.0.0.1 at 2014-11-25 22:51:04 +0300 [1m[35m (9.0ms)[0m  SELECT COUNT(*) FROM "page_votes" Processing by PageVotesController#create as JS Parameters: {"page"=>"1", "vote"=>"5", "locale"=>"ru"}   

[1m [36m (2.0ms) [0m [1Mrollback [0m [0m [1M [35M (1.0ms) [SELECCIONAR EL CUENTA () de "PAGE_VOTES" Cuenta antes: 0 [1M [36MPage Carga (2.0ms) [0m [1mselect "Pages". de "Páginas" Entrada interna "Page_Translations" en "Page_Translations". "Page_ID" = "Páginas". "ID" donde "PAGE_TRANSLATIONS" . "Locale" = 'RU' y "Páginas". "ID" = $ 1 Límite 1 [0m [["ID", 1]] [1M [35MPage :: Cargar de traducción (1.0ms) [0m Seleccione "Page_Translations". * De "Page_Translations" donde "Page_Translations". "PAGE_ID" IN (1) [1m [36M (2.0ms) [0m [1Mbegin [0m [0m [1M [35M (0.0ms) [commitir 0m Completado 401 no autorizado en 38 ms

No se requiere autenticación para hacer una votación.

¿Alguien sabe qué hacer?

Original en ingles

I'm trying to test a creation of PageVote. It works just fine: user clicks on an image, PageVote gets created

But testing it with capybara and phantomjs doesnt work =(

here is the test:

it "should change the PageVote after clicking on a vote link", js: true do    visit page_path( @page, locale: :ru )    expect( PageVote.count ).to eq(0)    find("#vote-5").click    expect( PageVote.count ).to eq(1) end 

the controller

def create     Rails.logger.debug "Count before: " + PageVote.count.to_s     @page = Page.find( params[ :page ] )     @vote = PageVote.new( ip_address: request.env['REMOTE_ADDR'], vote: params[ :vote ], page: @page )     @vote.save      Rails.logger.debug "Count after: " + PageVote.count.to_s      respond_to do |format|       format.html { redirect_to page_path( @page ) }       format.js     end end 

And logs for the test are

Started POST "/ru/page_votes?page=1&vote=5" for 127.0.0.1 at 2014-11-25 22:51:04 +0300 [1m[35m (9.0ms)[0m  SELECT COUNT(*) FROM "page_votes" Processing by PageVotesController#create as JS Parameters: {"page"=>"1", "vote"=>"5", "locale"=>"ru"} 

[1m[36m (2.0ms)[0m [1mROLLBACK[0m [1m[35m (1.0ms)[0m SELECT COUNT() FROM "page_votes" Count before: 0 [1m[36mPage Load (2.0ms)[0m [1mSELECT "pages". FROM "pages" INNER JOIN "page_translations" ON "page_translations"."page_id" = "pages"."id" WHERE "page_translations"."locale" = 'ru' AND "pages"."id" = $1 LIMIT 1[0m [["id", 1]] [1m[35mPage::Translation Load (1.0ms)[0m SELECT "page_translations".* FROM "page_translations" WHERE "page_translations"."page_id" IN (1) [1m[36m (2.0ms)[0m [1mBEGIN[0m [1m[35m (0.0ms)[0m COMMIT Completed 401 Unauthorized in 38ms

There is no authentication required to make a vote.

Does anybody knows what to do?

              

Lista de respuestas

1
 
vote

Terminé con la verificación de la salida, en lugar del conteo de modelos

  expect(page).to have_content("...")   

Si alguien sabe, cómo verificar el conteo, es muy bienvenido =)

 

I ended up with checking for output, rather than the model count

expect(page).to have_content("...") 

If anyone knows, how to check the count - you're very welcome =)

 
 

Relacionados problema

2  Rails Poltergeist / Phantomjs No renderizado www.example.com  ( Rails poltergeist phantomjs not rendering www example com ) 
Fondo a continuación es test/integration/projects_test.rb . Necesitamos un usuario de inicio de sesión para acceder a projects_url . setup do ... l...

1  Las pruebas de JavaScript se rompen al cambiar de selenio a poltergeist  ( Javascript tests break when switching from selenium to poltergeist ) 
Tengo algunas pruebas de características que se están rompiendo completamente una vez que cambié de selenio al poltergeist. Lo interesante es que la rotura se...

1  Capybara :: Poltergeist :: StativefailError  ( Capybarapoltergeiststatusfailerror ) 
Estoy tratando de usar puffing-billy GEM CON poltergeist Y tengo algunos problemas con eso. Mi capybara_helper.rb contiene código siguiente: Billy.co...

29  ¿Cómo devolver un valor al usar ejecuto_script en Capybara?  ( How to return a value when using execute script in capybara ) 
Tengo una línea realmente simple en una prueba que llama a ejecutar script como este: puts page.execute_script("return somefunction();").to_i.inspect y...

1  Al usar Capybara / Polltergeist, cómo acceder a la hilo de la aplicación con PRY  ( When using capybara poltergeist how to access application thread with pry ) 
Estoy ejecutando pruebas en una aplicación de Rails y Emberjs y tienen: JS = & GT; Verdadero conjunto en mis pruebas. Puedo dejar un vinculante. En la especif...

5  Rspec + capybara opcionalmente cambia el controlador JS  ( Rspeccapybara optionally change js driver ) 
Yo uso Poltergeist / Phantomjs para CI, pero quiero poder cambiar opcionalmente el controlador JS a Selenium para ver que mi prueba se ejecuta localmente. Ide...

0  Capybara.javascript_driver =: Poltergeist que no muestra el navegador durante las pruebas  ( Capybara javascript driver poltergeist not showing browser during testing ) 
Estoy tratando de probar usando poltergeist, pero el navegador no se muestra cuando ejecuto mis pruebas. Este es mi spec_helper.rb : # This file is copi...

1  Capybara / Poltergeist Redirigiendo a una URL externa (sin buscarla)  ( Capybara poltergeist redirecting to an external url not fetching it ) 
Tengo una aplicación que, en algún momento, redirige a un sitio web diferente, en un dominio diferente. Estoy tratando de probarlo con Capybara y Poltergeist ...

0  Capybara Polltergeist no alterna desoladas después de hacer clic  ( Capybara poltergeist doesnt toggle dropdowns after click ) 
Tengo un sitio web de bootstrap y por alguna razón, los desplegamientos dejaron de funcionar. mi abandono <li class="dropdown nav-item"> <a id="toggl...

0  Capybara con poltergeist (Phantomjs) no representa la página y las fuentes correctamente  ( Capybara with poltergeist phantomjs not rendering page and fonts correctly ) 
La configuración en spec_helper.rb es: require 'capybara/poltergeist' Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos