# Required data-testid Attributes for Profile Editor

## Overview

This document lists **ALL** required `data-testid` attributes for the Profile Editor form to enable complete automation testing.

**Naming Convention**: `profile_editor__{element_name}`

---

## Page-Level Attributes

| Attribute | Element | Description |
|-----------|---------|-------------|
| `profile_editor__page` | Main container | Page wrapper element |
| `profile_editor__progress_value` | Progress indicator | Shows completion percentage (e.g., "51%") |
| `profile_editor__missing_fields_toggle` | Toggle button | Show/hide missing fields only |

---

## Navigation Buttons

| Attribute | Element | Description |
|-----------|---------|-------------|
| `profile_editor__prev_button` | Previous button | Navigate to previous step |
| `profile_editor__next_button` | Next button | Navigate to next step |
| `profile_editor__cancel_button` | Cancel button | Cancel profile editing |
| `profile_editor__save_button` | Save button | Save current step |

---

## Step 1: Personal Information

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__first_name_input` | First Name | Input | ✅ |
| `profile_editor__last_name_input` | Last Name | Input | ✅ |
| `profile_editor__gender_select` | Gender | Select/Dropdown | ✅ |
| `profile_editor__dob_input` | Date of Birth | Input (Date) | ✅ |
| `profile_editor__roll_number_input` | Roll Number | Input | ✅ |
| `profile_editor__nationality_input` | Nationality | Input | ✅ |
| `profile_editor__language_input` | Language | Input | ⚠️ |
| `profile_editor__student_id_input` | Student ID Number | Input | ⚠️ |
| `profile_editor__student_cpid_input` | Student CPID | Input | ⚠️ |
| `profile_editor__specially_abled_checkbox` | Specially Abled | Checkbox | ⚠️ |

---

## Step 2: Contact Information

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__email_input` | Email | Input | ⚠️ |
| `profile_editor__phone_input` | Phone | Input | ✅ |
| `profile_editor__address_input` | Address | Input/Textarea | ✅ |
| `profile_editor__city_input` | City | Input | ⚠️ |
| `profile_editor__state_input` | State | Input | ⚠️ |
| `profile_editor__zip_code_input` | ZIP Code | Input | ⚠️ |
| `profile_editor__native_state_input` | Native State | Input | ⚠️ |

---

## Step 3: Parent/Guardian Information

### Father's Details

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__father_full_name_input` | Father Full Name | Input | ⚠️ |
| `profile_editor__father_age_range_select` | Father Age Range | Select/Dropdown | ⚠️ |
| `profile_editor__father_occupation_input` | Father Occupation | Input | ⚠️ |
| `profile_editor__father_email_input` | Father Email | Input | ⚠️ |

### Mother's Details

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__mother_full_name_input` | Mother Full Name | Input | ⚠️ |
| `profile_editor__mother_age_range_select` | Mother Age Range | Select/Dropdown | ⚠️ |
| `profile_editor__mother_occupation_input` | Mother Occupation | Input | ⚠️ |
| `profile_editor__mother_email_input` | Mother Email | Input | ⚠️ |

### Guardian (If Different)

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__guardian_different_checkbox` | Guardian is different | Checkbox | ⚠️ |
| `profile_editor__guardian_full_name_input` | Guardian Full Name | Input | ⚠️ |
| `profile_editor__guardian_age_range_select` | Guardian Age Range | Select/Dropdown | ⚠️ |
| `profile_editor__guardian_occupation_input` | Guardian Occupation | Input | ⚠️ |
| `profile_editor__guardian_email_input` | Guardian Email | Input | ⚠️ |

---

## Step 4: Education Details

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__full_name_input` | Full Name | Input | ✅ |
| `profile_editor__current_grade_input` | Current Grade/Class | Input | ⚠️ |
| `profile_editor__section_input` | Section or Stream | Input | ⚠️ |
| `profile_editor__board_stream_select` | Board/Stream | Select/Dropdown | ⚠️ |

---

## Step 5: Focus Areas

