Function holochain::test_utils::install_app
source · pub async fn install_app(
name: &str,
cell_data: Vec<(InstalledCell, Option<MembraneProof>)>,
dnas: Vec<DnaFile>,
conductor_handle: ConductorHandle
)
Expand description
Do what’s necessary to install an app
Examples found in repository?
src/test_utils/conductor_setup.rs (line 241)
234 235 236 237 238 239 240 241 242 243 244 245 246 247
pub async fn bring_bob_online(&mut self) {
let dna_file = self.alice_call_data().ribosome.dna_file().clone();
if self.bob_call_data().is_none() {
let bob_agent_id = fake_agent_pubkey_2();
let bob_cell_id = CellId::new(dna_file.dna_hash().clone(), bob_agent_id.clone());
let bob_installed_cell = InstalledCell::new(bob_cell_id.clone(), "bob_handle".into());
let cell_data = vec![(bob_installed_cell, None)];
install_app("bob_app", cell_data, vec![dna_file.clone()], self.handle()).await;
self.cell_apis.insert(
bob_cell_id.clone(),
CellHostFnCaller::new(&bob_cell_id, &self.handle(), &dna_file, None).await,
);
}
}
More examples
src/test_utils.rs (line 421)
402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427
pub async fn setup_app_inner(
db_dir: &Path,
apps_data: Vec<(&str, InstalledCellsWithProofs)>,
dnas: Vec<DnaFile>,
network: Option<KitsuneP2pConfig>,
) -> (RealAppInterfaceApi, ConductorHandle) {
let conductor_handle = ConductorBuilder::new()
.config(ConductorConfig {
admin_interfaces: Some(vec![AdminInterfaceConfig {
driver: InterfaceDriver::Websocket { port: 0 },
}]),
network,
..Default::default()
})
.test(db_dir, &[])
.await
.unwrap();
for (app_name, cell_data) in apps_data {
install_app(app_name, cell_data, dnas.clone(), conductor_handle.clone()).await;
}
let handle = conductor_handle.clone();
(RealAppInterfaceApi::new(conductor_handle), handle)
}