Skip to content

Commit 471acc6

Browse files
committed
chore: add test for snapshotting.
1 parent 56c6d97 commit 471acc6

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

Cargo.lock

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

migration/util/migrator-types/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ aptos-config = { workspace = true }
3030
mtma-types = { workspace = true }
3131
reqwest = { workspace = true }
3232
mtma-util = { workspace = true }
33+
tokio = { workspace = true }
34+
35+
[dev-dependencies]
36+
tempfile = { workspace = true }
3337

3438
[lints]
3539
workspace = true

migration/util/migrator-types/src/migrator/movement_migrator.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,44 @@ impl MovementMigrator {
141141
Ok(Self::new(Runner::Movement(Movement::try_from_dot_movement_dir(path)?)))
142142
}
143143
}
144+
145+
#[cfg(test)]
146+
mod tests {
147+
use super::*;
148+
149+
#[tokio::test]
150+
async fn test_snapshot() -> Result<(), anyhow::Error> {
151+
let mut migrator = MovementMigrator::try_temp()?;
152+
migrator.set_overlays(Overlays::default());
153+
154+
let migrator_for_task = migrator.clone();
155+
let migrator_task = kestrel::task(async move { migrator_for_task.run().await });
156+
157+
// wait for the rest api to be ready
158+
let _rest_api_url =
159+
migrator.wait_for_rest_api_url(tokio::time::Duration::from_secs(300)).await?;
160+
161+
// end the migrator task
162+
kestrel::end!(migrator_task)?;
163+
164+
// snapshot the migrator
165+
let snapshot_dir = tempfile::tempdir()?;
166+
let mut snapshot_migrator = migrator.snapshot(snapshot_dir.path().to_path_buf()).await?;
167+
snapshot_migrator.set_overlays(Overlays::default());
168+
169+
// run the snapshot migrator
170+
let snapshot_migrator_for_task = snapshot_migrator.clone();
171+
let snapshot_migrator_task =
172+
kestrel::task(async move { snapshot_migrator_for_task.run().await });
173+
174+
// wait for the rest api to be ready
175+
let _rest_api_url = snapshot_migrator
176+
.wait_for_rest_api_url(tokio::time::Duration::from_secs(300))
177+
.await?;
178+
179+
// end the snapshot migrator task
180+
kestrel::end!(snapshot_migrator_task)?;
181+
182+
Ok(())
183+
}
184+
}

0 commit comments

Comments
 (0)