Skip to content

Commit e110b3f

Browse files
committed
Preserve other metadata fields when removing todo flag
Use a map to parse and update metadata.json, preserving any extra fields that may exist beyond todo and invalid_syntax.
1 parent 1630d61 commit e110b3f

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

parser/parser_test.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,20 @@ func TestParse(t *testing.T) {
104104

105105
// If running with -check-todo and the test passed, update metadata.json to remove todo flag
106106
if checkTodoMode && !t.Failed() {
107-
newMetadata := "{}\n"
108-
if err := os.WriteFile(metadataPath, []byte(newMetadata), 0644); err != nil {
109-
t.Errorf("failed to update metadata.json: %v", err)
107+
// Re-parse as map to preserve any extra fields
108+
var metadataMap map[string]any
109+
if err := json.Unmarshal(metadataData, &metadataMap); err != nil {
110+
t.Errorf("failed to parse metadata.json as map: %v", err)
110111
} else {
111-
t.Logf("ENABLED: updated %s (removed todo flag)", metadataPath)
112+
delete(metadataMap, "todo")
113+
updatedMetadata, err := json.MarshalIndent(metadataMap, "", " ")
114+
if err != nil {
115+
t.Errorf("failed to marshal metadata: %v", err)
116+
} else if err := os.WriteFile(metadataPath, append(updatedMetadata, '\n'), 0644); err != nil {
117+
t.Errorf("failed to update metadata.json: %v", err)
118+
} else {
119+
t.Logf("ENABLED: updated %s (removed todo flag)", metadataPath)
120+
}
112121
}
113122
}
114123
})

0 commit comments

Comments
 (0)