from domin8.tools.diff_utils import normalize_diff
from domin8.tools.api_impact import analyze_changes
def test_real_world_api_change_add_function():
# Example diff resembling a real-world change: adding a public function
diff = (
'--- a/src/domin8/tools/api_impact.py\n'
'+++ b/src/domin8/tools/api_impact.py\n'
'@@ -1,0 +1,4 @@\n'
'+def public_helper(x, y):\n'
'+ """Public helper for calculations"""\n'
'+ return x + y\n'
)
normalized = normalize_diff(diff)
analysis = analyze_changes(normalized)
per = analysis['per_file'][0]
assert 'public_helper' in per['symbols_added'] or per['public_api_impact'] is True
def test_real_world_ts_export_added():
diff = (
'--- a/src/example.ts\n'
'+++ b/src/example.ts\n'
'@@ -1,0 +1,3 @@\n'
'+export function tsApi(a: number): number {\n'
'+ return a * 2\n'
'+}\n'
)
normalized = normalize_diff(diff)
analysis = analyze_changes(normalized)
per = analysis['per_file'][0]
assert 'tsApi' in per['symbols_added'] or per['public_api_impact'] is True