@@ -171,24 +171,31 @@ class ReportGenerator {
171171 const inline = ( options && options . inline ) || false ;
172172
173173 // Ensure the formatter for each extendedInfo is registered.
174+ Object . keys ( results . audits ) . forEach ( audit => {
175+ // Use value rather than key for audit.
176+ audit = results . audits [ audit ] ;
177+
178+ if ( ! audit . extendedInfo ) {
179+ return ;
180+ }
181+ if ( ! audit . extendedInfo . formatter ) {
182+ // HTML formatter not provided for this subItem
183+ return ;
184+ }
185+ const formatter = Formatter . getByName ( audit . extendedInfo . formatter ) ;
186+ const helpers = formatter . getHelpers ( ) ;
187+ if ( helpers ) {
188+ Handlebars . registerHelper ( helpers ) ;
189+ }
190+
191+ Handlebars . registerPartial ( audit . name , formatter . getFormatter ( 'html' ) ) ;
192+ } ) ;
193+
174194 results . aggregations . forEach ( aggregation => {
175195 aggregation . score . forEach ( score => {
176- score . subItems . forEach ( subItem => {
177- if ( ! subItem . extendedInfo ) {
178- return ;
179- }
180- if ( ! subItem . extendedInfo . formatter ) {
181- // HTML formatter not provided for this subItem
182- return ;
183- }
184- const formatter = Formatter . getByName ( subItem . extendedInfo . formatter ) ;
185- const helpers = formatter . getHelpers ( ) ;
186- if ( helpers ) {
187- Handlebars . registerHelper ( helpers ) ;
188- }
189-
190- Handlebars . registerPartial ( subItem . name , formatter . getFormatter ( 'html' ) ) ;
191- } ) ;
196+ // Map subItem strings to auditResults from results.audits.
197+ // Coming soon events are not in auditResults, but rather still in subItems.
198+ score . subItems = score . subItems . map ( subItem => results . audits [ subItem ] || subItem ) ;
192199 } ) ;
193200 } ) ;
194201
0 commit comments