require "application_system_test_case" class ExpensesTest < ApplicationSystemTestCase setup do @expense = expenses(:monthly_expense) login(users(:one).email) end test "visiting the index" do visit expenses_url assert_selector "h1", text: "Expenses" end test "should create expense" do visit expenses_url click_on "New expense" if @expense.credit_card find("label.toggle-label[for='expense_credit_card']").click end fill_in "Description", with: @expense.description check "Estimated" if @expense.estimated fill_in "Payment", with: @expense.payment select @expense.period.capitalize, from: "Period" click_on "Create Expense" assert_text "Expense was successfully created" click_on "Back" end test "should update Expense" do visit expense_url(@expense) click_on "Edit expense", match: :first if @expense.credit_card find("label.toggle-label[for='expense_credit_card']").click end fill_in "Description", with: @expense.description check "Estimated" if @expense.estimated fill_in "Payment", with: @expense.payment select @expense.period.capitalize, from: "Period" click_on "Update Expense" assert_text "Expense was successfully updated" click_on "Back" end test "should destroy Expense" do visit expense_url(@expense) accept_prompt { click_on "Delete expense", match: :first } assert_text "Expense was successfully destroyed" end end