@@ -713,6 +713,67 @@ function rule(input) {
713713 }
714714}
715715
716+ func TestEvalTestsuite_Classname (t * testing.T ) {
717+ tempDir := t .TempDir ()
718+
719+ jsContent := `
720+ const metadata = {
721+ title: "Test Classname Field",
722+ custom: { rulenumber: "099_0007", input: ".*\\.yaml" }
723+ };
724+
725+ function rule(input) {
726+ return { allow: true, errors: [] };
727+ }
728+ `
729+ jsPath := filepath .Join (tempDir , "classname_test.js" )
730+ err := os .WriteFile (jsPath , []byte (jsContent ), 0644 )
731+ if err != nil {
732+ t .Fatalf ("Failed to write js file: %v" , err )
733+ }
734+
735+ // Create multiple test files
736+ err = os .WriteFile (filepath .Join (tempDir , "input1.yaml" ), []byte (`Name: "Test1"` ), 0644 )
737+ if err != nil {
738+ t .Fatalf ("Failed to write yaml file: %v" , err )
739+ }
740+ err = os .WriteFile (filepath .Join (tempDir , "input2.yaml" ), []byte (`Name: "Test2"` ), 0644 )
741+ if err != nil {
742+ t .Fatalf ("Failed to write yaml file: %v" , err )
743+ }
744+
745+ rule := Rule {
746+ Path : jsPath ,
747+ Title : "Test Classname Field" ,
748+ RuleNumber : "099_0007" ,
749+ Pattern : ".*\\ .yaml" ,
750+ PackageName : jsPath ,
751+ Language : LanguageJavascript ,
752+ }
753+
754+ result , err := evalTestsuite (rule , tempDir , false , false , nil , nil )
755+ if err != nil {
756+ t .Fatalf ("Failed to evaluate testsuite: %v" , err )
757+ }
758+
759+ expectedClassname := "099_0007 - Test Classname Field"
760+
761+ // Verify all testcases have the classname field set correctly
762+ if len (result .Testcases ) == 0 {
763+ t .Fatal ("Expected at least one testcase" )
764+ }
765+
766+ for i , tc := range result .Testcases {
767+ if tc .Classname == "" {
768+ t .Errorf ("Testcase %d (%s) has empty Classname field" , i , tc .Name )
769+ }
770+ if tc .Classname != expectedClassname {
771+ t .Errorf ("Testcase %d (%s) has incorrect Classname: got %q, want %q" ,
772+ i , tc .Name , tc .Classname , expectedClassname )
773+ }
774+ }
775+ }
776+
716777func TestParseRuleMetadata_JavascriptValidation (t * testing.T ) {
717778 tempDir := t .TempDir ()
718779
0 commit comments