Skip to content

Commit 6657b62

Browse files
authored
Merge pull request AppFlowy-IO#444 from AppFlowy-IO/test-invite-workspace
chore: replace test using invite and accept workspace
2 parents ac62258 + 8e27e94 commit 6657b62

File tree

7 files changed

+65
-108
lines changed

7 files changed

+65
-108
lines changed

libs/client-api-test-util/src/test_client.rs

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ use database_entity::dto::{
2323
use mime::Mime;
2424
use serde_json::{json, Value};
2525
use shared_entity::dto::workspace_dto::{
26-
BlobMetadata, CreateWorkspaceMember, WorkspaceMemberChangeset, WorkspaceMemberInvitation,
27-
WorkspaceSpaceUsage,
26+
BlobMetadata, WorkspaceMemberChangeset, WorkspaceMemberInvitation, WorkspaceSpaceUsage,
2827
};
2928
use shared_entity::response::AppResponseError;
3029
use std::collections::HashMap;
@@ -150,26 +149,6 @@ impl TestClient {
150149
Self::new(registered_user, true).await
151150
}
152151

153-
pub async fn add_workspace_member(
154-
&self,
155-
workspace_id: &str,
156-
other_client: &TestClient,
157-
role: AFRole,
158-
) {
159-
// TODO(zack): replace with `invite_and_accepted_workspace_member`. Make sure running local test with `cargo run`
160-
// and then all the local tasks should be passed.
161-
// mark the create_workspace_members_handler with ` #[deprecated(note = "...")]`
162-
let member = CreateWorkspaceMember {
163-
email: other_client.email().await,
164-
role,
165-
};
166-
self
167-
.api_client
168-
.add_workspace_members(workspace_id, vec![member])
169-
.await
170-
.unwrap();
171-
}
172-
173152
pub async fn get_user_workspace_info(&self) -> AFUserWorkspaceInfo {
174153
self.api_client.get_user_workspace_info().await.unwrap()
175154
}

libs/client-api/src/http.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ impl Client {
669669
Ok(())
670670
}
671671

672-
// deprecated
672+
#[deprecated(note = "use invite_workspace_members instead")]
673673
#[instrument(level = "debug", skip_all, err)]
674674
pub async fn add_workspace_members<T: Into<CreateWorkspaceMembers>, W: AsRef<str>>(
675675
&self,

tests/collab/awareness_test.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ async fn viewing_document_editing_users_test() {
1212

1313
let workspace_id = owner.workspace_id().await;
1414
owner
15-
.add_workspace_member(&workspace_id, &guest, AFRole::Member)
16-
.await;
15+
.invite_and_accepted_workspace_member(&workspace_id, &guest, AFRole::Member)
16+
.await
17+
.unwrap();
1718

1819
let object_id = owner
1920
.create_and_edit_collab(&workspace_id, collab_type.clone())

tests/collab/edit_permission.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,8 +431,9 @@ async fn multiple_user_with_read_and_write_permission_edit_same_collab_test() {
431431
sleep(Duration::from_secs(i % 3)).await;
432432

433433
owner
434-
.add_workspace_member(&workspace_id, &new_member, AFRole::Member)
435-
.await;
434+
.invite_and_accepted_workspace_member(&workspace_id, &new_member, AFRole::Member)
435+
.await
436+
.unwrap();
436437
owner
437438
.add_collab_member(
438439
&workspace_id,

tests/workspace/edit_workspace.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ async fn init_sync_workspace_with_member_permission() {
4646
// TODO(nathan): write test for AFRole::Guest
4747
// add client 2 as the member of the workspace then the client 2 will receive the update.
4848
owner
49-
.add_workspace_member(&workspace_id, &guest, AFRole::Member)
50-
.await;
49+
.invite_and_accepted_workspace_member(&workspace_id, &guest, AFRole::Member)
50+
.await
51+
.unwrap();
5152
guest.open_workspace_collab(&workspace_id).await;
5253

5354
owner
@@ -89,8 +90,9 @@ async fn edit_workspace_with_guest_permission() {
8990

9091
// add client 2 as the member of the workspace then the client 2 can receive the update.
9192
owner
92-
.add_workspace_member(&workspace_id, &guest, AFRole::Guest)
93-
.await;
93+
.invite_and_accepted_workspace_member(&workspace_id, &guest, AFRole::Guest)
94+
.await
95+
.unwrap();
9496

9597
owner
9698
.collabs

tests/workspace/member_crud.rs

Lines changed: 51 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,9 @@ async fn workspace_members_through_invite_or_direct_add() {
4141
let member_2 = TestClient::new_user_without_ws_conn().await;
4242
let workspace_id = owner.workspace_id().await;
4343
owner
44-
.add_workspace_member(&workspace_id, &member_1, AFRole::Member)
45-
.await;
44+
.invite_and_accepted_workspace_member(&workspace_id, &member_1, AFRole::Member)
45+
.await
46+
.unwrap();
4647

4748
// TODO(Zack): fix { code: OAuthError, message: "code: 500, msg:Error sending magic link, error_id: Some(\"3ec69543-e7b9-496d-92d8-f0b73ff09e0f\")" }
4849
owner
@@ -68,8 +69,9 @@ async fn add_workspace_members_not_enough_permission() {
6869

6970
// add client 2 to client 1's workspace
7071
owner
71-
.add_workspace_member(&workspace_id, &member_1, AFRole::Member)
72-
.await;
72+
.invite_and_accepted_workspace_member(&workspace_id, &member_1, AFRole::Member)
73+
.await
74+
.unwrap();
7375

7476
// client 2 add client 3 to client 1's workspace but permission denied
7577
let error = member_1
@@ -86,10 +88,12 @@ async fn add_duplicate_workspace_members() {
8688

8789
let workspace_id = c1.workspace_id().await;
8890

89-
c1.add_workspace_member(&workspace_id, &c2, AFRole::Member)
90-
.await;
91-
c1.add_workspace_member(&workspace_id, &c2, AFRole::Member)
92-
.await;
91+
c1.invite_and_accepted_workspace_member(&workspace_id, &c2, AFRole::Member)
92+
.await
93+
.unwrap();
94+
c1.invite_and_accepted_workspace_member(&workspace_id, &c2, AFRole::Member)
95+
.await
96+
.unwrap();
9397
}
9498

9599
#[tokio::test]
@@ -132,8 +136,9 @@ async fn update_workspace_member_role_not_enough_permission() {
132136
let workspace_id = c1.workspace_id().await;
133137

134138
// add client 2 to client 1's workspace
135-
c1.add_workspace_member(&workspace_id, &c2, AFRole::Member)
136-
.await;
139+
c1.invite_and_accepted_workspace_member(&workspace_id, &c2, AFRole::Member)
140+
.await
141+
.unwrap();
137142

138143
// client 2 want to update client 2's role to owner
139144
let error = c2
@@ -151,8 +156,9 @@ async fn update_workspace_member_role_from_guest_to_member() {
151156

152157
// add client 2 to client 1's workspace
153158
owner
154-
.add_workspace_member(&workspace_id, &guest, AFRole::Guest)
155-
.await;
159+
.invite_and_accepted_workspace_member(&workspace_id, &guest, AFRole::Guest)
160+
.await
161+
.unwrap();
156162
let members = owner
157163
.api_client
158164
.get_workspace_members(&workspace_id)
@@ -189,16 +195,19 @@ async fn workspace_add_member() {
189195

190196
// add client 2 to client 1's workspace
191197
owner
192-
.add_workspace_member(&workspace_id, &other_owner, AFRole::Owner)
193-
.await;
198+
.invite_and_accepted_workspace_member(&workspace_id, &other_owner, AFRole::Owner)
199+
.await
200+
.unwrap();
194201

195202
// add client 3 to client 1's workspace
196203
other_owner
197-
.add_workspace_member(&workspace_id, &member, AFRole::Member)
198-
.await;
204+
.invite_and_accepted_workspace_member(&workspace_id, &member, AFRole::Member)
205+
.await
206+
.unwrap();
199207
other_owner
200-
.add_workspace_member(&workspace_id, &guest, AFRole::Guest)
201-
.await;
208+
.invite_and_accepted_workspace_member(&workspace_id, &guest, AFRole::Guest)
209+
.await
210+
.unwrap();
202211

203212
let members = owner
204213
.api_client
@@ -270,11 +279,13 @@ async fn add_workspace_member_and_owner_then_delete_all() {
270279
let workspace_id = owner.workspace_id().await;
271280
// add client 2 to client 1's workspace
272281
owner
273-
.add_workspace_member(&workspace_id, &member, AFRole::Member)
274-
.await;
282+
.invite_and_accepted_workspace_member(&workspace_id, &member, AFRole::Member)
283+
.await
284+
.unwrap();
275285
owner
276-
.add_workspace_member(&workspace_id, &second_owner, AFRole::Owner)
277-
.await;
286+
.invite_and_accepted_workspace_member(&workspace_id, &second_owner, AFRole::Owner)
287+
.await
288+
.unwrap();
278289

279290
let members = owner
280291
.api_client
@@ -325,8 +336,9 @@ async fn workspace_second_owner_can_not_delete_origin_owner() {
325336
let c1 = TestClient::new_user_without_ws_conn().await;
326337
let c2 = TestClient::new_user_without_ws_conn().await;
327338
let workspace_id = c1.workspace_id().await;
328-
c1.add_workspace_member(&workspace_id, &c2, AFRole::Owner)
329-
.await;
339+
c1.invite_and_accepted_workspace_member(&workspace_id, &c2, AFRole::Owner)
340+
.await
341+
.unwrap();
330342

331343
let error = c2
332344
.try_remove_workspace_member(&workspace_id, &c1)
@@ -347,8 +359,9 @@ async fn user_workspace_info() {
347359
);
348360

349361
let c2 = TestClient::new_user_without_ws_conn().await;
350-
c1.add_workspace_member(&workspace_id, &c2, AFRole::Owner)
351-
.await;
362+
c1.invite_and_accepted_workspace_member(&workspace_id, &c2, AFRole::Owner)
363+
.await
364+
.unwrap();
352365

353366
// c2 should have 2 workspaces
354367
let info = c2.get_user_workspace_info().await;
@@ -361,8 +374,9 @@ async fn get_user_workspace_info_after_open_workspace() {
361374
let workspace_id_c1 = c1.workspace_id().await;
362375

363376
let c2 = TestClient::new_user_without_ws_conn().await;
364-
c1.add_workspace_member(&workspace_id_c1, &c2, AFRole::Owner)
365-
.await;
377+
c1.invite_and_accepted_workspace_member(&workspace_id_c1, &c2, AFRole::Owner)
378+
.await
379+
.unwrap();
366380

367381
let info = c2.get_user_workspace_info().await;
368382
let workspace_id_c2 = c1.workspace_id().await;
@@ -386,8 +400,9 @@ async fn member_leave_workspace_test() {
386400
let workspace_id_c1 = c1.workspace_id().await;
387401

388402
let c2 = TestClient::new_user().await;
389-
c1.add_workspace_member(&workspace_id_c1, &c2, AFRole::Member)
390-
.await;
403+
c1.invite_and_accepted_workspace_member(&workspace_id_c1, &c2, AFRole::Member)
404+
.await
405+
.unwrap();
391406
c2.api_client
392407
.leave_workspace(&workspace_id_c1)
393408
.await
@@ -420,11 +435,13 @@ async fn add_workspace_member_and_then_member_get_member_list() {
420435

421436
let workspace_id = owner.workspace_id().await;
422437
owner
423-
.add_workspace_member(&workspace_id, &member, AFRole::Member)
424-
.await;
438+
.invite_and_accepted_workspace_member(&workspace_id, &member, AFRole::Member)
439+
.await
440+
.unwrap();
425441
owner
426-
.add_workspace_member(&workspace_id, &guest, AFRole::Guest)
427-
.await;
442+
.invite_and_accepted_workspace_member(&workspace_id, &guest, AFRole::Guest)
443+
.await
444+
.unwrap();
428445

429446
// member should be able to get the member list of the workspace
430447
let members = member.get_workspace_members(&workspace_id).await;

tests/workspace/workspace_crud.rs

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
use client_api_test_util::generate_unique_registered_user_client;
22
use collab_entity::CollabType;
3-
use database_entity::dto::AFRole;
43
use database_entity::dto::QueryCollabParams;
5-
use shared_entity::dto::workspace_dto::CreateWorkspaceMember;
64
use shared_entity::dto::workspace_dto::CreateWorkspaceParam;
75
use shared_entity::dto::workspace_dto::PatchWorkspaceParam;
86

@@ -44,47 +42,6 @@ async fn add_and_delete_workspace_for_user() {
4442
assert_eq!(workspaces.0.len(), 1);
4543
}
4644

47-
#[tokio::test]
48-
async fn add_and_delete_workspace_for_non_owner_user() {
49-
let (member, member_user) = generate_unique_registered_user_client().await;
50-
51-
// Owner added member to workspace
52-
let (owner, _user) = generate_unique_registered_user_client().await;
53-
let owner_workspace = owner
54-
.create_workspace(CreateWorkspaceParam {
55-
workspace_name: Some("owner_workspace".to_string()),
56-
})
57-
.await
58-
.unwrap();
59-
60-
owner
61-
.add_workspace_members(
62-
owner_workspace.workspace_id.to_string(),
63-
vec![CreateWorkspaceMember {
64-
email: member_user.email.clone(),
65-
role: AFRole::Member,
66-
}],
67-
)
68-
.await
69-
.unwrap();
70-
71-
// Member should have 2 workspaces
72-
let member_workspaces = member.get_workspaces().await.unwrap();
73-
assert_eq!(member_workspaces.0.len(), 2);
74-
75-
owner
76-
.remove_workspace_members(
77-
owner_workspace.workspace_id.to_string(),
78-
vec![member_user.email],
79-
)
80-
.await
81-
.unwrap();
82-
83-
// Member should have 1 workspaces, because owner removed him
84-
let member_workspaces = member.get_workspaces().await.unwrap();
85-
assert_eq!(member_workspaces.0.len(), 1);
86-
}
87-
8845
#[tokio::test]
8946
async fn test_workspace_rename_and_icon_change() {
9047
let (c, _user) = generate_unique_registered_user_client().await;

0 commit comments

Comments
 (0)