Skip to content

Commit f22d2e0

Browse files
Refactor tests and mock data for badges functionality
- Improved formatting and readability in user_test.py by adjusting line breaks. - Updated mockBadgeData.ts to enhance consistency in object formatting. - Simplified Tooltip mock in Badges.test.tsx for better clarity. - Minor adjustments in Badges.tsx for consistent className formatting.
1 parent 5b947da commit f22d2e0

File tree

4 files changed

+67
-67
lines changed

4 files changed

+67
-67
lines changed

backend/tests/apps/github/api/internal/nodes/user_test.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ def test_badges_field_empty(self):
9797
"""Test badges field resolution with no badges."""
9898
mock_user = Mock()
9999
mock_badges_queryset = Mock()
100-
mock_badges_queryset.filter.return_value.select_related.return_value.order_by.return_value = []
100+
(
101+
mock_badges_queryset.filter.return_value.select_related.return_value.order_by.return_value
102+
) = []
101103
mock_user.badges = mock_badges_queryset
102104

103105
result = UserNode.badges(mock_user)
@@ -111,9 +113,9 @@ def test_badges_field_single_badge(self):
111113
mock_user_badge.badge = mock_badge
112114

113115
mock_badges_queryset = Mock()
114-
mock_badges_queryset.filter.return_value.select_related.return_value.order_by.return_value = [
115-
mock_user_badge
116-
]
116+
(
117+
mock_badges_queryset.filter.return_value.select_related.return_value.order_by.return_value
118+
) = [mock_user_badge]
117119
mock_user.badges = mock_badges_queryset
118120

119121
result = UserNode.badges(mock_user)
@@ -154,7 +156,9 @@ def test_badges_field_sorted_by_weight_and_name(self):
154156
# Set up the mock queryset to return badges in the expected sorted order
155157
# (highest weight first, then by name for same weight)
156158
mock_badges_queryset = Mock()
157-
mock_badges_queryset.filter.return_value.select_related.return_value.order_by.return_value = [
159+
(
160+
mock_badges_queryset.filter.return_value.select_related.return_value.order_by.return_value
161+
) = [
158162
mock_user_badge_high, # weight 100
159163
mock_user_badge_medium_a, # weight 50, name "Medium Weight A"
160164
mock_user_badge_medium_b, # weight 50, name "Medium Weight B"
@@ -185,7 +189,9 @@ def test_badges_field_filters_inactive_badges(self):
185189
"""Test badges field only returns active badges."""
186190
mock_user = Mock()
187191
mock_badges_queryset = Mock()
188-
mock_badges_queryset.filter.return_value.select_related.return_value.order_by.return_value = []
192+
(
193+
mock_badges_queryset.filter.return_value.select_related.return_value.order_by.return_value
194+
) = []
189195
mock_user.badges = mock_badges_queryset
190196

191197
UserNode.badges(mock_user)

frontend/__tests__/unit/components/Badges.test.tsx

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,8 @@ jest.mock('@fortawesome/free-solid-svg-icons', () => ({
4040
},
4141
}))
4242

43-
// Mock Tooltip component
44-
jest.mock('@heroui/tooltip', () => {
45-
const MockTooltip = ({
43+
jest.mock('@heroui/tooltip', () => ({
44+
Tooltip: ({
4645
children,
4746
content,
4847
...props
@@ -54,13 +53,8 @@ jest.mock('@heroui/tooltip', () => {
5453
<div data-testid="tooltip" data-content={content} {...props}>
5554
{children}
5655
</div>
57-
)
58-
MockTooltip.displayName = 'MockTooltip'
59-
return {
60-
__esModule: true,
61-
Tooltip: MockTooltip,
62-
}
63-
})
56+
),
57+
}))
6458

6559
describe('Badges', () => {
6660
const defaultProps = {
Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,63 @@
11
import type { Badge } from 'types/badge'
22

33
export const mockBadgeData: Badge[] = [
4-
{
5-
id: '1',
6-
name: 'Contributor',
7-
cssClass: 'fa-medal',
8-
description: 'Active contributor to OWASP projects',
9-
weight: 1,
10-
},
11-
{
12-
id: '2',
13-
name: 'Security Expert',
14-
cssClass: 'fa-shield-alt',
15-
description: 'Security expertise demonstrated',
16-
weight: 2,
17-
},
18-
{
19-
id: '3',
20-
name: 'Code Reviewer',
21-
cssClass: 'fa-code',
22-
description: 'Regular code reviewer',
23-
weight: 1,
24-
},
25-
{
26-
id: '4',
27-
name: 'Mentor',
28-
cssClass: 'fa-user-graduate',
29-
description: 'Mentors other contributors',
30-
weight: 3,
31-
},
32-
{
33-
id: '5',
34-
name: 'Project Lead',
35-
cssClass: 'fa-crown',
36-
description: 'Leads OWASP projects',
37-
weight: 4,
38-
},
4+
{
5+
id: '1',
6+
name: 'Contributor',
7+
cssClass: 'fa-medal',
8+
description: 'Active contributor to OWASP projects',
9+
weight: 1,
10+
},
11+
{
12+
id: '2',
13+
name: 'Security Expert',
14+
cssClass: 'fa-shield-alt',
15+
description: 'Security expertise demonstrated',
16+
weight: 2,
17+
},
18+
{
19+
id: '3',
20+
name: 'Code Reviewer',
21+
cssClass: 'fa-code',
22+
description: 'Regular code reviewer',
23+
weight: 1,
24+
},
25+
{
26+
id: '4',
27+
name: 'Mentor',
28+
cssClass: 'fa-user-graduate',
29+
description: 'Mentors other contributors',
30+
weight: 3,
31+
},
32+
{
33+
id: '5',
34+
name: 'Project Lead',
35+
cssClass: 'fa-crown',
36+
description: 'Leads OWASP projects',
37+
weight: 4,
38+
},
3939
]
4040

4141
export const mockUserBadgeQueryResponse = {
42-
user: {
43-
id: '1',
44-
login: 'testuser',
45-
name: 'Test User',
46-
badges: mockBadgeData,
47-
badgeCount: 5,
48-
},
42+
user: {
43+
id: '1',
44+
login: 'testuser',
45+
name: 'Test User',
46+
badges: mockBadgeData,
47+
badgeCount: 5,
48+
},
4949
}
5050

5151
export const mockUserWithoutBadgeQueryResponse = {
52-
user: {
53-
id: '2',
54-
login: 'testuser2',
55-
name: 'Test User 2',
56-
badges: [],
57-
badgeCount: 0,
58-
},
52+
user: {
53+
id: '2',
54+
login: 'testuser2',
55+
name: 'Test User 2',
56+
badges: [],
57+
badgeCount: 0,
58+
},
5959
}
6060

6161
export const mockBadgeQueryResponse = {
62-
badges: mockBadgeData,
62+
badges: mockBadgeData,
6363
}

frontend/src/components/Badges.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const Badges = ({ name, cssClass, showTooltip = true }: BadgeProps) => {
2727
return (
2828
<div className="inline-flex items-center">
2929
{showTooltip ? (
30-
<Tooltip content={`${name} (icon not found)`} className='bg-gray-800'>
30+
<Tooltip content={`${name} (icon not found)`} className="bg-gray-800">
3131
<FontAwesomeIcon icon={['fas', 'medal']} className="h-4 w-4 text-gray-400" />
3232
</Tooltip>
3333
) : (

0 commit comments

Comments
 (0)