Coverage for tests/endpoints/tests_invites.py: 100%
28 statements
« prev ^ index » next coverage.py v7.10.5, created at 2025-08-26 22:06 +0000
« prev ^ index » next coverage.py v7.10.5, created at 2025-08-26 22:06 +0000
1import json
2from unittest.mock import patch
4from tests.endpoints.endpoint_testing import TestEndpoints
7class TestInvites(TestEndpoints):
8 @patch("canonicalwebteam.store_api.dashboard.Dashboard.get_store_invites")
9 def test_get_invites(self, mock_get_store_invites):
10 mock_invites_data = [
11 {
12 "id": "invite-1",
13 "email": "user1@example.com",
14 "status": "pending",
15 "roles": ["admin"],
16 "created_at": "2025-01-01T10:00:00Z",
17 },
18 {
19 "id": "invite-2",
20 "email": "user2@example.com",
21 "status": "accepted",
22 "roles": ["view"],
23 "created_at": "2025-01-02T11:00:00Z",
24 },
25 ]
27 mock_get_store_invites.return_value = mock_invites_data
29 response = self.client.get("/api/store/test-store-id/invites")
30 data = response.get_json()
32 self.assertEqual(response.status_code, 200)
33 self.assertEqual(data, mock_invites_data)
35 @patch(
36 "canonicalwebteam.store_api.dashboard.Dashboard.update_store_invites"
37 )
38 def test_update_invite_status(self, mock_update_store_invites):
39 """Test successful invite status update"""
40 mock_invites_data = [
41 {"id": "invite-1", "status": "accepted"},
42 {"id": "invite-2", "status": "declined"},
43 ]
45 mock_update_store_invites.return_value = None
47 response = self.client.post(
48 "/api/store/test-store-id/invite/update",
49 data={"invites": json.dumps(mock_invites_data)},
50 )
51 data = response.get_json()
53 self.assertEqual(response.status_code, 200)
54 self.assertEqual(data["msg"], "Changes saved")
56 @patch(
57 "canonicalwebteam.store_api.dashboard.Dashboard.invite_store_members"
58 )
59 def test_post_invite_members_success(self, mock_invite_store_members):
60 """Test successful invitation of store members"""
61 mock_members_data = [
62 {"email": "user1@example.com", "roles": ["admin"]},
63 {"email": "user2@example.com", "roles": ["view"]},
64 ]
66 mock_invite_store_members.return_value = None
68 response = self.client.post(
69 "/api/store/test-store-id/invite",
70 data={"members": json.dumps(mock_members_data)},
71 )
72 data = response.get_json()
74 self.assertEqual(response.status_code, 200)
75 self.assertEqual(data["msg"], "Changes saved")