Files
khadhroony-bot3/kb-lib/tests/external_metaplex_token_metadata_executor_api.rs
2026-08-09 12:57:24 +02:00

35 lines
1.5 KiB
Rust

// file: kb-lib/tests/external_metaplex_token_metadata_executor_api.rs
// version: 1
//! Downstream-style compilation contract for the Metaplex Token Metadata executor.
#[test]
fn external_consumers_inspect_metaplex_executor_capabilities_only_through_crate_root_exports() {
let executor = kb_lib::ExMetadataMetaplexTokenMetadataExecutor;
let program_id = kb_lib::MdProgramId(
kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID.to_string(),
);
assert_eq!(kb_lib::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES.len(), 35);
assert_eq!(kb_lib::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES.len(), 15);
for operation_code in kb_lib::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES {
let capability = kb_lib::ExApiTypedInstructionExecutor::capability(
&executor,
&program_id,
operation_code,
);
assert!(capability.is_supported());
}
for operation_code in kb_lib::EX_METAPLEX_TOKEN_METADATA_DEPRECATED_OPERATION_CODES {
assert!(
kb_lib::EX_METAPLEX_TOKEN_METADATA_SUPPORTED_OPERATION_CODES.contains(operation_code)
);
}
let foreign_program_id = kb_lib::MdProgramId(kb_program_ids::SYSTEM_PROGRAM_ID.to_string());
let foreign_capability = kb_lib::ExApiTypedInstructionExecutor::capability(
&executor,
&foreign_program_id,
kb_lib::EX_METAPLEX_TOKEN_METADATA_CREATE_OPERATION,
);
assert!(!foreign_capability.is_supported());
}