@@ -119,6 +119,77 @@ def test_owners_in_generated_readme(self, component_dir, sample_extracted_metada
119119 assert 'Approvers' in readme or 'approvers' in readme .lower ()
120120 assert 'Reviewers' in readme or 'reviewers' in readme .lower ()
121121
122+ def test_links_in_additional_resources_section (self , component_dir , sample_extracted_metadata ):
123+ """Test that links appear in Additional Resources section, not Metadata."""
124+ # Update metadata.yaml to include links
125+ metadata_file = component_dir / "metadata.yaml"
126+ metadata_file .write_text ("""name: sample_component
127+ tier: core
128+ stability: stable
129+ tags:
130+ - testing
131+ links:
132+ documentation: https://example.com/docs
133+ issue_tracker: https://github.com/example/issues
134+ source_code: https://github.com/example/code
135+ """ )
136+
137+ generator = ReadmeContentGenerator (
138+ sample_extracted_metadata ,
139+ component_dir
140+ )
141+
142+ readme = generator .generate_readme ()
143+
144+ # Check that Additional Resources section exists
145+ assert '## Additional Resources' in readme
146+
147+ # Check that links appear in Additional Resources
148+ assert 'https://example.com/docs' in readme
149+ assert 'https://github.com/example/issues' in readme
150+ assert 'https://github.com/example/code' in readme
151+ assert 'Documentation' in readme
152+ assert 'Issue Tracker' in readme
153+ assert 'Source Code' in readme
154+
155+ # Verify links are NOT in the Metadata section
156+ # Extract just the metadata section
157+ lines = readme .split ('\n ' )
158+ metadata_section = []
159+ in_metadata = False
160+ for line in lines :
161+ if '## Metadata' in line :
162+ in_metadata = True
163+ elif in_metadata and line .startswith ('##' ):
164+ break
165+ if in_metadata :
166+ metadata_section .append (line )
167+
168+ metadata_text = '\n ' .join (metadata_section )
169+ # Links should not appear as a bullet point in metadata
170+ assert '- **Links**:' not in metadata_text
171+
172+ def test_no_links_no_additional_resources_section (self , component_dir , sample_extracted_metadata ):
173+ """Test that Additional Resources section is omitted when no links exist."""
174+ # Remove links from metadata.yaml to test no-links case
175+ import yaml
176+ metadata_file = component_dir / 'metadata.yaml'
177+ with open (metadata_file ) as f :
178+ metadata = yaml .safe_load (f )
179+ metadata .pop ('links' , None )
180+ with open (metadata_file , 'w' ) as f :
181+ yaml .dump (metadata , f )
182+
183+ generator = ReadmeContentGenerator (
184+ sample_extracted_metadata ,
185+ component_dir
186+ )
187+
188+ readme = generator .generate_readme ()
189+
190+ # Additional Resources section should NOT exist
191+ assert '## Additional Resources' not in readme
192+
122193 def test_prepare_template_context (self , component_dir , sample_extracted_metadata ):
123194 """Test template context preparation."""
124195 generator = ReadmeContentGenerator (
@@ -249,7 +320,8 @@ def test_generate_readme_pipeline(self, pipeline_dir, sample_extracted_metadata)
249320 readme = generator .generate_readme ()
250321
251322 # Check sections are present
252- assert '# Sample Component' in readme
323+ # Title should use name from metadata.yaml, not function name
324+ assert '# Sample Pipeline' in readme
253325 assert '## Overview' in readme
254326 assert '## Inputs' in readme
255327 assert '## Outputs' in readme
0 commit comments