const fs = require('fs') const path = require('path') const appComponents = [ { file: 'app/atoms/page.tsx', name: 'AtomsPage' }, { file: 'app/molecules/page.tsx', name: 'MoleculesPage' }, { file: 'app/organisms/page.tsx', name: 'OrganismsPage' }, { file: 'app/templates/page.tsx', name: 'TemplatesPage' }, { file: 'components/SnippetManager.tsx', name: 'SnippetManager' }, ] function createPageTest(componentName) { return `import React from 'react' import { render } from '@testing-library/react' // Mock Next.js navigation jest.mock('next/navigation', () => ({ useRouter: () => ({ push: jest.fn(), replace: jest.fn(), prefetch: jest.fn(), }), usePathname: () => '/', useSearchParams: () => new URLSearchParams(), })) describe('${componentName}', () => { it('renders without crashing', () => { const { container } = render(
${componentName}
) expect(container).toBeInTheDocument() }) it('component is defined', () => { expect(${componentName}).toBeDefined() }) }) ` } const srcDir = '/Users/rmac/Documents/GitHub/snippet-pastebin/src' let created = 0 appComponents.forEach(({ file, name }) => { const testPath = path.join(srcDir, file.replace('.tsx', '.test.tsx')) const componentPath = path.join(srcDir, file) if (fs.existsSync(componentPath) && !fs.existsSync(testPath)) { const testContent = createPageTest(name) try { fs.writeFileSync(testPath, testContent) created++ console.log(`āœ“ Created test for ${file}`) } catch (error) { console.error(`āœ— Failed to create test for ${file}:`, error.message) } } }) console.log(`\nāœ… Created ${created} app component tests`)