链接未在RSpec功能规范中呈现

时间:2018-05-29 21:56:03

标签: ruby-on-rails rspec bootstrap-4 capybara

以下代码应该呈现一些链接,但是当在RSpec中执行功能规范来测试它时,即使在长时间睡眠之后执行save_and_open_screenshot时链接也不存在它们仍然不会显示起来。执行save_and_open_page确实会显示链接存在。

%nav#sidebar
  = form_with url: entries_path, local: true, method: :get do |f|
    = f.text_field :search
    = button_tag type: 'submit' do
      %i.fas.fa-search
  %ul.nav.flex-column.pb-5.mb-5
    - months.each do |month|
      %li.nav-item
        .nav-link{class: (current_page?(entries_path(month: month.to_date)) && 'active')}
          = link_to month.strftime('%b-%Y'), entries_path(month: month.to_date)

侧栏上的CSS:

@import 'bootstrap'
@import 'fontawesome'

#sidebar
  padding: 10px 0 30px 0
  border-right: 1px solid #ddd
  width: 200px
  border-radius: 0 0 0 4px
  transition: margin .3s

  @include media-breakpoint-down(md)
    position: absolute
    top: 0
    bottom: 0
    z-index: 9
    margin-left: -200px

    &.visible
      margin-left: 0

  .nav-link
    @extend .d-flex
    @extend .align-items-center
    height: 40px
    padding: 0 30px

    &.active
      position: relative
      font-weight: bold

我也在这个项目中使用turbolinks,不知道这是否会干扰规范中链接的呈现。

1 个答案:

答案 0 :(得分:2)

margin-left: -200px部分中的@include media-breakpoint-down(md)看起来像是可能的罪魁祸首。给定特定的屏幕尺寸(不能确定那些来自您发布的内容),侧边栏将隐藏在屏幕的左边缘(因此不可见)。您可能需要为正在运行的测试正确设置浏览器的窗口大小。