@@ -51,18 +51,21 @@ export class ReportParserCore {
5151 * @param {ReportData } reportData - The parsed report data
5252 * @param {string } reportName - Name of the report
5353 * @param {boolean } includePassed - Include passed tests
54- * @param {string } outputFormat - Output format (summary, markdown, both )
54+ * @param {string } outputFormat - Output format (comma-separated: summary, markdown, annotations, or "all" )
5555 * @returns {Object } Object with markdown and summary strings
5656 */
5757 generateOutput ( reportData , reportName , includePassed , outputFormat ) {
58+ // Parse output formats
59+ const formats = this . parseOutputFormats ( outputFormat ) ;
60+
5861 let markdown = "" ;
5962 let summary = "" ;
6063
61- if ( outputFormat === "markdown" || outputFormat === "both" ) {
64+ if ( formats . includes ( "markdown" ) ) {
6265 markdown = this . markdownFormatter . format ( reportData , reportName ) ;
6366 }
6467
65- if ( outputFormat === "summary" || outputFormat === "both" ) {
68+ if ( formats . includes ( "summary" ) ) {
6669 summary = this . summaryFormatter . format (
6770 reportData ,
6871 reportName ,
@@ -72,4 +75,20 @@ export class ReportParserCore {
7275
7376 return { markdown, summary } ;
7477 }
78+
79+ /**
80+ * Parse output format string into array of formats
81+ * @param {string } outputFormat - Output format string (comma-separated or "all")
82+ * @returns {string[] } Array of output format values
83+ */
84+ parseOutputFormats ( outputFormat ) {
85+ if ( outputFormat === "all" ) {
86+ return [ "summary" , "markdown" , "annotations" ] ;
87+ }
88+
89+ return outputFormat
90+ . split ( "," )
91+ . map ( ( f ) => f . trim ( ) )
92+ . filter ( ( f ) => f . length > 0 ) ;
93+ }
7594}
0 commit comments