import './assert_dev_env.js';
import { describe_standard_integration_tests } from './integration.js';
import { describe_standard_admin_integration_tests } from './admin_integration.js';
import { describe_round_trip_validation } from './round_trip.js';
import { describe_data_exposure_tests } from './data_exposure.js';
import { describe_rpc_round_trip_tests } from './rpc_round_trip.js';
import { describe_audit_completeness_tests } from './audit_completeness.js';
import { describe_rate_limiting_tests } from './rate_limiting.js';
import { describe_bootstrap_success_tests } from './bootstrap_success.js';
/**
 * Run the full standard test bundle — integration, admin (when `roles`
 * provided), audit completeness (when `roles` provided), bootstrap
 * success (when `bootstrap.mode === 'live'`), round trip, RPC round
 * trip, data exposure, rate limiting.
 */
export const describe_standard_tests = (options) => {
    describe_standard_integration_tests({
        setup_test: options.setup_test,
        surface_source: options.surface_source,
        capabilities: options.capabilities,
        session_options: options.session_options,
        rpc_endpoints: options.rpc_endpoints,
        error_coverage_min: options.error_coverage_min,
    });
    describe_round_trip_validation({
        setup_test: options.setup_test,
        surface_source: options.surface_source,
        capabilities: options.capabilities,
    });
    describe_rpc_round_trip_tests({
        setup_test: options.setup_test,
        surface_source: options.surface_source,
        capabilities: options.capabilities,
        session_options: options.session_options,
        rpc_endpoints: options.rpc_endpoints,
    });
    describe_data_exposure_tests({
        setup_test: options.setup_test,
        surface_source: options.surface_source,
        capabilities: options.capabilities,
    });
    describe_rate_limiting_tests({
        session_options: options.session_options,
        create_route_specs: options.create_route_specs,
        rpc_endpoints: options.rpc_endpoints,
        app_options: options.rate_limiting_app_options,
    });
    if (options.roles) {
        describe_standard_admin_integration_tests({
            setup_test: options.setup_test,
            surface_source: options.surface_source,
            capabilities: options.capabilities,
            session_options: options.session_options,
            roles: options.roles,
            rpc_endpoints: options.rpc_endpoints,
            admin_prefix: options.admin_prefix,
        });
        describe_audit_completeness_tests({
            setup_test: options.setup_test,
            surface_source: options.surface_source,
            capabilities: options.capabilities,
            session_options: options.session_options,
            rpc_endpoints: options.rpc_endpoints,
        });
    }
    if (options.bootstrap?.mode === 'live') {
        describe_bootstrap_success_tests({
            session_options: options.session_options,
            create_route_specs: options.create_route_specs,
            rpc_endpoints: options.rpc_endpoints,
            bootstrap: options.bootstrap,
            bootstrap_token: options.bootstrap_token,
        });
    }
};
