fix(020_17/18/19/20): pair temporal POST with current-state POST in setup
Per testsuite-doubts.md #9 (closed): each test's Create Temporal Entity setup
only did POST /temporal/entities; the body's DELETE /entities/{id}/attrs/{name} then 404'd because the entity had no
current-state representation. No deletedAt tombstone was written, so
the temporal-evolution assertion failed for the entire 020_17..020_20
cluster (8 test cases).
Changes:
- Two new minimal current-state fixtures matching the temporal payloads:
-
data/entities/vehicle-different-attribute-types.jsonldfor the fuelLevel/isParkedIn/name family (020_17, 020_18). -
data/entities/vehicle-with-scope.jsonldfor the scope family (020_19, 020_20).
-
- In all four
Create Temporal Entitysetups: prepend aCreate Entitycall with the matching fixture, asserting 201 on creation. Document inline why the pair is necessary (spec § 10.2.7 vs § 11.2.2). - The subsequent
POST /temporal/entitiesis now valid to return 201 (created) or 204 (appended to existing) per TS 104-175 § 11.2.2.5, so the strict 201 check is relaxed to aShould Be True ... in ["201", "204"].
Result: 020_17_01 (Property) and 020_18_01 (Property + temporalValues)
pass. The four non-Property cases (Relationship/LanguageProperty/Scope)
still fail, but on a different root cause now surfaced — a broker bug
where the deletedAt tombstone collapses all attribute kinds into
Property with urn:ngsi-ld:null, losing the original kind. That
broker fix belongs in its own MR; documented as a new testsuite-doubts
entry alongside the marker on #9 (closed).