fn generate_fixture()

in yaml_test_runner/src/generator.rs [291:319]


    fn generate_fixture(test_fn: &Option<TestFn>) -> (Option<Tokens>, Option<Tokens>) {
        if let Some(t) = test_fn {
            let ident = syn::Ident::from(t.name.as_str());

            // TODO: collect up the do calls for now. We do also need to handle skip, etc.
            let tokens = t
                .steps
                .iter()
                .filter_map(Step::r#do)
                .map(|d| {
                    let mut tokens = Tokens::new();
                    ToTokens::to_tokens(d, &mut tokens);
                    tokens
                })
                .collect::<Vec<_>>();

            (
                Some(quote! {
                    async fn #ident(client: &Elasticsearch) -> anyhow::Result<()> {
                        #(#tokens)*
                        Ok(())
                    }
                }),
                Some(quote! { #ident(client).await?; }),
            )
        } else {
            (None, None)
        }
    }