use super::*;
pub(super) fn apply_derived_shows(
fixture: &mut Fixture,
e2e_config: &E2eConfig,
language: &str,
factory: &ResolverFactory<'_>,
) {
if fixture.docs.is_none() || fixture.has_docs_presentation() {
return;
}
let call = e2e_config.resolve_call_for_fixture(
fixture.call.as_deref(),
&fixture.id,
&fixture.resolved_category(),
&fixture.tags,
&fixture.input,
);
if factory.returns_native_bytes(call, language) {
return;
}
let resolver = factory.build(e2e_config, call, language);
let paths: Vec<String> = default_operations_from_assertions(fixture, call, language, &resolver)
.into_iter()
.filter_map(|operation| match operation {
FixtureDocsOperation::Show { path, .. } => Some(path),
FixtureDocsOperation::Iterate { .. } => None,
})
.collect();
if paths.is_empty() {
return;
}
if let Some(docs) = fixture.docs.as_mut() {
docs.shows = paths;
}
}