Skip to content

Commit 9277340

Browse files
committed
feat(users): user wf tests
1 parent 65dbb93 commit 9277340

File tree

21 files changed

+110
-37
lines changed

21 files changed

+110
-37
lines changed

Cargo.lock

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,9 @@ path = "packages/services/external/ops/request-validate"
560560
[workspace.dependencies.external-worker]
561561
path = "packages/services/external/worker"
562562

563+
[workspace.dependencies.faker]
564+
path = "packages/services/faker"
565+
563566
[workspace.dependencies.faker-build]
564567
path = "packages/services/faker/ops/build"
565568

packages/services/faker/Cargo.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[package]
2+
name = "faker"
3+
version.workspace = true
4+
authors.workspace = true
5+
license.workspace = true
6+
edition.workspace = true
7+
8+
[dependencies]
9+
chirp-workflow.workspace = true
10+
user.workspace = true

packages/services/faker/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub mod ops;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pub mod user;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
use chirp_workflow::prelude::*;
2+
3+
#[derive(Debug, Default)]
4+
pub struct Input {}
5+
6+
#[derive(Debug)]
7+
pub struct Output {
8+
pub user_id: Uuid,
9+
}
10+
11+
#[operation]
12+
pub async fn user(ctx: &OperationCtx, input: &Input) -> GlobalResult<Output> {
13+
let user_id = Uuid::new_v4();
14+
15+
let mut creation_sub = chirp_workflow::compat::subscribe::<
16+
user::workflows::user::CreateComplete, _
17+
>(&ctx.op_ctx(), ("user_id", user_id)).await?;
18+
19+
chirp_workflow::compat::workflow(
20+
&ctx.op_ctx(),
21+
user::workflows::user::Input {
22+
user_id,
23+
display_name: None,
24+
}
25+
)
26+
.await?
27+
.tag("user_id", user_id)
28+
.dispatch()
29+
.await?;
30+
31+
creation_sub.next().await?;
32+
33+
Ok(Output {
34+
user_id: user_id,
35+
})
36+
}

packages/services/faker/tests/user.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
use chirp_workflow::prelude::*;
2+
3+
#[workflow_test]
4+
async fn empty(ctx: TestCtx) {
5+
let res = ctx.op(faker::ops::user::Input {}).await.unwrap();
6+
7+
let get_res = ctx.op(::user::ops::get::Input {
8+
user_ids: vec![res.user_id],
9+
})
10+
.await
11+
.unwrap();
12+
13+
assert_eq!(1, get_res.users.len(), "user not created");
14+
}

packages/services/monolith/standalone/workflow-worker/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ job-run.workspace = true
1717
linode.workspace = true
1818
pegboard.workspace = true
1919
rivet-config.workspace = true
20+
user.workspace = true

packages/services/monolith/standalone/workflow-worker/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ pub async fn run_from_env(
1515
.merge(linode::registry()?)?
1616
.merge(ds::registry()?)?
1717
.merge(job_run::registry()?)?
18-
.merge(pegboard::registry()?)?;
18+
.merge(pegboard::registry()?)?
19+
.merge(user::registry()?)?;
1920

2021
let db = db::DatabaseCrdbNats::from_pools(pools.crdb()?, pools.nats()?);
2122
let worker = Worker::new(reg.handle(), db);

packages/services/user/Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,6 @@ default-features = false
3232
faker-user.workspace = true
3333
reqwest = "0.11"
3434
upload-get.workspace = true
35-
upload-prepare.workspace = true
35+
upload-prepare.workspace = true
36+
37+
faker.workspace = true

0 commit comments

Comments
 (0)