123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- use crate::script::{invalid_workspace_name_test_case, FolderScript::*, FolderTest};
- use collab_folder::core::ViewLayout;
- use flowy_folder2::entities::CreateWorkspacePayloadPB;
- use flowy_test::{event_builder::*, FlowyCoreTest};
- #[tokio::test]
- async fn read_all_workspace_test() {
- let mut test = FolderTest::new().await;
- test.run_scripts(vec![ReadAllWorkspaces]).await;
- assert!(!test.all_workspace.is_empty());
- }
- #[tokio::test]
- async fn create_workspace_test() {
- let mut test = FolderTest::new().await;
- let name = "My new workspace".to_owned();
- let desc = "Daily routines".to_owned();
- test
- .run_scripts(vec![CreateWorkspace {
- name: name.clone(),
- desc: desc.clone(),
- }])
- .await;
- let workspace = test.workspace.clone();
- assert_eq!(workspace.name, name);
- test
- .run_scripts(vec![
- ReadWorkspace(Some(workspace.id.clone())),
- AssertWorkspace(workspace),
- ])
- .await;
- }
- #[tokio::test]
- async fn get_workspace_test() {
- let mut test = FolderTest::new().await;
- let workspace = test.workspace.clone();
- test
- .run_scripts(vec![
- ReadWorkspace(Some(workspace.id.clone())),
- AssertWorkspace(workspace),
- ])
- .await;
- }
- #[tokio::test]
- async fn create_parent_view_test() {
- let mut test = FolderTest::new().await;
- test
- .run_scripts(vec![CreateParentView {
- name: "App".to_string(),
- desc: "App description".to_string(),
- }])
- .await;
- let app = test.parent_view.clone();
- test.run_scripts(vec![ReloadParentView(app.id)]).await;
- }
- #[tokio::test]
- async fn create_parent_view_with_invalid_name() {
- for (name, code) in invalid_workspace_name_test_case() {
- let sdk = FlowyCoreTest::new();
- let request = CreateWorkspacePayloadPB {
- name,
- desc: "".to_owned(),
- };
- assert_eq!(
- EventBuilder::new(sdk)
- .event(flowy_folder2::event_map::FolderEvent::CreateWorkspace)
- .payload(request)
- .async_send()
- .await
- .error()
- .unwrap()
- .code,
- code.value()
- )
- }
- }
- #[tokio::test]
- #[should_panic]
- async fn delete_parent_view_test() {
- let mut test = FolderTest::new().await;
- let parent_view = test.parent_view.clone();
- test
- .run_scripts(vec![DeleteParentView, ReloadParentView(parent_view.id)])
- .await;
- }
- #[tokio::test]
- async fn delete_parent_view_then_restore() {
- let mut test = FolderTest::new().await;
- test
- .run_scripts(vec![ReloadParentView(test.parent_view.id.clone())])
- .await;
- let parent_view = test.parent_view.clone();
- test
- .run_scripts(vec![
- DeleteParentView,
- RestoreAppFromTrash,
- ReloadParentView(parent_view.id.clone()),
- AssertParentView(parent_view),
- ])
- .await;
- }
- #[tokio::test]
- async fn update_parent_view_test() {
- let mut test = FolderTest::new().await;
- let parent_view = test.parent_view.clone();
- let new_name = "😁 hell world".to_owned();
- assert_ne!(parent_view.name, new_name);
- test
- .run_scripts(vec![
- UpdateParentView {
- name: Some(new_name.clone()),
- desc: None,
- },
- ReloadParentView(parent_view.id),
- ])
- .await;
- assert_eq!(test.parent_view.name, new_name);
- }
- #[tokio::test]
- async fn app_create_with_view() {
- let mut test = FolderTest::new().await;
- let mut app = test.parent_view.clone();
- test
- .run_scripts(vec![
- CreateView {
- name: "View A".to_owned(),
- desc: "View A description".to_owned(),
- layout: ViewLayout::Document,
- },
- CreateView {
- name: "Grid".to_owned(),
- desc: "Grid description".to_owned(),
- layout: ViewLayout::Grid,
- },
- ReloadParentView(app.id),
- ])
- .await;
- app = test.parent_view.clone();
- assert_eq!(app.child_views.len(), 3);
- assert_eq!(app.child_views[1].name, "View A");
- assert_eq!(app.child_views[2].name, "Grid")
- }
- #[tokio::test]
- async fn view_update() {
- let mut test = FolderTest::new().await;
- let view = test.child_view.clone();
- let new_name = "😁 123".to_owned();
- assert_ne!(view.name, new_name);
- test
- .run_scripts(vec![
- UpdateView {
- name: Some(new_name.clone()),
- desc: None,
- },
- ReadView(view.id),
- ])
- .await;
- assert_eq!(test.child_view.name, new_name);
- }
- #[tokio::test]
- #[should_panic]
- async fn view_delete() {
- let mut test = FolderTest::new().await;
- let view = test.child_view.clone();
- test.run_scripts(vec![DeleteView, ReadView(view.id)]).await;
- }
- #[tokio::test]
- async fn view_delete_then_restore() {
- let mut test = FolderTest::new().await;
- let view = test.child_view.clone();
- test
- .run_scripts(vec![
- DeleteView,
- RestoreViewFromTrash,
- ReadView(view.id.clone()),
- AssertView(view),
- ])
- .await;
- }
- #[tokio::test]
- async fn view_delete_all() {
- let mut test = FolderTest::new().await;
- let parent_view = test.parent_view.clone();
- test
- .run_scripts(vec![
- CreateView {
- name: "View A".to_owned(),
- desc: "View A description".to_owned(),
- layout: ViewLayout::Document,
- },
- CreateView {
- name: "Grid".to_owned(),
- desc: "Grid description".to_owned(),
- layout: ViewLayout::Grid,
- },
- ReloadParentView(parent_view.id.clone()),
- ])
- .await;
- assert_eq!(
- test.parent_view.child_views.len(),
- 3,
- "num of belongings should be 3"
- );
- let view_ids = test
- .parent_view
- .child_views
- .iter()
- .map(|view| view.id.clone())
- .collect::<Vec<String>>();
- test
- .run_scripts(vec![
- DeleteViews(view_ids),
- ReloadParentView(parent_view.id),
- ReadTrash,
- ])
- .await;
- assert_eq!(test.parent_view.child_views.len(), 0);
- assert_eq!(test.trash.len(), 3);
- }
- #[tokio::test]
- async fn view_delete_all_permanent() {
- let mut test = FolderTest::new().await;
- let parent_view = test.parent_view.clone();
- test
- .run_scripts(vec![
- CreateView {
- name: "View A".to_owned(),
- desc: "View A description".to_owned(),
- layout: ViewLayout::Document,
- },
- ReloadParentView(parent_view.id.clone()),
- ])
- .await;
- let view_ids = test
- .parent_view
- .child_views
- .iter()
- .map(|view| view.id.clone())
- .collect::<Vec<String>>();
- test
- .run_scripts(vec![
- DeleteViews(view_ids),
- ReloadParentView(parent_view.id),
- DeleteAllTrash,
- ReadTrash,
- ])
- .await;
- assert_eq!(test.parent_view.child_views.len(), 0);
- assert_eq!(test.trash.len(), 0);
- }
|