Rails + Rspe c: тест не пройден из-за Javascript 'unsafe-eval' на странице с Vue. js - PullRequest
1 голос
/ 26 января 2020

Я пытаюсь запустить простой тест, который просто заполняет форму и отправляет, используя RSpe c, Capybara и Chromedriver. Тем не менее, Javascript на странице не удается правильно скомпилировать, поэтому форма не может полностью отрисоваться.

После большого количества устранения неполадок я сузил проблему до некоторого кода Vue. js, который определяет открыто ли меню или закрыто:

new Vue({
  el: '#dashboard-topbar',
  data: {
    showDropdown: false
  }
})

Меню в основном просто проверяет, является ли showDropdown истинным или ложным для переключения:

transition name="fade"
  #dropdown_box(v-show="showDropdown" v-cloak)
    ul
      li Some item 1
      li Some item 2

= link_to fa_icon('chevron-down'), '#', '@blur': 'showDropdown=false', '@click': 'showDropdown=true'

Я проверил Chrome как он выполнял этот тест и получил следующую ошибку:

Chrome fails to render the JS on the page because 'unsafe-eval' is not allowed

Другими словами, кажется, Chrome не нравится v-show="showDropdown".

Мой config/initializers/content_security_policy.rb файл выглядит следующим образом:

Rails.application.config.content_security_policy do |policy|
  if Rails.env.development?
    policy.script_src :self, :https, :unsafe_eval
  else
    policy.script_src :self, :https
  end
end

Кто-нибудь знает, как я могу это исправить?

Версии пакета:

rails 6.0.2.1
capybara 3.30.0
capybara-selenium 0.0.6
webdrivers 4.2.0
selenium-webdriver 3.142.7

Заранее спасибо!

...