Skip to content

Commit

Permalink
feat(template): Add query method to template (#519)
Browse files Browse the repository at this point in the history
  • Loading branch information
vobradovich authored Sep 6, 2024
1 parent aab0873 commit ec3c48c
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 2 deletions.
5 changes: 5 additions & 0 deletions templates/program/app/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ impl {{ service-struct-name }} {
pub fn do_something(&mut self) -> String {
"Hello from {{ service-name }}!".to_string()
}

// Service's query
pub fn get_something(&self) -> String {
"Hello from {{ service-name }}!".to_string()
}
}

pub struct {{ program-struct-name }}(());
Expand Down
31 changes: 29 additions & 2 deletions templates/program/tests/gtest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,45 @@ async fn do_something_works() {
let program_factory = {{ client_crate_name }}::{{ service-name }}Factory::new(remoting.clone());

let program_id = program_factory
.new() // Call program's constructor (see src/lib.rs:27)
.new() // Call program's constructor (see app/src/lib.rs:29)
.send_recv(program_code_id, b"salt")
.await
.unwrap();

let mut service_client = {{ client_crate_name }}::{{ service-name }}::new(remoting.clone());

let result = service_client
.do_something() // Call service's method (see src/lib.rs:17)
.do_something() // Call service's method (see app/src/lib.rs:14)
.send_recv(program_id)
.await
.unwrap();

assert_eq!(result, "Hello from {{ service-name }}!".to_string());
}

#[tokio::test]
async fn get_something_works() {
let remoting = GTestRemoting::new(ACTOR_ID.into());
remoting.system().init_logger();

// Submit program code into the system
let program_code_id = remoting.system().submit_code({{ crate_name }}::WASM_BINARY);

let program_factory = {{ client_crate_name }}::{{ service-name }}Factory::new(remoting.clone());

let program_id = program_factory
.new() // Call program's constructor (see app/src/lib.rs:29)
.send_recv(program_code_id, b"salt")
.await
.unwrap();

let service_client = {{ client_crate_name }}::{{ service-name }}::new(remoting.clone());

let result = service_client
.get_something() // Call service's query (see app/src/lib.rs:19)
.recv(program_id)
.await
.unwrap();

assert_eq!(result, "Hello from {{ service-name }}!".to_string());
}

0 comments on commit ec3c48c

Please sign in to comment.