require "application_system_test_case" class QuantitiesTest < ApplicationSystemTestCase setup do @user = sign_in(user: users(:alice)) @unit = @user.units.create!(symbol: 'kg') @quantity = @user.quantities.create!(name: 'Weight') visit quantities_path end test "update button turns red when default unit changes" do click_on 'Weight' button = find('button[name=button]') initial_color = evaluate_script("getComputedStyle(arguments[0]).backgroundColor", button) select 'kg', from: 'quantity[default_unit_id]' changed_color = evaluate_script("getComputedStyle(arguments[0]).backgroundColor", button) refute_equal initial_color, changed_color, "Button color should change when default unit is altered" end test "saving default unit pre-selects it in measurements form" do click_on 'Weight' select 'kg', from: 'quantity[default_unit_id]' click_on t('helpers.submit.update') assert_selector '.flash.notice' @quantity.reload assert_equal @unit.id, @quantity.default_unit_id visit measurements_path find(:link_or_button, t('measurements.index.new_measurement')).click assert_selector '#measurement_form' within '#quantity_select' do check 'Weight' end find('button[formaction]').click within 'tbody#readouts' do assert_selector "option[value='#{@unit.id}'][selected]" end end end