MCPcopy Create free account
hub / github.com/Permify/permify / calculateEntityCoverage

Function calculateEntityCoverage

pkg/development/coverage/coverage.go:177–221  ·  view source on GitHub ↗

calculateEntityCoverage calculates coverage for a single entity

(ref SchemaCoverage, shape file.Shape)

Source from the content-addressed store, hash-verified

175
176// calculateEntityCoverage calculates coverage for a single entity
177func calculateEntityCoverage(ref SchemaCoverage, shape file.Shape) EntityCoverageInfo {
178 entityCoverageInfo := newEntityCoverageInfo(ref.EntityName)
179
180 // Calculate relationships coverage
181 entityCoverageInfo.UncoveredRelationships = findUncoveredRelationships(
182 ref.EntityName,
183 ref.Relationships,
184 shape.Relationships,
185 )
186 entityCoverageInfo.CoverageRelationshipsPercent = calculateCoveragePercent(
187 ref.Relationships,
188 entityCoverageInfo.UncoveredRelationships,
189 )
190
191 // Calculate attributes coverage
192 entityCoverageInfo.UncoveredAttributes = findUncoveredAttributes(
193 ref.EntityName,
194 ref.Attributes,
195 shape.Attributes,
196 )
197 entityCoverageInfo.CoverageAttributesPercent = calculateCoveragePercent(
198 ref.Attributes,
199 entityCoverageInfo.UncoveredAttributes,
200 )
201
202 // Calculate assertions coverage for each scenario
203 for _, scenario := range shape.Scenarios {
204 uncovered := findUncoveredAssertions(
205 ref.EntityName,
206 ref.Assertions,
207 scenario.Checks,
208 scenario.EntityFilters,
209 )
210 // Only add to UncoveredAssertions if there are uncovered assertions
211 if len(uncovered) > 0 {
212 entityCoverageInfo.UncoveredAssertions[scenario.Name] = uncovered
213 }
214 entityCoverageInfo.CoverageAssertionsPercent[scenario.Name] = calculateCoveragePercent(
215 ref.Assertions,
216 uncovered,
217 )
218 }
219
220 return entityCoverageInfo
221}
222
223// newEntityCoverageInfo creates a new EntityCoverageInfo with initialized fields
224func newEntityCoverageInfo(entityName string) EntityCoverageInfo {

Callers 1

calculateEntityCoveragesFunction · 0.85

Calls 5

newEntityCoverageInfoFunction · 0.85
calculateCoveragePercentFunction · 0.85
findUncoveredAttributesFunction · 0.85
findUncoveredAssertionsFunction · 0.85

Tested by

no test coverage detected