# frozen_string_literal: true require "test_helper" class SuccessCriteriaControllerTest < ActionDispatch::IntegrationTest def login(email, password) post "/login", params: { email: email, password: password } assert_redirected_to "/" end def logout post "/logout" assert_redirected_to "/" end teardown do logout end setup do @success_criterion = success_criteria(:one) Account.create(email: "test@example.com", password: "password") login("test@example.com", "password") end test "should get index" do get element_success_criteria_url(@success_criterion.element) assert_response :success end test "should get new" do get new_element_success_criterion_url(@success_criterion.element) assert_response :success end test "should create success_criterion" do assert_difference("SuccessCriterion.count") do post element_success_criteria_url(@success_criterion.element), params: { success_criterion: { check_id: @success_criterion.check_id } } end assert_redirected_to success_criterion_url(SuccessCriterion.last) end test "should show success_criterion" do get success_criterion_url(@success_criterion) assert_response :success end test "should get edit" do get edit_success_criterion_url(@success_criterion) assert_response :success end test "should update success_criterion" do patch success_criterion_url(@success_criterion), params: { success_criterion: { test_comment: @success_criterion.test_comment, level: @success_criterion.level, result: @success_criterion.result, title: @success_criterion.title } } assert_redirected_to success_criterion_url(@success_criterion) end test "should destroy success_criterion" do assert_difference("SuccessCriterion.count", -1) do delete success_criterion_url(@success_criterion) end assert_redirected_to element_success_criteria_url(@success_criterion.element) end end