Unique id only added when successful.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
This commit is contained in:
parent
0c5ad832ed
commit
55297ef097
@ -1844,7 +1844,6 @@ impl DocumentFile {
|
|||||||
Ok(field_info) => match field_info.check(Some(value.clone())) {
|
Ok(field_info) => match field_info.check(Some(value.clone())) {
|
||||||
Ok(data) => {
|
Ok(data) => {
|
||||||
holder.add_field(key.clone(), value.clone());
|
holder.add_field(key.clone(), value.clone());
|
||||||
field_info.use_unique_value(value.clone());
|
|
||||||
}
|
}
|
||||||
Err(err) => return err.into(),
|
Err(err) => return err.into(),
|
||||||
},
|
},
|
||||||
@ -1873,6 +1872,9 @@ impl DocumentFile {
|
|||||||
oid = Oid::new();
|
oid = Oid::new();
|
||||||
}
|
}
|
||||||
self.docs.insert(oid, holder.clone());
|
self.docs.insert(oid, holder.clone());
|
||||||
|
for (key, value) in holder.iter() {
|
||||||
|
self.docdef.use_unique_value(key, value.clone());
|
||||||
|
}
|
||||||
let mut reply = Reply::new();
|
let mut reply = Reply::new();
|
||||||
reply.add(holder);
|
reply.add(holder);
|
||||||
reply.into()
|
reply.into()
|
||||||
@ -2756,6 +2758,7 @@ mod document_files {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
fn unique_value_remains_available_if_failure_occurs() {
|
fn unique_value_remains_available_if_failure_occurs() {
|
||||||
let (mut docdef, doc_name) = create_docdef([FieldType::Uuid, FieldType::Uuid].to_vec());
|
let (mut docdef, doc_name) = create_docdef([FieldType::Uuid, FieldType::Uuid].to_vec());
|
||||||
docdef.set_unique("field0");
|
docdef.set_unique("field0");
|
||||||
@ -2770,7 +2773,7 @@ mod document_files {
|
|||||||
let mut good_addition = Addition::new();
|
let mut good_addition = Addition::new();
|
||||||
good_addition.add_field("field0".to_string(), field0.clone());
|
good_addition.add_field("field0".to_string(), field0.clone());
|
||||||
good_addition.add_field("field1".to_string(), field0.clone());
|
good_addition.add_field("field1".to_string(), field0.clone());
|
||||||
let msg = Message::new(doc_name.clone(), bad_addition.clone());
|
let msg = Message::new(doc_name.clone(), good_addition.clone());
|
||||||
queue.send(msg).unwrap();
|
queue.send(msg).unwrap();
|
||||||
let result = rx.recv_timeout(TIMEOUT).unwrap();
|
let result = rx.recv_timeout(TIMEOUT).unwrap();
|
||||||
let action = result.get_action();
|
let action = result.get_action();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user