UNPKG

claude-playwright

Version:

Seamless integration between Claude Code and Playwright MCP for efficient browser automation and testing

134 lines 4.67 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TEMPLATES = void 0; exports.selectTemplate = selectTemplate; exports.listAvailableTemplates = listAvailableTemplates; exports.getTemplateFiles = getTemplateFiles; exports.getTemplateDependencies = getTemplateDependencies; const chalk_1 = __importDefault(require("chalk")); exports.TEMPLATES = { minimal: { name: 'Minimal Template', description: 'Basic setup for quick start with essential components', files: [ 'CLAUDE.md', 'playwright.config.ts', 'src/pages/base/BasePage.ts', 'src/tests/example.spec.ts' ], features: [ 'Basic Page Object Model', 'Essential Playwright configuration', 'Claude MCP integration', 'Example test' ], dependencies: { '@playwright/test': '^1.40.0' }, devDependencies: { 'typescript': '^5.0.0' } }, enterprise: { name: 'Enterprise Template', description: 'Full featured setup with CI/CD pipeline and best practices', files: [ 'CLAUDE.md', 'playwright.config.ts', 'docker-compose.yml', '.github/workflows/tests.yml', 'src/pages/base/BasePage.ts', 'src/pages/base/BaseComponent.ts', 'src/fixtures/AuthFixture.ts', 'src/utils/DataGenerator.ts', 'src/tests/example.spec.ts' ], features: [ 'Advanced Page Object Model with Components', 'Docker containerization', 'GitHub Actions CI/CD', 'Authentication fixtures', 'Test data generation', 'Visual regression testing', 'Performance monitoring' ], dependencies: { '@playwright/test': '^1.40.0', 'dotenv': '^16.0.0' }, devDependencies: { 'typescript': '^5.0.0', '@types/node': '^20.0.0' } }, testing: { name: 'Testing Template', description: 'Test-focused setup with advanced utilities and fixtures', files: [ 'CLAUDE.md', 'playwright.config.ts', 'src/pages/base/BasePage.ts', 'src/fixtures/BaseFixture.ts', 'src/utils/TestHelpers.ts', 'src/utils/MockData.ts', 'src/tests/example.spec.ts' ], features: [ 'Advanced test fixtures', 'Test utilities and helpers', 'Mock data generation', 'Enhanced reporting', 'Test parallelization optimized', 'Custom assertions', 'API testing integration' ], dependencies: { '@playwright/test': '^1.40.0', 'faker': '^8.0.0' }, devDependencies: { 'typescript': '^5.0.0', '@types/faker': '^8.0.0' } } }; async function selectTemplate(templateName) { const template = exports.TEMPLATES[templateName]; if (!template) { throw new Error(`Unknown template: ${templateName}`); } console.log(chalk_1.default.blue(`\n=� Selected Template: ${template.name}`)); console.log(chalk_1.default.gray(`${template.description}\n`)); console.log(chalk_1.default.cyan('Features:')); template.features.forEach(feature => { console.log(chalk_1.default.gray(` " ${feature}`)); }); return template; } async function listAvailableTemplates() { console.log(chalk_1.default.blue('\n=� Available Templates:\n')); for (const [key, template] of Object.entries(exports.TEMPLATES)) { console.log(chalk_1.default.cyan(`${key}:`)); console.log(chalk_1.default.white(` ${template.name}`)); console.log(chalk_1.default.gray(` ${template.description}`)); console.log(chalk_1.default.gray(` Features: ${template.features.length} included\n`)); } } function getTemplateFiles(templateName) { const template = exports.TEMPLATES[templateName]; return template ? template.files : []; } function getTemplateDependencies(templateName) { const template = exports.TEMPLATES[templateName]; if (!template) { return { dependencies: {}, devDependencies: {} }; } return { dependencies: template.dependencies, devDependencies: template.devDependencies }; } //# sourceMappingURL=template-selector.js.map