Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/holger

holger-recipe/tests/public_site_row.rs

//! **holger.rs's release front turns the public site on, and nothing else
//! does** (TASKS-12 S-6, the owner's SLIM and AIRGAP rules, 2026-10-25): the
//! front's payload row and its dev-narrate twin name `public-site`; every
//! other row, among them every server row, does not.

use holger_recipe::HolgerBuildThing;
use nornir_build_thing::plugin::BuildThing as _;

const FRONT_ROWS: &[&str] = &[
    "estate-front-musl-metered",
    "estate-front-musl-metered-narrate",
];

#[test]
fn the_release_front_builds_the_public_site() {
    let set = HolgerBuildThing.variants();
    for row in FRONT_ROWS {
        let v = set
            .variants
            .iter()
            .find(|v| v.name == *row)
            .unwrap_or_else(|| panic!("no row {row}"));
        assert!(
            v.features.iter().any(|f| f == "public-site"),
            "{row}: {:?}",
            v.features
        );
    }
}

#[test]
fn no_other_row_builds_it() {
    let set = HolgerBuildThing.variants();
    for v in set
        .variants
        .iter()
        .filter(|v| !FRONT_ROWS.contains(&v.name.as_str()))
    {
        assert!(
            !v.features.iter().any(|f| f.contains("public-site")),
            "{} builds the public site: {:?}",
            v.name,
            v.features
        );
    }
}