Complete minimal D&D extraction cutover
This commit is contained in:
@@ -82,7 +82,6 @@ func TestCodecStrictlyRejectsMalformedOrUnknownJSON(t *testing.T) {
|
||||
}{
|
||||
{name: "unknown top-level", raw: `{"npcs":[],"unexpected":true}`, want: "unknown field"},
|
||||
{name: "unknown nested", raw: `{"npcs":[{"id":"x","name":"Mira","source_refs":[{"source_id":"s","start_unit_id":1,"end_unit_id":1}],"unexpected":true}]}`, want: "unknown field"},
|
||||
{name: "removed enrichment", raw: `{"npcs":[{"id":"x","name":"Mira","aliases":[],"source_refs":[{"source_id":"s","start_unit_id":1,"end_unit_id":1}]}]}`, want: "unknown field"},
|
||||
{name: "trailing", raw: `{"npcs":[]} {}`, want: "multiple JSON values"},
|
||||
{name: "missing array", raw: `{}`, want: "npcs must be present"},
|
||||
{name: "invalid reference", raw: `{"npcs":[{"id":"npc:sha256:0000000000000000000000000000000000000000000000000000000000000000","name":"Mira","source_refs":[{"source_id":"s","start_unit_id":0,"end_unit_id":1}]}]}`, want: "start_unit_id"},
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
For every NPC record, return only the observed display name and transcript
|
||||
units that support that identity.
|
||||
|
||||
Do not return descriptions, aliases, relationships, biographies, statistics,
|
||||
alignment, motivations, encounter summaries, or lore inferred from general
|
||||
D&D knowledge. Do not invent a label for an anonymous creature, crowd, or
|
||||
generic role.
|
||||
Return no other details or lore inferred from general D&D knowledge. Do not
|
||||
invent a label for an anonymous creature, crowd, or generic role.
|
||||
|
||||
Preserve observed display spelling. Return at least one narrow source range for
|
||||
every record.
|
||||
|
||||
@@ -98,10 +98,9 @@ func TestRegistryLookupAndAccessorsAreImmutable(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolveRejectsRichOrInvalidRegistryJSON(t *testing.T) {
|
||||
rich := []byte(`{"npcs":[{"id":"npc:sha256:99a16589618a04f535a7d21fdcc71a0b1c05d22f752cd492065b1086d97bc3d7","name":"Mira Thorn","aliases":[],"source_refs":[{"source_id":"session-alpha","start_unit_id":1,"end_unit_id":1}]}]}`)
|
||||
func TestResolveRejectsMalformedOrUnsupportedRegistryInput(t *testing.T) {
|
||||
for _, item := range []contracts.ReferenceItem{
|
||||
{MediaType: "application/json", Content: rich},
|
||||
{MediaType: "application/json", Content: []byte(`{"npcs":[`)},
|
||||
{MediaType: "text/plain", Content: []byte(`{"npcs":[]}`)},
|
||||
} {
|
||||
_, err := Resolve(referenceSet(item))
|
||||
|
||||
Reference in New Issue
Block a user