### Short-term Focus Areas (Pick 3)

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__short_term_focus_academics` | Academics | Checkbox | ✅ |
| `profile_editor__short_term_focus_family` | Family | Checkbox | ✅ |
| `profile_editor__short_term_focus_health` | Health | Checkbox | ✅ |
| `profile_editor__short_term_focus_friendship` | Friendship | Checkbox | ✅ |
| `profile_editor__short_term_focus_emotional` | Emotional management | Checkbox | ✅ |
| `profile_editor__short_term_focus_personal_growth` | Personal Growth | Checkbox | ✅ |
| `profile_editor__short_term_focus_hobbies` | Hobbies | Checkbox | ✅ |
| `profile_editor__short_term_focus_physical` | Physical Activities | Checkbox | ✅ |
| `profile_editor__short_term_focus_future` | Future Aspiration | Checkbox | ✅ |
| `profile_editor__short_term_focus_others` | Others | Checkbox | ✅ |
| `profile_editor__short_term_focus_others_text` | Others (Text Input) | Input | ⚠️ |

### Long-term Focus Areas (Pick 3)

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__long_term_focus_academics` | Academics | Checkbox | ✅ |
| `profile_editor__long_term_focus_family` | Family | Checkbox | ✅ |
| `profile_editor__long_term_focus_health` | Health | Checkbox | ✅ |
| `profile_editor__long_term_focus_friendship` | Friendship | Checkbox | ✅ |
| `profile_editor__long_term_focus_emotional` | Emotional management | Checkbox | ✅ |
| `profile_editor__long_term_focus_personal_growth` | Personal Growth | Checkbox | ✅ |
| `profile_editor__long_term_focus_hobbies` | Hobbies | Checkbox | ✅ |
| `profile_editor__long_term_focus_physical` | Physical Activities | Checkbox | ✅ |
| `profile_editor__long_term_focus_future` | Future Aspiration | Checkbox | ✅ |
| `profile_editor__long_term_focus_others` | Others | Checkbox | ✅ |
| `profile_editor__long_term_focus_others_text` | Others (Text Input) | Input | ⚠️ |

---

## Step 6: Self-Assessment

### Strengths/Special Skills (Pick 3)

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__strength_quick_learning` | Quick Learning | Checkbox | ✅ |
| `profile_editor__strength_curiosity` | Curiosity | Checkbox | ✅ |
| `profile_editor__strength_problem_solving` | Problem-Solving | Checkbox | ✅ |
| `profile_editor__strength_justice` | Sense of Justice and Fairness | Checkbox | ✅ |
| `profile_editor__strength_empathy` | Empathy | Checkbox | ✅ |
| `profile_editor__strength_risk_taking` | Risk Taking | Checkbox | ✅ |
| `profile_editor__strength_compassion` | Compassion | Checkbox | ✅ |
| `profile_editor__strength_creative` | Creative Skills | Checkbox | ✅ |
| `profile_editor__strength_technical` | Technical Skills | Checkbox | ✅ |
| `profile_editor__strength_leadership` | Leadership | Checkbox | ✅ |
| `profile_editor__strength_communication` | Communication | Checkbox | ✅ |
| `profile_editor__strength_athletic` | Athletic Talents | Checkbox | ✅ |
| `profile_editor__strength_languages` | Languages | Checkbox | ✅ |
| `profile_editor__strength_research` | Research Skills | Checkbox | ✅ |
| `profile_editor__strength_critical_thinking` | Critical Thinking | Checkbox | ✅ |
| `profile_editor__strength_artistic` | Artistic Talent | Checkbox | ✅ |
| `profile_editor__strength_others` | Others | Checkbox | ✅ |
| `profile_editor__strength_others_text` | Others (Text Input) | Input | ⚠️ |

### Areas of Improvement (Pick 3)

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__improvement_quick_learning` | Quick Learning | Checkbox | ✅ |
| `profile_editor__improvement_curiosity` | Curiosity | Checkbox | ✅ |
| `profile_editor__improvement_problem_solving` | Problem-Solving | Checkbox | ✅ |
| `profile_editor__improvement_justice` | Sense of Justice and Fairness | Checkbox | ✅ |
| `profile_editor__improvement_empathy` | Empathy | Checkbox | ✅ |
| `profile_editor__improvement_risk_taking` | Risk Taking | Checkbox | ✅ |
| `profile_editor__improvement_compassion` | Compassion | Checkbox | ✅ |
| `profile_editor__improvement_creative` | Creative Skills | Checkbox | ✅ |
| `profile_editor__improvement_technical` | Technical Skills | Checkbox | ✅ |
| `profile_editor__improvement_leadership` | Leadership | Checkbox | ✅ |
| `profile_editor__improvement_communication` | Communication | Checkbox | ✅ |
| `profile_editor__improvement_athletic` | Athletic Talents | Checkbox | ✅ |
| `profile_editor__improvement_languages` | Languages | Checkbox | ✅ |
| `profile_editor__improvement_research` | Research Skills | Checkbox | ✅ |
| `profile_editor__improvement_critical_thinking` | Critical Thinking | Checkbox | ✅ |
| `profile_editor__improvement_artistic` | Artistic Talent | Checkbox | ✅ |
| `profile_editor__improvement_others` | Others | Checkbox | ✅ |
| `profile_editor__improvement_others_text` | Others (Text Input) | Input | ⚠️ |

