@@ -599,6 +599,86 @@ module PackStats # rubocop:disable RSpec/DescribedClassModuleWrapping
599599 write_file ( 'components/my_component_3/lib/my_component_3.rb' )
600600 end
601601
602+ # The purpose of this spec is to have a clear list of all of the metrics that are supported by pack_stats
603+ # We can also look at the diff of this list to easily see what metrics are being added or removed
604+ it 'emits only these metrics' do
605+ expect ( metrics . map ( &:name ) . uniq . sort ) . to match_array %w(
606+ modularization.all_files.by_team
607+ modularization.all_files.totals
608+ modularization.all_packages.all_files.count
609+ modularization.all_packages.count
610+ modularization.all_packages.dependencies.count
611+ modularization.all_packages.dependency_violations.count
612+ modularization.all_packages.enforcing_dependencies.count
613+ modularization.all_packages.enforcing_privacy.count
614+ modularization.all_packages.has_readme.count
615+ modularization.all_packages.package_based_file_ownership.count
616+ modularization.all_packages.packwerk_checkers.enforce_dependencies.false.count
617+ modularization.all_packages.packwerk_checkers.enforce_dependencies.strict.count
618+ modularization.all_packages.packwerk_checkers.enforce_dependencies.true.count
619+ modularization.all_packages.packwerk_checkers.enforce_privacy.false.count
620+ modularization.all_packages.packwerk_checkers.enforce_privacy.strict.count
621+ modularization.all_packages.packwerk_checkers.enforce_privacy.true.count
622+ modularization.all_packages.privacy_violations.count
623+ modularization.all_packages.public_files.count
624+ modularization.all_packages.rubocops.packs_classmethodsaspublicapis.exclusions.count
625+ modularization.all_packages.rubocops.packs_classmethodsaspublicapis.false.count
626+ modularization.all_packages.rubocops.packs_classmethodsaspublicapis.strict.count
627+ modularization.all_packages.rubocops.packs_classmethodsaspublicapis.true.count
628+ modularization.all_packages.rubocops.packs_documentedpublicapis.exclusions.count
629+ modularization.all_packages.rubocops.packs_documentedpublicapis.false.count
630+ modularization.all_packages.rubocops.packs_documentedpublicapis.strict.count
631+ modularization.all_packages.rubocops.packs_documentedpublicapis.true.count
632+ modularization.all_packages.rubocops.packs_rootnamespaceispackname.exclusions.count
633+ modularization.all_packages.rubocops.packs_rootnamespaceispackname.false.count
634+ modularization.all_packages.rubocops.packs_rootnamespaceispackname.strict.count
635+ modularization.all_packages.rubocops.packs_rootnamespaceispackname.true.count
636+ modularization.all_packages.rubocops.packs_typedpublicapis.exclusions.count
637+ modularization.all_packages.rubocops.packs_typedpublicapis.false.count
638+ modularization.all_packages.rubocops.packs_typedpublicapis.strict.count
639+ modularization.all_packages.rubocops.packs_typedpublicapis.true.count
640+ modularization.all_packages.using_public_directory.count
641+ modularization.all_packages.with_violations.count
642+ modularization.by_package.all_files.count
643+ modularization.by_package.dependency_violations.count
644+ modularization.by_package.inbound_dependency_violations.count
645+ modularization.by_package.inbound_explicit_dependencies.count
646+ modularization.by_package.inbound_privacy_violations.count
647+ modularization.by_package.outbound_dependency_violations.count
648+ modularization.by_package.outbound_dependency_violations.per_package.count
649+ modularization.by_package.outbound_explicit_dependencies.count
650+ modularization.by_package.outbound_explicit_dependencies.per_package.count
651+ modularization.by_package.outbound_privacy_violations.count
652+ modularization.by_package.outbound_privacy_violations.per_package.count
653+ modularization.by_package.privacy_violations.count
654+ modularization.by_package.public_files.count
655+ modularization.by_package.using_public_directory.count
656+ modularization.by_team.all_files.count
657+ modularization.by_team.all_packages.count
658+ modularization.by_team.dependency_violations.count
659+ modularization.by_team.has_readme.count
660+ modularization.by_team.inbound_dependency_violations.count
661+ modularization.by_team.inbound_privacy_violations.count
662+ modularization.by_team.outbound_dependency_violations.count
663+ modularization.by_team.outbound_dependency_violations.per_team.count
664+ modularization.by_team.outbound_privacy_violations.count
665+ modularization.by_team.outbound_privacy_violations.per_team.count
666+ modularization.by_team.packwerk_checkers.enforce_dependencies.false.count
667+ modularization.by_team.packwerk_checkers.enforce_dependencies.strict.count
668+ modularization.by_team.packwerk_checkers.enforce_dependencies.true.count
669+ modularization.by_team.packwerk_checkers.enforce_privacy.false.count
670+ modularization.by_team.packwerk_checkers.enforce_privacy.strict.count
671+ modularization.by_team.packwerk_checkers.enforce_privacy.true.count
672+ modularization.by_team.privacy_violations.count
673+ modularization.by_team.public_files.count
674+ modularization.by_team.using_public_directory.count
675+ modularization.component_files.by_team
676+ modularization.component_files.totals
677+ modularization.packaged_files.by_team
678+ modularization.packaged_files.totals
679+ )
680+ end
681+
602682 it 'emits the right metrics' do
603683 expect ( metrics ) . to include_metric GaugeMetric . for ( 'component_files.by_team' , 3 , Tags . for ( [ 'team:Team 2' , 'app:MyApp' ] ) )
604684 expect ( metrics ) . to include_metric GaugeMetric . for ( 'packaged_files.by_team' , 2 , Tags . for ( [ 'team:Team 2' , 'app:MyApp' ] ) )
0 commit comments