Rspec-rails: `format:: js` causa falhas no Rails 4.1.0.rc1

Criado em 9 mar. 2014  ·  6Comentários  ·  Fonte: rspec/rspec-rails

As especificações do controlador para ações JS ( format: :js ) estão falhando com Rails 4.1.0.rc1, produzindo o seguinte erro:

ActionController::InvalidCrossOriginRequest:
       Security warning: an embedded <script> tag on another site requested protected JavaScript. If you know what you're doing, go ahead and disable forgery protection on this action to permit cross-origin JavaScript embedding.

Estou apenas supondo, mas este pode ser um novo recurso do Rails que está afetando o RSpec e que provavelmente gera essas solicitações de um domínio diferente do esperado pelo aplicativo.

Você pode reproduzir isso clonando https://github.com/mezuro/mezuro , no branch rails4.1, após bundle install , execute: rspec spec/controllers/repositories_controller_spec.rb .

Observando esta aplicação, posso dizer que isso afeta as solicitações GET, enquanto as solicitações POST ainda funcionam bem.

Executar o aplicativo no navegador não gera erros ou avisos, bem como testes de pepino. E os testes com Rails 4.0.3 estão OK. Além disso, testei isso com rspec-rails 2.14.1 e 3.0.0.beta com os mesmos resultados.

Muito obrigado!

Comentários muito úteis

Última atualização , agora você pode usar:
(ruby) get :action, xhr: true, format: :js

Todos 6 comentários

Causa: trilhos / trilhos # 13345

Com base no PR, parece que você precisa fazer xhr :get vez de get , ou passar manualmente o token de verificação. Nós não implementamos diretamente a função get , ela faz parte dos ajudantes de teste do Rails, então você deve usar o método preferido deles ( xhr :get ).

Fechando porque também falharia no MiniTest ...

/ cc @myronmarston @alindeman

Obrigado @JonRowe , com xhr :get funcionou como esperado. Desculpe pela inconveniência.

Não se preocupe, eu tive que pesquisar isso para descobrir o que estava acontecendo! :)

Isso é útil
http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#csrf -protection-from-remote-script-tags

Última atualização , agora você pode usar:
(ruby) get :action, xhr: true, format: :js

Esta página foi útil?
0 / 5 - 0 avaliações