pub struct E2eConfig {Show 15 fields
pub fixtures: String,
pub output: String,
pub languages: Vec<String>,
pub call: CallConfig,
pub calls: HashMap<String, CallConfig>,
pub packages: HashMap<String, PackageRef>,
pub format: HashMap<String, String>,
pub fields: HashMap<String, String>,
pub fields_optional: HashSet<String>,
pub fields_array: HashSet<String>,
pub result_fields: HashSet<String>,
pub fields_c_types: HashMap<String, String>,
pub fields_enum: HashSet<String>,
pub dep_mode: DependencyMode,
pub registry: RegistryConfig,
}Expand description
Root e2e configuration from [e2e] section of alef.toml.
Fields§
§fixtures: StringDirectory containing fixture JSON files (default: “fixtures”).
output: StringOutput directory for generated e2e test projects (default: “e2e”).
languages: Vec<String>Languages to generate e2e tests for. Defaults to top-level languages list.
call: CallConfigDefault function call configuration.
calls: HashMap<String, CallConfig>Named additional call configurations for multi-function testing.
Fixtures reference these via the call field, e.g. "call": "embed".
packages: HashMap<String, PackageRef>Per-language package reference overrides.
format: HashMap<String, String>Per-language formatter commands.
fields: HashMap<String, String>Field path aliases: maps fixture field paths to actual API struct paths. E.g., “metadata.title” -> “metadata.document.title” Supports struct access (foo.bar), map access (foo[key]), direct fields.
fields_optional: HashSet<String>Fields that are Optional/nullable in the return type. Rust generators use .as_deref().unwrap_or(“”) for strings, .is_some() for structs.
fields_array: HashSet<String>Fields that are arrays/Vecs on the result type.
When a fixture path like json_ld.name traverses an array field, the
accessor adds [0] (or language equivalent) to index into the first element.
result_fields: HashSet<String>Known top-level fields on the result type.
When non-empty, assertions whose resolved field path starts with a
segment that is NOT in this set are emitted as comments (skipped)
instead of executable assertions. This prevents broken assertions
when fixtures reference fields from a different operation (e.g.,
batch.completed_count on a ScrapeResult).
fields_c_types: HashMap<String, String>C FFI accessor type chain: maps "{parent_snake_type}.{field}" to the
PascalCase return type name (without prefix).
Used by the C e2e generator to emit chained FFI accessor calls for
nested field paths. The root type is always conversion_result.
Example:
[e2e.fields_c_types]
"conversion_result.metadata" = "HtmlMetadata"
"html_metadata.document" = "DocumentMetadata"fields_enum: HashSet<String>Fields whose resolved type is an enum in the generated bindings.
When a contains / contains_all / etc. assertion targets one of these
fields, language generators that cannot call .contains() directly on an
enum (e.g., Java) will emit a string-conversion call first. For Java,
the generated assertion calls .getValue() on the enum — the @JsonValue
method that all alef-generated Java enums expose — to obtain the lowercase
serde string before performing the string comparison.
Both the raw fixture field path (before alias resolution) and the resolved
path (after alias resolution via [e2e.fields]) are accepted, so you can
use either form:
# Raw fixture field:
fields_enum = ["links[].link_type", "assets[].category"]
# …or the resolved (aliased) field name:
fields_enum = ["links[].link_type", "assets[].asset_category"]dep_mode: DependencyModeDependency mode: Local (default) or Registry.
Set at runtime via --registry CLI flag; not serialized from TOML.
registry: RegistryConfigRegistry-mode configuration from [e2e.registry].
Implementations§
Source§impl E2eConfig
impl E2eConfig
Sourcepub fn resolve_call(&self, call_name: Option<&str>) -> &CallConfig
pub fn resolve_call(&self, call_name: Option<&str>) -> &CallConfig
Resolve the call config for a fixture. Uses the named call if specified,
otherwise falls back to the default [e2e.call].
Sourcepub fn resolve_package(&self, lang: &str) -> Option<PackageRef>
pub fn resolve_package(&self, lang: &str) -> Option<PackageRef>
Resolve the effective package reference for a language.
In registry mode, entries from [e2e.registry.packages] are merged on
top of the base [e2e.packages] — registry overrides win for any field
that is Some.
Sourcepub fn effective_output(&self) -> &str
pub fn effective_output(&self) -> &str
Return the effective output directory: registry.output in registry
mode, output otherwise.