upskill-event-manager/tests/environments/production.config.js
Ben 7c9ca65cf2
Some checks are pending
HVAC Plugin CI/CD Pipeline / Security Analysis (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Code Quality & Standards (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Unit Tests (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Integration Tests (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Deploy to Staging (push) Blocked by required conditions
HVAC Plugin CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
HVAC Plugin CI/CD Pipeline / Notification (push) Blocked by required conditions
Security Monitoring & Compliance / Dependency Vulnerability Scan (push) Waiting to run
Security Monitoring & Compliance / Secrets & Credential Scan (push) Waiting to run
Security Monitoring & Compliance / WordPress Security Analysis (push) Waiting to run
Security Monitoring & Compliance / Static Code Security Analysis (push) Waiting to run
Security Monitoring & Compliance / Security Compliance Validation (push) Waiting to run
Security Monitoring & Compliance / Security Summary Report (push) Blocked by required conditions
Security Monitoring & Compliance / Security Team Notification (push) Blocked by required conditions
feat: add comprehensive test framework and test files
- Add 90+ test files including E2E, unit, and integration tests
- Implement Page Object Model (POM) architecture
- Add Docker testing environment with comprehensive services
- Include modernized test framework with error recovery
- Add specialized test suites for master trainer and trainer workflows
- Update .gitignore to properly track test infrastructure

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-29 23:23:26 -03:00

187 lines
No EOL
5.4 KiB
JavaScript

/**
* Production Environment Configuration
* CRITICAL: Read-only testing on production - no data modifications allowed
*/
module.exports = {
// Environment identification
name: 'production',
displayName: 'Production Environment (READ-ONLY)',
// Base URL and endpoints
baseUrl: 'https://upskill.measurequick.com',
adminUrl: 'https://upskill.measurequick.com/wp-admin',
apiUrl: 'https://upskill.measurequick.com/wp-json',
// Authentication endpoints
loginPath: '/community-login/',
logoutPath: '/wp-login.php?action=logout',
// Browser configuration - more conservative for production
browser: {
type: 'chromium',
headless: true, // Always headless in production
slowMo: 1000, // Slower for production
timeout: 45000, // Longer timeout for production
viewport: { width: 1280, height: 720 },
video: false, // No video recording in production
screenshot: 'only-on-failure'
},
// Test execution settings - very conservative
test: {
timeout: 90000, // Longer timeout for production
retries: 1, // Fewer retries to avoid spam
workers: 1, // Single worker only
parallel: false, // No parallel execution
screenshotOnFailure: true,
videoOnFailure: false
},
// WordPress specific settings
wordpress: {
adminUser: {
// Production admin credentials from environment variables only
username: process.env.PROD_WP_ADMIN_USERNAME,
password: process.env.PROD_WP_ADMIN_PASSWORD
},
database: {
// Read-only database access if needed
host: process.env.PROD_DB_HOST,
name: process.env.PROD_DB_NAME,
user: process.env.PROD_DB_READ_USER,
password: process.env.PROD_DB_READ_PASSWORD
}
},
// Test accounts - production accounts only
accounts: {
masterTrainer: {
username: process.env.PROD_MASTER_USERNAME,
password: process.env.PROD_MASTER_PASSWORD,
email: process.env.PROD_MASTER_EMAIL,
role: 'master_trainer'
},
trainer: {
username: process.env.PROD_TRAINER_USERNAME,
password: process.env.PROD_TRAINER_PASSWORD,
email: process.env.PROD_TRAINER_EMAIL,
role: 'hvac_trainer'
}
},
// Security settings - strict for production
security: {
allowInsecureCertificates: false,
ignoreHttpsErrors: false,
skipCsrfValidation: false
},
// Performance settings - minimal impact
performance: {
slowNetworkSimulation: false,
resourceBlocking: {
images: false,
fonts: false,
stylesheets: false
}
},
// Evidence collection - minimal for production
evidence: {
screenshots: {
enabled: true,
onFailure: true,
onSuccess: false,
fullPage: false // Faster screenshots
},
videos: {
enabled: false, // No videos in production
onFailure: false,
onSuccess: false
},
logs: {
enabled: true,
level: 'warn', // Only warnings and errors
includeNetwork: false,
includeConsole: false
}
},
// Test data - READ-ONLY mode
testData: {
events: {
// Use existing production data only
readOnly: true,
createTestData: false,
modifyData: false
},
announcements: {
readOnly: true,
createTestData: false,
modifyData: false
}
},
// Protected URLs - production URLs
protectedUrls: [
'/trainer/dashboard/',
'/trainer/venue/list/',
'/trainer/venue/manage/',
'/trainer/organizer/manage/',
'/trainer/profile/training-leads/',
'/master-trainer/master-dashboard/',
'/master-trainer/events/',
'/master-trainer/google-sheets/',
'/master-trainer/announcements/',
'/master-trainer/pending-approvals/',
'/master-trainer/trainers/',
'/master-trainer/communication-templates/'
],
// Expected response codes
expectedResponseCodes: {
authenticated: 200,
unauthenticated: 302,
forbidden: 403,
notFound: 404
},
// Cleanup settings - NO CLEANUP in production
cleanup: {
deleteTestData: false,
resetUserSessions: false,
clearCache: false
},
// Production-specific warnings and validations
productionSafeguards: {
requireEnvironmentVariables: true,
confirmReadOnlyMode: true,
maxTestDuration: 300000, // 5 minutes max
allowedTestTypes: ['smoke', 'read-only', 'monitoring'],
forbiddenOperations: [
'create',
'update',
'delete',
'modify',
'seed',
'cleanup',
'database-write'
]
},
// Monitoring and alerting
monitoring: {
enabled: true,
alertOnFailures: true,
alertThreshold: 1, // Alert on any failure
healthCheckInterval: 300000, // 5 minutes
endpoints: [
'/',
'/community-login/',
'/trainer/dashboard/',
'/master-trainer/master-dashboard/'
]
}
};