---

## Step 7: Hobbies & Clubs

### Hobbies/Interests (Pick 3)

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__hobby_reading` | Reading | Checkbox | ✅ |
| `profile_editor__hobby_musical` | Playing Musical Instruments | Checkbox | ✅ |
| `profile_editor__hobby_sports` | Sports | Checkbox | ✅ |
| `profile_editor__hobby_arts_crafts` | Arts and Crafts | Checkbox | ✅ |
| `profile_editor__hobby_cooking` | Cooking and Baking | Checkbox | ✅ |
| `profile_editor__hobby_gardening` | Gardening | Checkbox | ✅ |
| `profile_editor__hobby_gaming` | Gaming | Checkbox | ✅ |
| `profile_editor__hobby_traveling` | Traveling | Checkbox | ✅ |
| `profile_editor__hobby_volunteering` | Volunteering | Checkbox | ✅ |
| `profile_editor__hobby_learning` | Learning New Skills | Checkbox | ✅ |
| `profile_editor__hobby_singing` | Singing | Checkbox | ✅ |
| `profile_editor__hobby_other` | Other | Checkbox | ✅ |
| `profile_editor__hobby_other_text` | Other (Text Input) | Input | ⚠️ |

### Clubs or Teams

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__club_science` | Science Club | Checkbox | ✅ |
| `profile_editor__club_mathematics` | Mathematics Club | Checkbox | ✅ |
| `profile_editor__club_quiz` | Quiz Club | Checkbox | ✅ |
| `profile_editor__club_literary` | Literary Club | Checkbox | ✅ |
| `profile_editor__club_robotics` | Robotics Club | Checkbox | ✅ |
| `profile_editor__club_art` | Art Club | Checkbox | ✅ |
| `profile_editor__club_music` | Music Club | Checkbox | ✅ |
| `profile_editor__club_dramatics` | Dramatics / Theatre Club | Checkbox | ✅ |
| `profile_editor__club_sports` | Sports Club | Checkbox | ✅ |
| `profile_editor__club_community` | Community Service Club | Checkbox | ✅ |
| `profile_editor__club_mun` | Model United Nations (MUN) | Checkbox | ✅ |
| `profile_editor__club_other` | Other | Checkbox | ✅ |
| `profile_editor__club_other_text` | Other (Text Input) | Input | ⚠️ |

---

