Added default value.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s

This commit is contained in:
Jeff Baskin 2025-08-21 10:38:13 -04:00
parent c961cf49a8
commit 2cc63b9527

View File

@ -1217,8 +1217,6 @@ mod additions {
}
}
type DocDefMap = HashMap<String, FieldSetting>;
#[derive(Clone, Debug)]
struct DocDef {
fields: HashMap<String, FieldSetting>,
@ -1247,6 +1245,14 @@ impl DocDef {
setting.set_default(DefaultSetting::FieldType);
}
fn set_default_value<F>(&mut self, field_name: &str, value: F)
where
F: Into<Field>,
{
let setting = self.fields.get_mut(field_name).unwrap();
setting.set_default(DefaultSetting::Value(value.into()));
}
fn iter(&self) -> impl Iterator<Item = (&String, &FieldSetting)> {
self.fields.iter()
}
@ -1622,7 +1628,7 @@ impl DocumentFile {
match holder.get_field(key) {
Some(_) => {}
None => match value.get_default() {
DefaultSetting::Value(_) => {}
DefaultSetting::Value(data) => holder.add_field(key.clone(), data.clone()),
DefaultSetting::FieldType => {
holder.add_field(key.clone(), value.get_type().get_default())
}
@ -2147,6 +2153,30 @@ mod document_files {
_ => unreachable!("got {:?}: should have gotten a reply", action),
}
}
#[test]
fn can_a_default_value_be_set() {
let doc_name = "value";
let mut docdef = create_docdef([FieldType::Uuid].to_vec());
let input = Uuid::nil();
docdef.set_default_value("field0", input.clone());
let (queue, rx) = test_doc(doc_name, docdef, standard_routes());
let new_doc = Addition::new();
let msg = Message::new(doc_name, new_doc);
queue.send(msg).unwrap();
let result = rx.recv_timeout(TIMEOUT).unwrap();
let action = result.get_action();
match action {
MsgAction::Reply(docs) => {
assert_eq!(docs.len(), 1);
let expected: Field = input.into();
for doc in docs.iter() {
assert_eq!(doc.get_field("field0").unwrap(), &expected);
}
}
_ => unreachable!("got {:?}: should have gotten a reply", action),
}
}
}
#[cfg(test)]