# Shot Bulk Status Consistency Test

# Shot Bulk Status Consistency - Test Plan

## 🎯 Issue Fixed

The bulk task status change popover was showing only system statuses (TaskStatus enum values) while the individual EditableTaskStatus components showed both system and custom statuses from the task statuses store.

### Root Cause:

- Bulk popover used `Object.values(TaskStatus)` - only system statuses
- EditableTaskStatus used `taskStatusesStore.getAllStatusOptions()` - system + custom statuses
- Store was being accessed incorrectly inside column definition (no Vue context)

## 🔧 Solution Implemented

### Changes Made:

- Updated ShotColumnMeta interface to include getAllStatusOptions callback
- Modified ShotBrowser to provide status options from taskStatusesStore
- Added loadTaskStatuses() function to load custom statuses on project change
- Updated bulk popover to use same status source as EditableTaskStatus
- Ensured TaskStatusBadge component consistency across both interfaces

// Before (only system statuses): Object.values(TaskStatus).map((status) => ...) // After (system + custom statuses): meta.getAllStatusOptions?.().map((statusOption) => ...)

## 🧪 Test Scenarios

### Test 1: Status List Consistency

1. Navigate to shot table with task columns visible
2. Click on any individual task status dropdown (EditableTaskStatus)
3. Note the available status options and their colors
4. Close the dropdown
5. Select multiple shots
6. Click the bulk action button in the same task column header
7. Compare the status options in the bulk popover

Expected: Both lists should be identical - same statuses, same colors, same order

### Test 2: Custom Status Support

1. Ensure the project has custom task statuses configured
2. Verify individual EditableTaskStatus shows custom statuses
3. Verify bulk popover also shows the same custom statuses
4. Test bulk updating to a custom status
5. Verify all selected shots update to the custom status

Expected: Custom statuses work in both individual and bulk operations

### Test 3: Status Badge Appearance

1. Compare status badge colors between individual and bulk interfaces
2. Verify custom status colors are preserved
3. Check that compact styling is consistent
4. Test with different status types (system vs custom)

Expected: Identical visual appearance and colors across both interfaces

## 📊 Status Comparison

Status Type | Individual EditableTaskStatus | Bulk Popover (Fixed) | Source
--- | --- | --- | ---
System Statuses | Not Started In Progress Submitted Approved Retake | Not Started In Progress Submitted Approved Retake | taskStatusesStore.getAllStatusOptions()
Custom Statuses | Custom Status | Custom Status | taskStatusesStore.getAllStatusOptions()

## 🔄 Data Flow

### Updated Architecture:

ShotBrowser Component: ├── taskStatusesStore.fetchProjectStatuses() // Load on project change ├── createStableMeta() │ └── getAllStatusOptions: () => taskStatusesStore.getAllStatusOptions() ├── Shot Columns │ ├── EditableTaskStatus (individual) │ │ └── Uses: taskStatusesStore.getAllStatusOptions() │ └── Bulk Popover │ └── Uses: meta.getAllStatusOptions() // Same source!

### Key Benefits:

- Single source of truth for all task statuses
- Automatic custom status support in bulk operations
- Consistent colors and styling across interfaces
- Proper Vue reactivity and store integration
- Future-proof for new custom statuses

## ✅ Acceptance Criteria

- Bulk popover shows identical status list as individual EditableTaskStatus
- Custom task statuses appear in both individual and bulk interfaces
- Status colors and styling are consistent across both interfaces
- TaskStatusBadge component renders identically in both contexts
- Bulk operations work with both system and custom statuses
- Status list updates automatically when custom statuses change
- No console errors or warnings related to store access

## 🚀 Ready for Testing

The shot bulk status change functionality now uses the same task status source as the individual EditableTaskStatus components, ensuring complete consistency between individual and bulk operations.

Key Improvement: Users will now see the same comprehensive list of task statuses (including custom ones) in both the individual dropdowns and bulk action popovers, providing a unified and consistent experience across the application.