test.rs 1.4 KB

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