Skip to content

Commit dd935ed

Browse files
committed
test: lock fossa analyze top-level keyset invariants
1 parent 2d5f84b commit dd935ed

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

tests/unit/test_fossa_compat.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,3 +217,21 @@ def test_fossa_attribution_payload_shape_is_stable():
217217
"licenseDetails": [{"id": "Apache-2.0"}],
218218
"licenseAttrib": [{"id": "Apache-2.0"}],
219219
}]
220+
221+
222+
def test_analyze_payload_top_level_keys_exactly_four():
223+
"""The composed FOSSA analyze artifact has exactly project/vulnerability/licensing/quality."""
224+
config = CliConfig.from_args(["--api-token", "test", "--legal-format", "fossa"])
225+
diff = Diff() # empty alerts
226+
payload = build_fossa_report_payload(diff, config)
227+
assert set(payload.keys()) == {"project", "vulnerability", "licensing", "quality"}
228+
assert "risk" not in payload
229+
230+
231+
def test_analyze_payload_empty_diff_yields_empty_arrays():
232+
"""An empty diff still emits all 4 keys with `[]` arrays."""
233+
config = CliConfig.from_args(["--api-token", "test", "--legal-format", "fossa"])
234+
payload = build_fossa_report_payload(Diff(), config)
235+
assert payload["vulnerability"] == []
236+
assert payload["licensing"] == []
237+
assert payload["quality"] == []

0 commit comments

Comments
 (0)