use processcube_engine_client::clients::{
client_factory::ClientFactory,
process_definition::process_definition::PersistProcessDefinitionPayload,
};
use crate::fixtures::{get_valid_process_definition_xml, DUMMY_TOKEN, ENGINE_URL};
#[tokio::test]
async fn delete_process_definition_by_id() {
let client_factory = ClientFactory::new(ENGINE_URL, DUMMY_TOKEN);
let client = client_factory.create_process_definition_client();
let _ = client
.upload_process_definition(PersistProcessDefinitionPayload {
xml: get_valid_process_definition_xml(),
overwrite_existing: true,
})
.await;
let result = client.get_process_definitions(None, None).await;
let process_definition_list = result.unwrap();
let process_definition = process_definition_list.process_definitions.first().unwrap();
let result = client
.delete_process_definition_by_id(&process_definition.id, Some(true))
.await;
assert!(result.is_ok(), "Expected Ok result, but got {:?}", result);
let result = client
.get_process_definition_by_id(&process_definition.id)
.await;
assert!(result.is_err());
}
#[tokio::test]
async fn delete_process_definition_by_id_invalid_token() {
let client_factory = ClientFactory::new(ENGINE_URL, "foo");
let client = client_factory.create_process_definition_client();
let result = client
.delete_process_definition_by_id("foo", Some(true))
.await;
assert!(result.is_err());
let err = result.unwrap_err();
assert_eq!(err.code, 400);
assert_eq!(err.error_type, "BadRequestError");
assert_eq!(
err.message,
"Must provide a token by which to create an identity!"
)
}