| 20 | |
| 21 | #[test] |
| 22 | fn valid_insert_accepted() { |
| 23 | let (state, cs) = setup(); |
| 24 | let validator = Validator::new(cs, 100); |
| 25 | |
| 26 | let change = ProposedChange { |
| 27 | collection: "users".into(), |
| 28 | row_id: "u1".into(), |
| 29 | surrogate: nodedb_types::Surrogate::ZERO, |
| 30 | fields: vec![ |
| 31 | ("name".into(), LoroValue::String("Alice".into())), |
| 32 | ( |
| 33 | "email".into(), |
| 34 | LoroValue::String("alice@example.com".into()), |
| 35 | ), |
| 36 | ], |
| 37 | }; |
| 38 | |
| 39 | assert!(matches!( |
| 40 | validator.validate(&state, &change), |
| 41 | ValidationOutcome::Accepted |
| 42 | )); |
| 43 | } |
| 44 | |
| 45 | #[test] |
| 46 | fn not_null_violation() { |