@@ -52,7 +52,6 @@ describe('RadarChart', () => {
5252 expect ( screen . getByText ( 'User A' ) ) . toBeDefined ( ) ;
5353 expect ( screen . getByText ( 'User B' ) ) . toBeDefined ( ) ;
5454
55- // Check that top languages are rendered as axes
5655 expect ( screen . getAllByText ( 'TypeScript' ) ) . toBeDefined ( ) ;
5756 expect ( screen . getAllByText ( 'Python' ) ) . toBeDefined ( ) ;
5857 expect ( screen . getAllByText ( 'JavaScript' ) ) . toBeDefined ( ) ;
@@ -61,7 +60,6 @@ describe('RadarChart', () => {
6160 it ( 'handles empty input arrays cleanly using pad languages' , ( ) => {
6261 render ( < RadarChart languagesA = { [ ] } languagesB = { [ ] } labelA = "User A" labelB = "User B" /> ) ;
6362
64- // Padding should supply common ones
6563 expect ( screen . getAllByText ( 'TypeScript' ) ) . toBeDefined ( ) ;
6664 expect ( screen . getAllByText ( 'JavaScript' ) ) . toBeDefined ( ) ;
6765 expect ( screen . getAllByText ( 'Python' ) ) . toBeDefined ( ) ;
@@ -78,4 +76,40 @@ describe('RadarChart', () => {
7876 expect ( screen . getAllByText ( 'JavaScript' ) ) . toBeDefined ( ) ;
7977 expect ( screen . getAllByText ( 'Python' ) ) . toBeDefined ( ) ;
8078 } ) ;
79+
80+ it ( 'scales axis points dynamically based on max score in data' , ( ) => {
81+ const highScoreLangs = [
82+ { name : 'TypeScript' , percentage : 100 , color : '#3178c6' } ,
83+ { name : 'Python' , percentage : 80 , color : '#3572A5' } ,
84+ { name : 'JavaScript' , percentage : 60 , color : '#f1e05a' } ,
85+ ] ;
86+
87+ const lowScoreLangs = [
88+ { name : 'TypeScript' , percentage : 10 , color : '#3178c6' } ,
89+ { name : 'Python' , percentage : 5 , color : '#3572A5' } ,
90+ { name : 'JavaScript' , percentage : 2 , color : '#f1e05a' } ,
91+ ] ;
92+
93+ const { container } = render (
94+ < RadarChart
95+ languagesA = { highScoreLangs }
96+ languagesB = { lowScoreLangs }
97+ labelA = "High Scorer"
98+ labelB = "Low Scorer"
99+ />
100+ ) ;
101+
102+ expect ( screen . getAllByText ( 'TypeScript' ) ) . toBeDefined ( ) ;
103+ expect ( screen . getAllByText ( 'Python' ) ) . toBeDefined ( ) ;
104+ expect ( screen . getAllByText ( 'JavaScript' ) ) . toBeDefined ( ) ;
105+
106+ expect ( screen . getByText ( '100%' ) ) . toBeDefined ( ) ;
107+ expect ( screen . getByText ( '10%' ) ) . toBeDefined ( ) ;
108+
109+ const svg = container . querySelector ( 'svg' ) ;
110+ expect ( svg ) . not . toBeNull ( ) ;
111+
112+ const circles = container . querySelectorAll ( 'circle' ) ;
113+ expect ( circles . length ) . toBeGreaterThan ( 0 ) ;
114+ } ) ;
81115} ) ;
0 commit comments