use crate::common::{
self, Args, Result,
node::{Convert, NodeExec},
};
use demo_fungible_token::InitConfig;
use gear_core::ids::{CodeId, prelude::*};
use gsdk::Api;
use scale_info::scale::Encode;
#[tokio::test]
async fn test_command_upload_works() -> Result<()> {
let node = common::dev()?;
let signer = Api::new(node.ws().as_str())
.await?
.signer("//Alice", None)?;
let code_id = CodeId::generate(demo_fungible_token::WASM_BINARY);
assert!(
signer
.api()
.instrumented_code_storage(code_id)
.await
.is_err(),
"code should not exist"
);
let payload = hex::encode(InitConfig::test_sequence().encode());
let output = node.run(
Args::new("upload")
.program_stdin(demo_fungible_token::WASM_BINARY)
.payload(payload),
)?;
assert!(
output
.stdout
.convert()
.contains("Submitted Gear::upload_program"),
"code should be uploaded, but got: '{}'",
output.stderr.convert()
);
assert!(
signer
.api()
.instrumented_code_storage(code_id)
.await
.is_ok(),
"code should exist"
);
Ok(())
}
#[tokio::test]
async fn test_command_upload_code_works() -> Result<()> {
let node = common::dev()?;
let output = node.run(
Args::new("upload")
.flag("--code-only")
.program_stdin(demo_fungible_token::WASM_BINARY),
)?;
assert!(
output
.stdout
.convert()
.contains("Submitted Gear::upload_code"),
"code should be uploaded, but got: {}",
output.stderr.convert()
);
Ok(())
}