Here is some analysis of eclipses on other planets. We want to compare the angular diameter of the Sun to the angular diameter of the moon in question, when observed from the "surface" of the planet in question.
angularDiameterSun[entity_] := angularDiameterSun[entity] =
Quantity[SetPrecision[ArcTan[StarData["Sun", "Diameter"]/
PlanetData[PlanetaryMoonData[entity, "OrbitCenter"],
"DistanceFromSun"]]/Degree, 2], "AngularDegree"]
We use the semimajor axis of the moon's orbit as an estimate of the moon's distance from its host planet:
angularDiameterMoon[entity_] := angularDiameterMoon[entity] =
With[{data = PlanetaryMoonData[ entity, {"Diameter", "SemimajorAxis", "OrbitCenter"}]},
If[QuantityQ[#[[1]]], Quantity[SetPrecision[ArcTan[#[[1]]/(#[[2]] - PlanetData[#[[3]], "Radius"])]/Degree, 2],
"AngularDegree"], #[[1]]] & /@ data]
coverageratio[entity_] :=
If[QuantityQ[#[[1]]], #[[1]]/#[[2]], #[[1]]] & /@
Transpose[{angularDiameterMoon[entity], angularDiameterSun[entity]}]
Here, we generate a grid showing that the ratio of the angular diameter of the Moon to the Sun is essentially 1. So, the Moon just basically covers the Sun during an eclipse.
With[{ents = EntityList[EntityClass["PlanetaryMoon", "EarthMoon"]]},
With[{list = Reverse@SortBy[ Transpose[{ents, angularDiameterSun[ents],
angularDiameterMoon[ents], coverageratio[ents]}], #[[4]] &]},
Grid[Prepend[TakeLargestBy[list, #[[4]] &, Min[Length[list], 10]],
Text /@ {"moon", "Sun angular diameter", "moon angular diameter", "ratio"}], Dividers -> All]]]

Mars only has 2 moons. Phobos, the larger of the 2, covers about 60% of the Sun during an eclipse:
With[{ents = EntityList[EntityClass["PlanetaryMoon", "MarsMoon"]]},
With[{list = Reverse@SortBy[ Transpose[{ents, angularDiameterSun[ents],
angularDiameterMoon[ents], coverageratio[ents]}], #[[4]] &]},
Grid[Prepend[TakeLargestBy[list, #[[4]] &, Min[Length[list], 10]],
Text /@ {"moon", "Sun angular diameter", "moon angular diameter", "ratio"}], Dividers -> All]]]

And for Jupiter we have:
With[{ents = EntityList[EntityClass["PlanetaryMoon", "JupiterMoon"]]},
With[{list = Reverse@SortBy[ Transpose[{ents, angularDiameterSun[ents],
angularDiameterMoon[ents], coverageratio[ents]}], #[[4]] &]},
Grid[Prepend[TakeLargestBy[list, #[[4]] &, Min[Length[list], 10]],
Text /@ {"moon", "Sun angular diameter", "moon angular diameter", "ratio"}], Dividers -> All]]]
