PAX

 view release on metacpan or  search on metacpan

t/code_unit_compiler.t  view on Meta::CPAN

is(scalar(@{ $file_registry_record->{unsupported_subs} // [] }), 0, 'FileRegistry PCU no longer needs residual fallback');

my $internal_cli = $compiler->compile(
    path => 'DD Source Code/developer-dashboard/lib/Developer/Dashboard/InternalCLI.pm',
    kind => 'lib',
    logical_path => 'lib/developer-dashboard/Developer/Dashboard/InternalCLI.pm',
);
is($internal_cli->{packaging}, 'compiled_pcu_v1', 'InternalCLI now compiles to PCU');
my $internal_cli_record = JSON::PP->new->decode($internal_cli->{bytes});
ok((grep { ($_->{name} // '') eq 'helper_names' && ($_->{op} // '') eq 'internal_cli_helper_names' } @{ $internal_cli_record->{subs} // [] }) >= 1, 'InternalCLI PCU compiles helper name list');
ok((grep { ($_->{name} // '') eq 'canonical_helper_name' && ($_->{op} // '') eq 'internal_cli_canonical_helper_name' } @{ $internal_cli_record->{subs} // [] }) >= 1, 'InternalCLI PCU compiles helper canonicalization');
ok((grep { ($_->{name} // '') eq '_managed_helper_content' && ($_->{op} // '') eq 'internal_cli_managed_helper_content' } @{ $internal_cli_record->{subs} // [] }) >= 1, 'InternalCLI PCU compiles managed helper content builder');
ok((grep { ($_->{name} // '') eq 'ensure_helpers' && ($_->{op} // '') eq 'internal_cli_ensure_helpers' } @{ $internal_cli_record->{subs} // [] }) >= 1, 'InternalCLI PCU compiles helper staging');
is(scalar(@{ $internal_cli_record->{unsupported_subs} // [] }), 0, 'InternalCLI PCU no longer needs residual fallback');

my $collector = $compiler->compile(
    path => 'DD Source Code/developer-dashboard/lib/Developer/Dashboard/Collector.pm',
    kind => 'lib',
    logical_path => 'lib/developer-dashboard/Developer/Dashboard/Collector.pm',
);
is($collector->{packaging}, 'compiled_pcu_v1', 'Collector module now compiles to PCU');
my $collector_record = JSON::PP->new->decode($collector->{bytes});
ok((grep { ($_->{name} // '') eq 'collector_paths' && ($_->{op} // '') eq 'collector_paths' } @{ $collector_record->{subs} // [] }) >= 1, 'Collector PCU compiles path layout helper');
ok((grep { ($_->{name} // '') eq 'write_result' && ($_->{op} // '') eq 'collector_write_result' } @{ $collector_record->{subs} // [] }) >= 1, 'Collector PCU compiles result writer');
ok((grep { ($_->{name} // '') eq 'rotate_log' && ($_->{op} // '') eq 'collector_rotate_log' } @{ $collector_record->{subs} // [] }) >= 1, 'Collector PCU compiles log rotation');
ok((grep { ($_->{name} // '') eq '_entry_timestamp_epoch' && ($_->{op} // '') eq 'collector_entry_timestamp_epoch' } @{ $collector_record->{subs} // [] }) >= 1, 'Collector PCU compiles log timestamp parser');
ok((grep { ($_->{name} // '') eq '_iso8601_to_epoch' && ($_->{op} // '') eq 'iso8601_to_epoch_with_zone' } @{ $collector_record->{subs} // [] }) >= 1, 'Collector PCU compiles offset-aware ISO8601 parser');
is(scalar(@{ $collector_record->{unsupported_subs} // [] }), 0, 'Collector PCU no longer needs residual fallback');

my $config = $compiler->compile(
    path => 'DD Source Code/developer-dashboard/lib/Developer/Dashboard/Config.pm',
    kind => 'lib',
    logical_path => 'lib/developer-dashboard/Developer/Dashboard/Config.pm',
);
is($config->{packaging}, 'compiled_pcu_v1', 'Config module now compiles to PCU');
my $config_record = JSON::PP->new->decode($config->{bytes});
ok((grep { ($_->{name} // '') eq '_merge_hashes' && ($_->{op} // '') eq 'config_merge_hashes' } @{ $config_record->{subs} // [] }) >= 1, 'Config PCU compiles recursive hash merge');
ok((grep { ($_->{name} // '') eq 'load_global' && ($_->{op} // '') eq 'config_load_global' } @{ $config_record->{subs} // [] }) >= 1, 'Config PCU compiles global config loader');
ok((grep { ($_->{name} // '') eq 'collectors' && ($_->{op} // '') eq 'config_collectors' } @{ $config_record->{subs} // [] }) >= 1, 'Config PCU compiles collector fleet merge');
ok((grep { ($_->{name} // '') eq 'save_global_web_settings' && ($_->{op} // '') eq 'config_save_global_web_settings' } @{ $config_record->{subs} // [] }) >= 1, 'Config PCU compiles web settings persistence');
ok((grep { ($_->{name} // '') eq '_skill_collectors' && ($_->{op} // '') eq 'config_skill_collectors' } @{ $config_record->{subs} // [] }) >= 1, 'Config PCU compiles skill collector expansion');
is(scalar(@{ $config_record->{unsupported_subs} // [] }), 0, 'Config PCU no longer needs residual fallback');

my $skill_dispatcher = $compiler->compile(
    path => 'DD Source Code/developer-dashboard/lib/Developer/Dashboard/SkillDispatcher.pm',
    kind => 'lib',
    logical_path => 'lib/developer-dashboard/Developer/Dashboard/SkillDispatcher.pm',
);
my $skill_dispatcher_record = JSON::PP->new->decode($skill_dispatcher->{bytes});
ok((grep { ($_->{name} // '') eq '_command_spec' && ($_->{op} // '') eq 'skill_dispatcher_command_spec' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles layered command-spec helper');
ok((grep { ($_->{name} // '') eq '_merge_skill_hashes' && ($_->{op} // '') eq 'skill_dispatcher_merge_skill_hashes' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles layered skill-config merge helper');
ok((grep { ($_->{name} // '') eq 'get_skill_config' && ($_->{op} // '') eq 'skill_dispatcher_get_skill_config' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles skill config loader');
ok((grep { ($_->{name} // '') eq 'config_fragment' && ($_->{op} // '') eq 'skill_dispatcher_config_fragment' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles skill config fragment helper');
ok((grep { ($_->{name} // '') eq 'get_skill_path' && ($_->{op} // '') eq 'skill_dispatcher_get_skill_path' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles skill path lookup helper');
ok((grep { ($_->{name} // '') eq 'command_path' && ($_->{op} // '') eq 'skill_dispatcher_command_path' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles command path helper');
ok((grep { ($_->{name} // '') eq 'command_hook_paths' && ($_->{op} // '') eq 'skill_dispatcher_command_hook_paths' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles command hook enumerator');
ok((grep { ($_->{name} // '') eq 'route_response' && ($_->{op} // '') eq 'skill_dispatcher_route_response' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles route response dispatcher');
ok((grep { ($_->{name} // '') eq '_load_skill_page' && ($_->{op} // '') eq 'skill_dispatcher_load_skill_page' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles skill page loader');
ok((grep { ($_->{name} // '') eq '_skill_env' && ($_->{op} // '') eq 'skill_dispatcher_skill_env' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles skill env builder');
ok((grep { ($_->{name} // '') eq 'execute_hooks' && ($_->{op} // '') eq 'skill_dispatcher_execute_hooks' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles hook execution pipeline');
ok((grep { ($_->{name} // '') eq '_execute_hooks_streaming' && ($_->{op} // '') eq 'skill_dispatcher_execute_hooks_streaming' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles streaming hook pipeline');
ok((grep { ($_->{name} // '') eq '_run_child_command_streaming' && ($_->{op} // '') eq 'skill_dispatcher_run_child_command_streaming' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles streaming child runner');
ok((grep { ($_->{name} // '') eq '_exec_replacement' && ($_->{op} // '') eq 'skill_dispatcher_exec_replacement' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles final exec replacement');
ok((grep { ($_->{name} // '') eq 'dispatch' && ($_->{op} // '') eq 'skill_dispatcher_dispatch' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles dispatch entry');
ok((grep { ($_->{name} // '') eq 'exec_command' && ($_->{op} // '') eq 'skill_dispatcher_exec_command' } @{ $skill_dispatcher_record->{subs} // [] }) >= 1, 'SkillDispatcher compiles exec-command entry');

my $docker_compose = $compiler->compile(
    path => 'DD Source Code/developer-dashboard/lib/Developer/Dashboard/DockerCompose.pm',
    kind => 'lib',
    logical_path => 'lib/developer-dashboard/Developer/Dashboard/DockerCompose.pm',
);
is($docker_compose->{packaging}, 'compiled_pcu_v1', 'DockerCompose now compiles to PCU');
my $docker_compose_record = JSON::PP->new->decode($docker_compose->{bytes});
ok((grep { ($_->{name} // '') eq '_expand_env_path' && ($_->{op} // '') eq 'docker_compose_expand_env_path' } @{ $docker_compose_record->{subs} // [] }) >= 1, 'DockerCompose PCU compiles env path expansion');
ok((grep { ($_->{name} // '') eq '_discover_service_files' && ($_->{op} // '') eq 'docker_compose_discover_service_files' } @{ $docker_compose_record->{subs} // [] }) >= 1, 'DockerCompose PCU compiles service file discovery');
ok((grep { ($_->{name} // '') eq 'resolve' && ($_->{op} // '') eq 'docker_compose_resolve' } @{ $docker_compose_record->{subs} // [] }) >= 1, 'DockerCompose PCU compiles compose resolution');
ok((grep { ($_->{name} // '') eq 'run' && ($_->{op} // '') eq 'docker_compose_run' } @{ $docker_compose_record->{subs} // [] }) >= 1, 'DockerCompose PCU compiles compose execution');
is(scalar(@{ $docker_compose_record->{unsupported_subs} // [] }), 0, 'DockerCompose PCU no longer needs residual fallback');

my $seeded_pages = $compiler->compile(
    path => 'DD Source Code/developer-dashboard/lib/Developer/Dashboard/CLI/SeededPages.pm',
    kind => 'lib',
    logical_path => 'lib/developer-dashboard/Developer/Dashboard/CLI/SeededPages.pm',
);
is($seeded_pages->{packaging}, 'compiled_pcu_v1', 'SeededPages now compiles to PCU');
my $seeded_pages_record = JSON::PP->new->decode($seeded_pages->{bytes});
ok((grep { ($_->{name} // '') eq 'api_dashboard_page' && ($_->{op} // '') eq 'seeded_pages_api_dashboard_page' } @{ $seeded_pages_record->{subs} // [] }) >= 1, 'SeededPages PCU compiles api-dashboard loader');
ok((grep { ($_->{name} // '') eq '_seeded_page_asset_filename' && ($_->{op} // '') eq 'seeded_pages_asset_filename' } @{ $seeded_pages_record->{subs} // [] }) >= 1, 'SeededPages PCU compiles asset filename resolver');
ok((grep { ($_->{name} // '') eq '_read_manifest' && ($_->{op} // '') eq 'seeded_pages_read_manifest' } @{ $seeded_pages_record->{subs} // [] }) >= 1, 'SeededPages PCU compiles manifest reader');
ok((grep { ($_->{name} // '') eq 'ensure_seeded_page' && ($_->{op} // '') eq 'seeded_pages_ensure_seeded_page' } @{ $seeded_pages_record->{subs} // [] }) >= 1, 'SeededPages PCU compiles seed refresh policy');
is(scalar(@{ $seeded_pages_record->{unsupported_subs} // [] }), 0, 'SeededPages PCU no longer needs residual fallback');

my $cli_query = $compiler->compile(
    path => 'DD Source Code/developer-dashboard/lib/Developer/Dashboard/CLI/Query.pm',
    kind => 'lib',
    logical_path => 'lib/developer-dashboard/Developer/Dashboard/CLI/Query.pm',
);
is($cli_query->{packaging}, 'source_payload_fallback', 'CLI Query module falls back to source when it exposes Exporter contract');
is($cli_query->{fallback_reason}, 'unsupported_exporter_contract', 'CLI Query source fallback records exporter-contract reason');

my $env_loader = $compiler->compile(
    path => 'DD Source Code/developer-dashboard/lib/Developer/Dashboard/EnvLoader.pm',
    kind => 'lib',
    logical_path => 'lib/developer-dashboard/Developer/Dashboard/EnvLoader.pm',
);
is($env_loader->{packaging}, 'compiled_pcu_v1', 'EnvLoader now compiles to PCU');
my $env_loader_record = JSON::PP->new->decode($env_loader->{bytes});
ok((grep { ($_->{name} // '') eq 'load_runtime_layers' && ($_->{op} // '') eq 'env_load_runtime_layers' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles runtime-layer loader');
ok((grep { ($_->{name} // '') eq 'load_skill_layers' && ($_->{op} // '') eq 'env_load_skill_layers' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles skill-layer loader');
ok((grep { ($_->{name} // '') eq '_plain_directory_layers' && ($_->{op} // '') eq 'env_plain_directory_layers' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles plain-directory layer resolver');
ok((grep { ($_->{name} // '') eq '_env_file_candidates' && ($_->{op} // '') eq 'env_file_candidates' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles env-file candidate helper');
ok((grep { ($_->{name} // '') eq '_path_identity' && ($_->{op} // '') eq 'env_path_identity' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles path identity helper');
ok((grep { ($_->{name} // '') eq '_lookup_env_symbol' && ($_->{op} // '') eq 'env_lookup_symbol' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles env symbol lookup helper');
ok((grep { ($_->{name} // '') eq '_strip_env_comments' && ($_->{op} // '') eq 'env_strip_comments' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles env comment stripping');
ok((grep { ($_->{name} // '') eq '_expand_env_value' && ($_->{op} // '') eq 'env_expand_value' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles env value expansion');
ok((grep { ($_->{name} // '') eq '_expand_braced_env_expression' && ($_->{op} // '') eq 'env_expand_braced' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles braced env expansion');
ok((grep { ($_->{name} // '') eq '_call_env_function' && ($_->{op} // '') eq 'env_call_function' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles env function dispatch');
ok((grep { ($_->{name} // '') eq '_load_env_file' && ($_->{op} // '') eq 'env_load_env_file' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles .env loader');
ok((grep { ($_->{name} // '') eq '_load_env_pl_file' && ($_->{op} // '') eq 'env_load_env_pl_file' } @{ $env_loader_record->{subs} // [] }) >= 1, 'EnvLoader PCU compiles .env.pl loader');
is(scalar(@{ $env_loader_record->{unsupported_subs} // [] }), 0, 'EnvLoader PCU no longer needs residual fallback');

my $auth = $compiler->compile(



( run in 1.640 second using v1.01-cache-2.11-cpan-140bd7fdf52 )