package main import ( "testing" "hamlog/internal/qso" ) // A bulk-editable field passes through THREE tables: the field list in the UI, // bulkFieldColumns here, and bulkEditableCols in internal/qso. Mode and RST were // added to the first and the third and not the second, so the dialog offered // them and the save failed with "unknown field" — reported from the field. // // Nothing warns about that: each table is valid on its own. This is the check. func TestEveryMappedBulkFieldIsWhitelisted(t *testing.T) { for id, col := range bulkFieldColumns { if !qso.BulkEditable(col) { t.Errorf("bulk field %q maps to column %q, which internal/qso refuses to write", id, col) } } } // And the reverse: a column the qso layer allows but nothing maps to is dead // weight — it looks supported from the inside and cannot be reached from outside. func TestNoUnreachableBulkColumn(t *testing.T) { mapped := map[string]bool{} for _, col := range bulkFieldColumns { mapped[col] = true } for _, col := range qso.BulkEditableColumns() { if !mapped[col] { t.Errorf("column %q is bulk-writable but no field maps to it — unreachable", col) } } }