test.rs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. use crate::grid::field_test::util::create_text_field;
  2. use crate::grid::snapshot_test::script::{GridSnapshotTest, SnapshotScript::*};
  3. #[tokio::test]
  4. async fn snapshot_create_test() {
  5. let mut test = GridSnapshotTest::new().await;
  6. let (_, field_rev) = create_text_field(&test.grid_id());
  7. let scripts = vec![CreateField { field_rev }, WriteSnapshot];
  8. test.run_scripts(scripts).await;
  9. let snapshot = test.current_snapshot.clone().unwrap();
  10. let content = test.grid_pad().await.json_str().unwrap();
  11. test.run_scripts(vec![AssertSnapshotContent {
  12. snapshot,
  13. expected: content,
  14. }])
  15. .await;
  16. }
  17. #[tokio::test]
  18. async fn snapshot_multi_version_test() {
  19. let mut test = GridSnapshotTest::new().await;
  20. let original_content = test.grid_pad().await.json_str().unwrap();
  21. // Create a field
  22. let (_, field_rev) = create_text_field(&test.grid_id());
  23. let scripts = vec![
  24. CreateField {
  25. field_rev: field_rev.clone(),
  26. },
  27. WriteSnapshot,
  28. ];
  29. test.run_scripts(scripts).await;
  30. // Delete a field
  31. let scripts = vec![DeleteField { field_rev }, WriteSnapshot];
  32. test.run_scripts(scripts).await;
  33. // The latest snapshot will be the same as the original content.
  34. test.run_scripts(vec![AssertSnapshotContent {
  35. snapshot: test.get_latest_snapshot().await.unwrap(),
  36. expected: original_content,
  37. }])
  38. .await;
  39. }