helm-schema-cli 0.0.4

Generate an accurate JSON schema for any helm chart
Documentation
//! Full-schema and values-validation regressions for the `SigNoz PostgreSQL` chart.

#[path = "common/helm_samples.rs"]
mod helm_samples;
#[path = "common/schema_roundtrip.rs"]
mod schema_roundtrip;
#[path = "common/values_validation.rs"]
mod values_validation;
#[path = "common/values_yaml.rs"]
mod values_yaml;

use color_eyre::eyre;

use indoc::indoc;

#[test]
fn signoz_postgresql_values_yaml_and_guard_samples_validate() -> eyre::Result<()> {
    let chart_path = "signoz-signoz/charts/signoz-otel-gateway/charts/postgresql";
    let schema = schema_roundtrip::generate_chart_schema_for_path(chart_path)?;
    let values_json = values_validation::values_yaml_as_json_for_path(chart_path)?;
    values_validation::assert_values_json_validates(&values_json, &schema);
    helm_samples::assert_generated_schema_accepts_helm_samples_for_path(
        chart_path,
        &schema,
        &[
            helm_samples::HelmValidationSample {
                name: "default",
                values_yaml: None,
            },
            helm_samples::HelmValidationSample {
                name: "replication-with-metrics",
                values_yaml: Some(indoc! {"
                    architecture: replication
                    auth:
                      database: app
                    metrics:
                      enabled: true
                    readReplicas:
                      replicaCount: 2
                "}),
            },
        ],
    )?;

    Ok(())
}