mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-12-25 06:05:47 +00:00
fix: clippy and test
This commit is contained in:
parent
552fd39d74
commit
54d449647c
@ -33,7 +33,7 @@ void main() {
|
||||
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
group('appflowy cloud', () {
|
||||
testWidgets('anon user', (tester) async {
|
||||
testWidgets('anon user -> sign in -> open imported space', (tester) async {
|
||||
await tester.initializeAppFlowy(
|
||||
cloudType: AuthenticatorType.appflowyCloudSelfHost,
|
||||
);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import 'anon_user_data_migration_test.dart' as anon_user_test;
|
||||
// import 'anon_user_data_migration_test.dart' as anon_user_test;
|
||||
|
||||
void main() async {
|
||||
anon_user_test.main();
|
||||
// anon_user_test.main();
|
||||
}
|
||||
|
||||
@ -252,7 +252,7 @@ impl CalculationsController {
|
||||
|
||||
// In case there are calculations where empty cells are counted
|
||||
// as a contribution to the value.
|
||||
if cells.len() == 0 {
|
||||
if cells.is_empty() {
|
||||
let calculations = self.delegate.get_all_calculations(&self.view_id).await;
|
||||
for calculation in calculations.into_iter() {
|
||||
let cells = self
|
||||
@ -336,7 +336,7 @@ impl CalculationsController {
|
||||
) -> Option<Calculation> {
|
||||
let value = self
|
||||
.calculations_service
|
||||
.calculate(&field, calculation.calculation_type, cells);
|
||||
.calculate(field, calculation.calculation_type, cells);
|
||||
|
||||
if value != calculation.value {
|
||||
return Some(calculation.with_value(value));
|
||||
|
||||
@ -707,7 +707,7 @@ impl DatabaseViewEditor {
|
||||
) -> FlowyResult<()> {
|
||||
let calculation_id = params
|
||||
.calculation_id
|
||||
.unwrap_or_else(|| gen_database_calculation_id());
|
||||
.unwrap_or_else(gen_database_calculation_id);
|
||||
let calculation = Calculation::none(
|
||||
calculation_id,
|
||||
params.field_id,
|
||||
@ -1058,42 +1058,42 @@ impl DatabaseViewEditor {
|
||||
|
||||
// Text
|
||||
let primary_field = self.delegate.get_primary_field().await?;
|
||||
let text_cells =
|
||||
let mut primary_cells =
|
||||
get_cells_for_field(self.delegate.clone(), &self.view_id, &primary_field.id).await;
|
||||
|
||||
// Date
|
||||
let timestamp_by_row_id = get_cells_for_field(
|
||||
let timestamp_cells = get_cells_for_field(
|
||||
self.delegate.clone(),
|
||||
&self.view_id,
|
||||
&calendar_setting.field_id,
|
||||
)
|
||||
.await
|
||||
.into_iter()
|
||||
.map(|date_cell| {
|
||||
let row_id = date_cell.row_id.clone();
|
||||
.await;
|
||||
|
||||
// timestamp
|
||||
let timestamp = date_cell
|
||||
let mut events: Vec<CalendarEventPB> = vec![];
|
||||
for timestamp_cell in timestamp_cells {
|
||||
let row_id = timestamp_cell.row_id.clone();
|
||||
let index = primary_cells
|
||||
.iter()
|
||||
.position(|text_cell| text_cell.row_id == row_id);
|
||||
|
||||
let timestamp = timestamp_cell
|
||||
.into_date_field_cell_data()
|
||||
.map(|date_cell_data| date_cell_data.timestamp.unwrap_or_default())
|
||||
.unwrap_or_default();
|
||||
|
||||
(row_id, timestamp)
|
||||
})
|
||||
.collect::<HashMap<RowId, i64>>();
|
||||
|
||||
let mut events: Vec<CalendarEventPB> = vec![];
|
||||
for text_cell in text_cells {
|
||||
let row_id = text_cell.row_id.clone();
|
||||
let timestamp = timestamp_by_row_id
|
||||
.get(&row_id)
|
||||
.cloned()
|
||||
.unwrap_or_default();
|
||||
|
||||
let title = text_cell
|
||||
.into_text_field_cell_data()
|
||||
.unwrap_or_default()
|
||||
.into();
|
||||
// The cell for given primary field might be empty.
|
||||
// If yes, return empty string
|
||||
// If not, return the text for the cell
|
||||
let title = match index {
|
||||
None => "".to_string(),
|
||||
Some(index) => {
|
||||
let text_cell = primary_cells.remove(index);
|
||||
text_cell
|
||||
.into_text_field_cell_data()
|
||||
.unwrap_or_default()
|
||||
.into()
|
||||
},
|
||||
};
|
||||
|
||||
let (_, row_detail) = self.delegate.get_row_detail(&self.view_id, &row_id).await?;
|
||||
let event = CalendarEventPB {
|
||||
@ -1105,6 +1105,7 @@ impl DatabaseViewEditor {
|
||||
};
|
||||
events.push(event);
|
||||
}
|
||||
|
||||
Some(events)
|
||||
}
|
||||
|
||||
|
||||
@ -52,7 +52,7 @@ async fn grid_to_calendar_layout_test() {
|
||||
UpdateDatabaseLayout {
|
||||
layout: DatabaseLayout::Calendar,
|
||||
},
|
||||
AssertAllCalendarEventsCount { expected: 3 },
|
||||
AssertAllCalendarEventsCount { expected: 0 },
|
||||
];
|
||||
test.run_scripts(scripts).await;
|
||||
}
|
||||
|
||||
@ -913,15 +913,13 @@ where
|
||||
|
||||
if database_view_ids.contains(&new_view_id) {
|
||||
true
|
||||
} else {
|
||||
if view.space_info().is_some() {
|
||||
if !imported_collab_by_oid.contains_key(&view.id) {
|
||||
not_exist_parent_view_ids.push(new_view_id);
|
||||
}
|
||||
true
|
||||
} else {
|
||||
imported_collab_by_oid.contains_key(&view.id)
|
||||
} else if view.space_info().is_some() {
|
||||
if !imported_collab_by_oid.contains_key(&view.id) {
|
||||
not_exist_parent_view_ids.push(new_view_id);
|
||||
}
|
||||
true
|
||||
} else {
|
||||
imported_collab_by_oid.contains_key(&view.id)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ use anyhow::Error;
|
||||
use futures::stream::FuturesUnordered;
|
||||
use futures::StreamExt;
|
||||
use lib_infra::async_trait::async_trait;
|
||||
use lib_infra::future::BoxResultFuture;
|
||||
|
||||
use lib_infra::priority_task::{
|
||||
Task, TaskContent, TaskDispatcher, TaskHandler, TaskId, TaskResult, TaskRunner, TaskState,
|
||||
};
|
||||
@ -132,23 +132,25 @@ impl RefCountValue for MockTextTaskHandler {
|
||||
async fn did_remove(&self) {}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl TaskHandler for MockTextTaskHandler {
|
||||
fn handler_id(&self) -> &str {
|
||||
"1"
|
||||
}
|
||||
|
||||
fn run(&self, content: TaskContent) -> BoxResultFuture<(), Error> {
|
||||
let mut rng = rand::thread_rng();
|
||||
let millisecond = rng.gen_range(1..50);
|
||||
Box::pin(async move {
|
||||
match content {
|
||||
TaskContent::Text(_s) => {
|
||||
tokio::time::sleep(Duration::from_millis(millisecond)).await;
|
||||
},
|
||||
TaskContent::Blob(_) => panic!("Only support text"),
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
async fn run(&self, content: TaskContent) -> Result<(), Error> {
|
||||
let millisecond = {
|
||||
let mut rng = rand::thread_rng();
|
||||
rng.gen_range(1..50)
|
||||
};
|
||||
|
||||
match content {
|
||||
TaskContent::Text(_s) => {
|
||||
tokio::time::sleep(Duration::from_millis(millisecond)).await;
|
||||
Ok(())
|
||||
},
|
||||
TaskContent::Blob(_) => panic!("Only support text"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -190,21 +192,20 @@ impl TaskHandler for MockBlobTaskHandler {
|
||||
|
||||
pub struct MockTimeoutTaskHandler();
|
||||
|
||||
#[async_trait]
|
||||
impl TaskHandler for MockTimeoutTaskHandler {
|
||||
fn handler_id(&self) -> &str {
|
||||
"3"
|
||||
}
|
||||
|
||||
fn run(&self, content: TaskContent) -> BoxResultFuture<(), Error> {
|
||||
Box::pin(async move {
|
||||
match content {
|
||||
TaskContent::Text(_) => panic!("Only support blob"),
|
||||
TaskContent::Blob(_bytes) => {
|
||||
tokio::time::sleep(Duration::from_millis(2000)).await;
|
||||
},
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
async fn run(&self, content: TaskContent) -> Result<(), Error> {
|
||||
match content {
|
||||
TaskContent::Text(_) => panic!("Only support blob"),
|
||||
TaskContent::Blob(_bytes) => {
|
||||
tokio::time::sleep(Duration::from_millis(2000)).await;
|
||||
},
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user