use hyperlight_component_util::{emit, guest, rtypes, util};
#[test]
fn wasmtime_guest_codegen_emits_wasmtime_flags_macro() {
let generated = util::read_wit_type_from_file(
"../tests/rust_guests/witguest/interface.wasm",
None,
|kebab_name, ct| {
emit::run_state(true, true, |s| {
rtypes::emit_toplevel(s, &kebab_name, ct);
guest::emit_toplevel(s, &kebab_name, ct);
})
},
);
let generated: syn::File = syn::parse2(generated).expect("generated Rust should parse");
let generated = prettyplease::unparse(&generated);
assert!(generated.contains("::wasmtime::component::flags! {"));
assert!(generated.contains("Smallflags {"));
assert!(generated.contains("\"flag-a\""));
assert!(generated.contains("const FLAG_A;"));
assert!(generated.contains("\"flag-b\""));
assert!(generated.contains("const FLAG_B;"));
assert!(generated.contains("\"flag-c\""));
assert!(generated.contains("const FLAG_C;"));
assert!(!generated.contains("pub flag_a: bool"));
assert!(!generated.contains("pub flag_b: bool"));
assert!(!generated.contains("pub flag_c: bool"));
}