parent
25926cba83
commit
4db61d89a2
2 changed files with 39 additions and 14 deletions
|
@ -11,7 +11,7 @@ impl Value {
|
|||
_opt: &Options,
|
||||
_txn: &Transaction,
|
||||
) -> Result<(), Error> {
|
||||
*self = Value::base();
|
||||
*self = Value::None;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
@ -24,19 +24,10 @@ mod tests {
|
|||
use crate::sql::test::Parse;
|
||||
|
||||
#[tokio::test]
|
||||
async fn clear_none() {
|
||||
async fn clear_value() {
|
||||
let (ctx, opt, txn) = mock().await;
|
||||
let mut val = Value::parse("{ test: { other: null, something: 123 } }");
|
||||
let res = Value::parse("{}");
|
||||
val.clear(&ctx, &opt, &txn).await.unwrap();
|
||||
assert_eq!(res, val);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn clear_path() {
|
||||
let (ctx, opt, txn) = mock().await;
|
||||
let mut val = Value::parse("{ test: { other: null, something: 123 } }");
|
||||
let res = Value::parse("{}");
|
||||
let res = Value::None;
|
||||
val.clear(&ctx, &opt, &txn).await.unwrap();
|
||||
assert_eq!(res, val);
|
||||
}
|
||||
|
|
|
@ -656,11 +656,13 @@ async fn define_statement_index_single_unique() -> Result<(), Error> {
|
|||
INFO FOR TABLE user;
|
||||
CREATE user:1 SET email = 'test@surrealdb.com';
|
||||
CREATE user:2 SET email = 'test@surrealdb.com';
|
||||
DELETE user:1;
|
||||
CREATE user:2 SET email = 'test@surrealdb.com';
|
||||
";
|
||||
let dbs = Datastore::new("memory").await?;
|
||||
let ses = Session::for_kv().with_ns("test").with_db("test");
|
||||
let res = &mut dbs.execute(&sql, &ses, None, false).await?;
|
||||
assert_eq!(res.len(), 5);
|
||||
assert_eq!(res.len(), 7);
|
||||
//
|
||||
let tmp = res.remove(0).result;
|
||||
assert!(tmp.is_ok());
|
||||
|
@ -689,6 +691,13 @@ async fn define_statement_index_single_unique() -> Result<(), Error> {
|
|||
Some(e) if e.to_string() == r#"Database index `test` already contains "test@surrealdb.com", with record `user:2`"#
|
||||
));
|
||||
//
|
||||
let tmp = res.remove(0).result;
|
||||
assert!(tmp.is_ok());
|
||||
//
|
||||
let tmp = res.remove(0).result?;
|
||||
let val = Value::parse("[{ id: user:2, email: 'test@surrealdb.com' }]");
|
||||
assert_eq!(tmp, val);
|
||||
//
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -702,11 +711,16 @@ async fn define_statement_index_multiple_unique() -> Result<(), Error> {
|
|||
CREATE user:2 SET account = 'tesla', email = 'test@surrealdb.com';
|
||||
CREATE user:3 SET account = 'apple', email = 'test@surrealdb.com';
|
||||
CREATE user:4 SET account = 'tesla', email = 'test@surrealdb.com';
|
||||
DELETE user:1;
|
||||
CREATE user:3 SET account = 'apple', email = 'test@surrealdb.com';
|
||||
CREATE user:4 SET account = 'tesla', email = 'test@surrealdb.com';
|
||||
DELETE user:2;
|
||||
CREATE user:4 SET account = 'tesla', email = 'test@surrealdb.com';
|
||||
";
|
||||
let dbs = Datastore::new("memory").await?;
|
||||
let ses = Session::for_kv().with_ns("test").with_db("test");
|
||||
let res = &mut dbs.execute(&sql, &ses, None, false).await?;
|
||||
assert_eq!(res.len(), 7);
|
||||
assert_eq!(res.len(), 12);
|
||||
//
|
||||
let tmp = res.remove(0).result;
|
||||
assert!(tmp.is_ok());
|
||||
|
@ -745,6 +759,26 @@ async fn define_statement_index_multiple_unique() -> Result<(), Error> {
|
|||
Some(e) if e.to_string() == r#"Database index `test` already contains ["tesla", "test@surrealdb.com"], with record `user:4`"#
|
||||
));
|
||||
//
|
||||
let tmp = res.remove(0).result;
|
||||
assert!(tmp.is_ok());
|
||||
//
|
||||
let tmp = res.remove(0).result?;
|
||||
let val = Value::parse("[{ id: user:3, account: 'apple', email: 'test@surrealdb.com' }]");
|
||||
assert_eq!(tmp, val);
|
||||
//
|
||||
let tmp = res.remove(0).result;
|
||||
assert!(matches!(
|
||||
tmp.err(),
|
||||
Some(e) if e.to_string() == r#"Database index `test` already contains ["tesla", "test@surrealdb.com"], with record `user:4`"#
|
||||
));
|
||||
//
|
||||
let tmp = res.remove(0).result;
|
||||
assert!(tmp.is_ok());
|
||||
//
|
||||
let tmp = res.remove(0).result?;
|
||||
let val = Value::parse("[{ id: user:4, account: 'tesla', email: 'test@surrealdb.com' }]");
|
||||
assert_eq!(tmp, val);
|
||||
//
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue