50 lines
1.7 KiB
JSON
50 lines
1.7 KiB
JSON
{
|
|
"fixtures": [
|
|
{
|
|
"name": "git_three_way_no_conflict",
|
|
"description": "Two parallel subplans modifying different files merge cleanly",
|
|
"merge_strategy": "git_three_way",
|
|
"subplan_a_files": ["src/api.py"],
|
|
"subplan_b_files": ["src/models.py"],
|
|
"expected_conflict": false,
|
|
"expected_merge_result": "success"
|
|
},
|
|
{
|
|
"name": "git_three_way_with_conflict",
|
|
"description": "Two parallel subplans modifying the same file produce a conflict",
|
|
"merge_strategy": "git_three_way",
|
|
"subplan_a_files": ["src/shared.py"],
|
|
"subplan_b_files": ["src/shared.py"],
|
|
"expected_conflict": true,
|
|
"expected_merge_result": "conflict_detected"
|
|
},
|
|
{
|
|
"name": "fail_on_conflict_strategy",
|
|
"description": "Fail-on-conflict strategy raises error on any overlap",
|
|
"merge_strategy": "fail_on_conflict",
|
|
"subplan_a_files": ["src/config.py"],
|
|
"subplan_b_files": ["src/config.py"],
|
|
"expected_conflict": true,
|
|
"expected_error": "MergeConflictError"
|
|
},
|
|
{
|
|
"name": "last_wins_strategy",
|
|
"description": "Last-wins strategy overwrites earlier changes",
|
|
"merge_strategy": "last_wins",
|
|
"subplan_a_files": ["src/settings.py"],
|
|
"subplan_b_files": ["src/settings.py"],
|
|
"expected_conflict": false,
|
|
"expected_merge_result": "last_wins_applied"
|
|
},
|
|
{
|
|
"name": "sequential_apply_no_conflict",
|
|
"description": "Sequential apply merges changes in completion order",
|
|
"merge_strategy": "sequential_apply",
|
|
"subplan_a_files": ["src/handler.py"],
|
|
"subplan_b_files": ["src/handler.py"],
|
|
"expected_conflict": false,
|
|
"expected_merge_result": "sequential_applied"
|
|
}
|
|
]
|
|
}
|