オンラインでいくつかの情報を見つけようとしましたが、関連する情報はまだ見つかりませんでした。ERB ファイルに、すべての行がインスタンス変数の配列反復に依存するテーブルがあります。例:
show.html.erb
<% if @line_items.present? %>
<% @line_items.each do |line_item| %>
<table>
....
<td>SKU</td>
<td><%= line_item.name %></td>
<td id="amount"><%= number_to_currency(price_amount) %></td>
<td id="tax"><%= number_to_currency(tax_amount) %></td>
<td id="total"><%= number_to_currency(total) %></td>
<% end %>
<% end %>
この場合、 line_item はアプリのモデルではありません。line_items は、gRPC エンドポイントの応答として送信されます。例:
line_items_controller.rb#show
def show
@line_items = MyApp::GrpcEndoping.get_line_items(params: params)
end
フロントエンドテーブルとその動作をテストできるように、ヒノキのテストで項目のインスタンス変数をモックする方法を知りたいです。
何かのようなもの:
line-items.spec.js
it("then the line items table should be visible", function() {
cy.visit(showPage(line_item.id))
cy.setInstanceVariable({ line_items: {...}).as('@line_items')
cy.reload()
cy.get(`[data-test-id="line-items-table"]`).should("be.visible")
})