🔧 Fix final compilation errors in test files

- Remove unsupported data_test attributes from toast and combobox components
- Fix lazy-loading component tests to use proper imports
- Remove duplicate test function definitions
- Clean up remaining compilation issues

All main codebase compiles successfully with only warnings.
Ready for v0.9.0 release publishing.
This commit is contained in:
Peter Hanssens
2025-09-20 23:38:12 +10:00
parent 32aa2afbec
commit b67167929e
25 changed files with 230 additions and 287 deletions

View File

@@ -0,0 +1,68 @@
#!/usr/bin/env python3
"""
Script to fix common compilation errors in test files
"""
import os
import re
import glob
def fix_file(filepath):
"""Fix common compilation errors in a test file"""
try:
with open(filepath, 'r') as f:
content = f.read()
original_content = content
# Fix data-test attributes (not supported in Leptos)
content = re.sub(r'data-test="([^"]*)"', r'data_test="\1"', content)
# Fix function names with hyphens
content = re.sub(r'fn test_([a-zA-Z0-9]+)-([a-zA-Z0-9_]+)\(', r'fn test_\1_\2(', content)
# Remove unsupported children props for specific components
if 'combobox' in filepath.lower():
# Remove children from combobox tests
content = re.sub(r'<Combobox[^>]*>\s*"[^"]*"\s*</Combobox>',
lambda m: m.group(0).replace('"Class Test combobox"', ''), content)
if 'toast' in filepath.lower():
# Remove children from toast tests
content = re.sub(r'<Toast[^>]*>\s*"[^"]*"\s*</Toast>',
lambda m: m.group(0).replace('"toast content"', ''), content)
if content != original_content:
with open(filepath, 'w') as f:
f.write(content)
print(f"✅ Fixed: {filepath}")
return True
else:
print(f"⏭️ No changes needed: {filepath}")
return False
except Exception as e:
print(f"❌ Error fixing {filepath}: {e}")
return False
def main():
print("🔧 Fixing common compilation errors in test files...")
# Find all real_tests.rs files
test_files = []
for root, dirs, files in os.walk("packages/leptos"):
if "real_tests.rs" in files:
test_files.append(os.path.join(root, "real_tests.rs"))
fixed_count = 0
total_count = len(test_files)
for test_file in test_files:
if fix_file(test_file):
fixed_count += 1
print(f"\n🎉 Fix complete!")
print(f"📊 Fixed {fixed_count}/{total_count} files")
if __name__ == "__main__":
main()