@@ -502,6 +502,33 @@ func TestTableDefinitionGenFilePath(t *testing.T) {
502502 require .Equal (t , "schema1/12345/meta/schema_100_3752767265.json" , tablePath )
503503}
504504
505+ func TestGenerateSchemaFilePathValidation (t * testing.T ) {
506+ t .Parallel ()
507+
508+ def , _ := generateTableDef ()
509+
510+ // nil receiver - would panic before entering, skip as Go handles this
511+ // empty schema
512+ emptySchemaDef := & TableDefinition {Schema : "" , Table : "t1" , TableVersion : 100 , TotalColumns : 1 , Columns : []TableCol {{}}}
513+ _ , err := emptySchemaDef .GenerateSchemaFilePath (false , 0 )
514+ require .Error (t , err )
515+ require .Contains (t , err .Error (), "schema cannot be empty" )
516+
517+ // zero table version
518+ zeroVersionDef := & TableDefinition {Schema : "s1" , Table : "t1" , TableVersion : 0 , TotalColumns : 1 , Columns : []TableCol {{}}}
519+ _ , err = zeroVersionDef .GenerateSchemaFilePath (false , 0 )
520+ require .Error (t , err )
521+ require .Contains (t , err .Error (), "table version cannot be zero" )
522+
523+ // use-table-id-as-path with invalid tableID
524+ _ , err = def .GenerateSchemaFilePath (true , 0 )
525+ require .Error (t , err )
526+ require .Contains (t , err .Error (), "tableID must be positive" )
527+ _ , err = def .GenerateSchemaFilePath (true , - 1 )
528+ require .Error (t , err )
529+ require .Contains (t , err .Error (), "tableID must be positive" )
530+ }
531+
505532func TestTableDefinitionSum32 (t * testing.T ) {
506533 t .Parallel ()
507534
0 commit comments