mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-07-14 12:36:12 +00:00

* chore: add test * chore: update test * chore: create events * chore: load csv * test: add events * test: clean * chore: fix test * chore: fix test * chore: fix test * chore: fmt --------- Co-authored-by: Mathias Mogensen <mathias@appflowy.io>
72 lines
1.9 KiB
Rust
72 lines
1.9 KiB
Rust
use collab_database::rows::RowId;
|
|
use tokio::sync::broadcast::Receiver;
|
|
|
|
use flowy_database2::entities::UpdateCalculationChangesetPB;
|
|
use flowy_database2::services::database_view::DatabaseViewChanged;
|
|
|
|
use crate::database::database_editor::DatabaseEditorTest;
|
|
|
|
pub struct DatabaseCalculationTest {
|
|
inner: DatabaseEditorTest,
|
|
recv: Option<Receiver<DatabaseViewChanged>>,
|
|
}
|
|
|
|
impl DatabaseCalculationTest {
|
|
pub async fn new() -> Self {
|
|
let editor_test = DatabaseEditorTest::new_grid().await;
|
|
Self {
|
|
inner: editor_test,
|
|
recv: None,
|
|
}
|
|
}
|
|
|
|
pub fn view_id(&self) -> String {
|
|
self.view_id.clone()
|
|
}
|
|
|
|
pub async fn insert_calculation(&mut self, payload: UpdateCalculationChangesetPB) {
|
|
self.recv = Some(
|
|
self
|
|
.editor
|
|
.subscribe_view_changed(&self.view_id())
|
|
.await
|
|
.unwrap(),
|
|
);
|
|
self.editor.update_calculation(payload).await.unwrap();
|
|
}
|
|
|
|
pub async fn assert_calculation_float_value(&mut self, expected: f64) {
|
|
let calculations = self.editor.get_all_calculations(&self.view_id()).await;
|
|
let calculation = calculations.items.first().unwrap();
|
|
assert_eq!(calculation.value, format!("{:.2}", expected));
|
|
}
|
|
|
|
pub async fn assert_calculation_value(&mut self, expected: &str) {
|
|
let calculations = self.editor.get_all_calculations(&self.view_id()).await;
|
|
let calculation = calculations.items.first().unwrap();
|
|
assert_eq!(calculation.value, expected);
|
|
}
|
|
|
|
pub async fn duplicate_row(&self, row_id: &RowId) {
|
|
self
|
|
.editor
|
|
.duplicate_row(&self.view_id, row_id)
|
|
.await
|
|
.unwrap();
|
|
}
|
|
}
|
|
|
|
impl std::ops::Deref for DatabaseCalculationTest {
|
|
type Target = DatabaseEditorTest;
|
|
|
|
fn deref(&self) -> &Self::Target {
|
|
&self.inner
|
|
}
|
|
}
|
|
|
|
impl std::ops::DerefMut for DatabaseCalculationTest {
|
|
fn deref_mut(&mut self) -> &mut Self::Target {
|
|
&mut self.inner
|
|
}
|
|
}
|