use crate::actions::verbs::edit::{Create, Field, Update};
use crate::boundary::{Action, Gesture};
pub(crate) fn every_field() -> Vec<Field> {
vec![
Field::Priority(Some(-2)),
Field::Priority(None),
Field::Tag {
tag: "boundary".to_owned(),
on: true,
},
Field::Tag {
tag: "stale".to_owned(),
on: false,
},
Field::Parent(Some("bl-1a2b".to_owned())),
Field::Parent(None),
Field::Needs {
edge: "bl-9:close".to_owned(),
on: true,
},
Field::Needs {
edge: "bl-8".to_owned(),
on: false,
},
]
}
pub(super) fn surface() -> Vec<Gesture> {
let mut out = vec![
Gesture::Act(Action::Close {
project: "proj".into(),
id: "bl-1".into(),
name: "alba".into(),
}),
Gesture::Act(Action::Assign {
project: "proj".into(),
id: "bl-1".into(),
name: "alba".into(),
}),
Gesture::Act(Action::Release {
project: "proj".into(),
id: "bl-1".into(),
name: "alba".into(),
}),
];
for body in [Some("the body".to_owned()), None] {
out.push(Gesture::Act(Action::Create {
project: "proj".into(),
name: "alba".into(),
fields: Create {
title: "a title".into(),
body,
..Create::default()
},
}));
}
for fields in [
Update {
title: Some("t".into()),
body: Some(String::new()),
note: Some("n".into()),
..Update::default()
},
Update::default(),
] {
out.push(Gesture::Act(Action::Update {
project: "proj".into(),
id: "bl-1".into(),
name: "alba".into(),
fields,
}));
}
out.push(Gesture::Act(Action::Create {
project: "proj".into(),
name: "alba".into(),
fields: Create {
title: "a title".into(),
body: None,
fields: every_field(),
},
}));
out.push(Gesture::Act(Action::Update {
project: "proj".into(),
id: "bl-1".into(),
name: "alba".into(),
fields: Update {
fields: every_field(),
..Update::default()
},
}));
out
}