require "rails_helper" RSpec.describe "Admin manages profile fields" do let(:admin) { create(:user, :super_admin) } let!(:profile_field_group) { create(:profile_field_group, name: "Delete Me") } let(:label) { "Delete Me Too" } before do create(:profile_field, profile_field_group: profile_field_group, label: label) Profile.refresh_attributes! sign_in admin visit admin_profile_fields_path end it "adds a profile group" do click_button "Add group" find("#add-group-modal #profile_field_group_name").set("Example group") click_on "Create Profile field group" expect(page).to have_text("Successfully created group: Example group") end it "adds a profile field" do group_name = profile_field_group.name.gsub(/\s+/, "_") within(find("#profile-field-group-#{profile_field_group.id}")) do click_button("Add Field") input = find("#add-#{group_name}-profile-field-modal #profile_field_label") input.set("Example field") click_on "Create Profile field" end expect(page).to have_text("Profile field Example field created") end it "deletes a profile_field_group" do find("#profile-field-group-#{profile_field_group.id}").click_button("Delete Group") expect(page).to have_text("Group #{profile_field_group.name} deleted") end it "deletes a profile_field" do profile_field = ProfileField.find_by(label: label) expect(page).to have_text(profile_field.label.to_s) find("#profile-field-group-summary-#{profile_field_group.id}").click find("#profile-field-summary-#{profile_field.id}").click find("#profile-field-#{profile_field.id}").click_button("Delete Profile Field") expect(page).to have_text("Profile field #{label} deleted") end end