@@ -44,11 +44,27 @@ describe('LanguageChart', () => {
4444 expect ( screen . getByText ( 'JavaScript' ) ) . toBeDefined ( ) ;
4545 } ) ;
4646
47- it ( 'renders donut background with language color and percentage' , ( ) => {
48- const result = buildGradientStops ( [ { name : 'TypeScript' , percentage : 100 , color : '#3178c6' } ] ) ;
47+ it ( 'renders every language row passed to the component' , ( ) => {
48+ const languages = [
49+ { name : 'TypeScript' , percentage : 30 , color : '#3178c6' } ,
50+ { name : 'JavaScript' , percentage : 20 , color : '#f1e05a' } ,
51+ { name : 'Python' , percentage : 15 , color : '#3572A5' } ,
52+ { name : 'Go' , percentage : 12 , color : '#00ADD8' } ,
53+ { name : 'Rust' , percentage : 8 , color : '#dea584' } ,
54+ { name : 'Ruby' , percentage : 6 , color : '#701516' } ,
55+ { name : 'PHP' , percentage : 5 , color : '#4F5D95' } ,
56+ { name : 'CSS' , percentage : 4 , color : '#563d7c' } ,
57+ ] ;
4958
50- expect ( result ) . toContain ( '#3178c6' ) ;
51- expect ( result ) . toContain ( '100%' ) ;
59+ render ( < LanguageChart languages = { languages } /> ) ;
60+
61+ const renderedLanguageNameElements = screen . getAllByText (
62+ ( content , element ) =>
63+ languages . some ( ( language ) => language . name === content ) &&
64+ element ?. className === 'text-[#A1A1AA]'
65+ ) ;
66+
67+ expect ( renderedLanguageNameElements ) . toHaveLength ( 8 ) ;
5268 } ) ;
5369} ) ;
5470
0 commit comments