## Step 8: Achievements

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__achievement_academics_textarea` | Academics (Please specify) | Textarea | ⚠️ |
| `profile_editor__achievement_sports_textarea` | Sports (Please specify) | Textarea | ⚠️ |
| `profile_editor__achievement_cultural_textarea` | Cultural/Arts (Please specify) | Textarea | ⚠️ |
| `profile_editor__achievement_others_textarea` | Others (Please specify) | Textarea | ⚠️ |

---

## Step 9: Expectations

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__expectation_self_understanding` | Self-Understanding | Checkbox | ✅ |
| `profile_editor__expectation_career_guidance` | Career Guidance | Checkbox | ✅ |
| `profile_editor__expectation_academic_support` | Academic Support | Checkbox | ✅ |
| `profile_editor__expectation_validation` | Validation / Reassurance | Checkbox | ✅ |
| `profile_editor__expectation_decision_making` | Improved Decision-Making | Checkbox | ✅ |
| `profile_editor__expectation_clarity` | Clarity About Strengths and Weaknesses | Checkbox | ✅ |
| `profile_editor__expectation_personal_growth` | Personal Growth | Checkbox | ✅ |
| `profile_editor__expectation_objective_feedback` | Objective Feedback | Checkbox | ✅ |
| `profile_editor__expectation_actionable_steps` | Actionable Next Steps | Checkbox | ✅ |
| `profile_editor__expectation_others` | Others | Checkbox | ✅ |
| `profile_editor__expectation_others_text` | Others (Text Input) | Input | ⚠️ |

---

## Step Navigation Tabs (Optional - for direct navigation)

| Attribute | Element | Type | Required |
|-----------|---------|------|----------|
| `profile_editor__tab_personal_information` | Personal Information Tab | Button/Link | ⚠️ |
| `profile_editor__tab_contact_information` | Contact Information Tab | Button/Link | ⚠️ |
| `profile_editor__tab_parent_guardian` | Parent/Guardian Tab | Button/Link | ⚠️ |
| `profile_editor__tab_education_details` | Education Details Tab | Button/Link | ⚠️ |
| `profile_editor__tab_focus_areas` | Focus Areas Tab | Button/Link | ⚠️ |
| `profile_editor__tab_self_assessment` | Self-Assessment Tab | Button/Link | ⚠️ |
| `profile_editor__tab_hobbies_clubs` | Hobbies & Clubs Tab | Button/Link | ⚠️ |
| `profile_editor__tab_achievements` | Achievements Tab | Button/Link | ⚠️ |
| `profile_editor__tab_expectations` | Expectations Tab | Button/Link | ⚠️ |

---

## Summary

### Total Attributes Required: **~150+**

### Breakdown:
- **Page-Level**: 3 attributes
- **Navigation**: 4 attributes
- **Step 1 (Personal Information)**: 10 attributes
- **Step 2 (Contact Information)**: 7 attributes
- **Step 3 (Parent/Guardian)**: 13 attributes
- **Step 4 (Education Details)**: 4 attributes
- **Step 5 (Focus Areas)**: 22 attributes (11 short-term + 11 long-term)
- **Step 6 (Self-Assessment)**: 36 attributes (18 strengths + 18 improvements)
- **Step 7 (Hobbies & Clubs)**: 26 attributes (13 hobbies + 13 clubs)
- **Step 8 (Achievements)**: 4 attributes
- **Step 9 (Expectations)**: 11 attributes
- **Step Navigation Tabs**: 9 attributes (optional)

---

## Implementation Notes

1. **All interactive elements** (inputs, selects, checkboxes, buttons) must have `data-testid` attributes
2. **Naming convention**: `profile_editor__{element_name}` (lowercase, underscores)
3. **Checkboxes**: Use the exact attribute names listed above
4. **Text inputs**: For "Others" options, include both checkbox and text input attributes
5. **Textareas**: Use `_textarea` suffix for multi-line text inputs
6. **Selects/Dropdowns**: Use `_select` suffix for dropdown elements

---

## Priority

- **✅ Critical**: Required for basic automation
- **⚠️ Important**: Required for complete automation but can be added later

---

## Next Steps

1. **Dev Team**: Add all `data-testid` attributes as per this list
2. **QA Team**: Verify all attributes are present and correctly named
3. **Automation Team**: Update page objects once attributes are added
4. **Testing**: Run complete profile automation flow

---

**Document Version**: 1.0  
**Date**: November 18, 2025  
**Status**: Ready for Dev Implementation

