检查在HyperSpec中项目是否为“可点击的”

Mit*_*uyn 5 ruby ruby-on-rails reactjs hyperstack

我有一个像这样的Hyperstack组件:

      render do
        LI(class: class_names, title: conflicts || '',
           data: { toggle: :tooltip, placement: 'auto left', container: :body }) do
          DIV(class: 'row paper-row') do
            DIV(class: 'col-sm-12 text-left') do
              P(class: 'medium-weight', id: 'tp_envelopes') { params.envelope.name }
            end
          end
        end.on(:click) { select_envelope }
      end
Run Code Online (Sandbox Code Playgroud)

我希望on(:click)处理程序是有条件的,如果该conflicts方法返回一个非nil值。

我也想知道如何在hyperspec / capaybara中进行测试……即如何检查html元素是否响应:click事件?

小智 3

您可以通过使用有条件地关闭/打开点击处理程序

end.tap { |item| item.on(:click) { select_envelope } unless conflicts }
Run Code Online (Sandbox Code Playgroud)

取代

end.on(:click) { select_envelope }
Run Code Online (Sandbox Code Playgroud)