Category coverage identifies the kind of proof present. Detailed transition, permission and invariant obligations and unbound proposals remain in the coverage finding until their individual cases are accounted for.
Exposure does not bypass uniqueness when records are written. The structured interaction rows identify the related capabilities exercised and any remaining gap. Cross-capability workflow seams remain subject to the detailed coverage audit.
Coverage
Rulecovered
Transitioncovered
Validationcovered
Permissioncovered
Edgecovered
Failurecovered
Boundarycovered
Concurrencygap: FND-PFM-MTD-068
Invariantcovered
Interactioncovered
Test Scenarios
11 scenarios proving CAP-PFM-MTD-006; 9 bound to an existing test.
[
{
"do": "Save a smaller set and inspect rules and storage.",
"provenance": "test",
"source": "services-platform:modules/metadata/tests/integration/services/persistence/custom-fields.rules.integration.spec.js#removes the kinds a replacement leaves out"
}
]
Expected
Omitted kinds are gone, kinds are unique and default staff exposure needs no row.
[
{
"do": "Submit unknown and self references and conditions at and beyond the stored size limit.",
"provenance": "test",
"source": "services-platform:modules/metadata/tests/integration/services/persistence/custom-fields.rules.integration.spec.js#refuses a condition naming a field the object does not have, and leaves the rules unchanged"
}
]
Expected
Unknown, self and oversized conditions fail without changing rules; the boundary size succeeds.
Some boats share a property value while another property is unique.
Steps
[
{
"do": "Enable uniqueness for each and repeat with no checker registered.",
"provenance": "test",
"source": "services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.integration.spec.js#refuses a unique rule on a property two records already share, with the count"
}
]
Expected
Duplicates report their count, unique data enables enforcement and an unavailable checker refuses the rule.
Data
Some boats share a property value while another property is unique.
[
{
"do": "Validate public exposure and an unsupported exposure value.",
"provenance": "test",
"source": "services-platform:modules/metadata/tests/unit/custom-object-properties.spec.ts#refuses an exposure off the ladder before the description is read"
}
]
Expected
The supported value succeeds and the other is rejected.
[
{
"do": "Archive the named property before and after changing the dependent condition.",
"provenance": "test",
"source": "services-platform:modules/metadata/tests/integration/services/persistence/custom-fields.rules.integration.spec.js#refuses the archive naming each dependent property and rule, and leaves the field and the rules unchanged"
}
]
Expected
The dependency refusal preserves both field and rules; after correction the archival succeeds.
[
{
"do": "Archive it, read its rules and try replacing them.",
"provenance": "test",
"source": "services-platform:modules/metadata/tests/integration/services/persistence/custom-fields.rules.integration.spec.js#removes a field’s rules when the field is archived"
}
]
Expected
Its own rules disappear and replacement is refused until restoration.
[
{
"do": "Write a field rule.",
"provenance": "test",
"source": "services-platform:modules/metadata/tests/integration/db/custom-field-rules.table.integration.spec.js#moves the tenant’s query description stamp when a rule is written"
}
]
A contact field is referenced by another condition.
Steps
[
{
"do": "Archive the referenced field.",
"provenance": "test",
"source": "services-platform:modules/metadata/tests/integration/services/persistence/custom-fields.rules.integration.spec.js#does not apply to a native object: a contacts field its rule depends on is archived"
}
]
Expected
Archival succeeds despite that dependency.
Data
A contact field is referenced by another condition.
An active object has a unique property and staff and public audience projections.
Steps
[
{
"do": "Enable uniqueness and public exposure, create a record, attempt a normalized duplicate and project the surviving record for both audiences.",
"provenance": "proposed",
"source": [
"services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.integration.spec.js#refuses a unique rule on a property two records already share, with the count",
"services-platform:modules/metadata/tests/unit/custom-object-properties.spec.ts#refuses an exposure off the ladder before the description is read",
"services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.integration.spec.js#refuses a hull number another boat holds, naming the property and the boat",
"services-platform:modules/custom-objects/tests/unit/exposure.spec.ts#shows a portal member the portal and public properties"
]
}
]
Expected
Check the duplicate refusal separately from the audience projection.
Data
An active object has a unique property and staff and public audience projections.
Source
services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.integration.spec.js#refuses a unique rule on a property two records already share, with the count,services-platform:modules/metadata/tests/unit/custom-object-properties.spec.ts#refuses an exposure off the ladder before the description is read,services-platform:modules/custom-objects/tests/integration/services/persistence/custom-object-records.integration.spec.js#refuses a hull number another boat holds, naming the property and the boat,services-platform:modules/custom-objects/tests/unit/exposure.spec.ts#shows a portal member the portal and public properties
11A failed rule save leaves the earlier field definitionfailurebrowsernegativeproposed
The administrator creates a new property through the console.
Steps
[
{
"do": "Allow definition creation, submit an invalid condition in the later rule request and reopen the property.",
"provenance": "proposed",
"source": "specs/platform/metadata/design/workflows/WF-PFM-MTD-003-save-a-field-definition-and-its-rules.md:hops"
}
]
Expected
The new definition remains stored and the invalid rule set is absent; the person can correct and retry it.
Data
The administrator creates a new property through the console.