test-fresh-composer.js•7.23 kB
#!/usr/bin/env node
/**
* TASK-001: Fresh Composer Test
* Opens fresh browser and verifies Composer access step by step
*/
import { chromium } from 'playwright';
async function testFreshComposer() {
console.log('🆕 TASK-001: Fresh Composer Test\n');
const WORKING_URL = "https://composer.euconquisto.com/#/embed/auth-with-token/pt_br/home/36c92686-c494-ec11-a22a-dc984041c95d/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImFkbWluLmRlc2Vudm9sdmltZW50b0BldWNvbnF1aXN0by5jb20iLCJuYW1lIjoiQWRtaW4gRGV2Iiwib2lkIjoiNWZiM2RlYzYtYzQ5NC1lYzExLWEyMmEtZGM5ODQwNDFjOTVkIiwiZGlyZWN0b3J5IjoiYjBmZWY4NjAtYzQ5NC1lYzExLWEyMmEtZGM5ODQwNDFjOTVkIiwiYXBpbSI6IkVFQzUzQTI0LUVDMEUtNDFCOS05NDA1LTg2QTE3NTAwREIzNCIsImRpcm4iOiJEZXNlbnZvbHZpbWVudG8iLCJyb2xlIjpbIlJldmlld0NvbnRyaWJ1dG9yIiwiQ29udHJpYnV0b3JHbG9iYWwiLCJBZG1pbmlzdHJhdG9yR2xvYmFsIl0sImRjbiI6WyJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREM0dFYyMXRTRS1vZHA5NElpMnVVYTNqMXNxRXl6YWhrN3ZxWlN5MG5sLV94c3cyb0xEN05jT2ppRThWelhyZDBEamF3XzQyVW1fZmxrT1loZzlVN0ZKOGx5N1dWQVFBQUFQX18iLCJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREM0c2xCWS0zTjB5WkU1S1NNSFhKTzhjcm0wNS1remgtYVBzTXhtMnZvOTBxYzhXTjktX08wRzRMbmo5dDRqb2R4bnZNdVkycHJEd1NrYlkyamJOMnpuNXJvemJmR3dBQUFQX18iLCJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREM0dnpkMWU1SDFGTzVhenRyR1RuZXZ6emx0U0djM3VFT1IteHExWXZNVHF5NGstaThXR0gwd292cC1ka3FjNm82d2xSZkM0d3k5MVcxSHFqOFU4aEMtRWZMa0pSQUFBQUFQX18iLCJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREM0dU5XMnUyS3A5dXZhUGhkOFNpOE9KNV8yTmRmZnNTSC0temZHTXVmX084Wm5GbXFXRE5qeE1ubnBWelRkVTBPVF9mUldtNVVhTkxlV2oyTjY5Y3JRS0x1SmJQQUFBQUFQX18iLCJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREM0czY2NE5odVhwck52S3FiV1RuUEtGNTU2UzRycXdXNDJ1SnkzbjNGVkxFVjZ4VlljdU9kTnVrZXliMjdKbjRlOS1GaGNNdW1iOTZ1cUx0aEptSDJrX0h0U29MQUFBQUFQX18iLCJINHNJQUFBQUFBQUFBMkptWUdBd1pRQ0JaQXVqRkdNREN3dWpCWjhyQW81RUxEaHRvQ2ZUdmVQcTVET2hpd1dtM3A2eFktTDdIYkpTb2RFU2I2SUVWQ3BQcXpETTJ2WlR6VzlsMXBrWlBFb3Zkbl8tV3R2LWY0bkt3dmEtU0FBQUFBRF9fdyJdLCJzY3AiOlsiSDRzSUFBQUFBQUFBQTJKbVlHRHdZQUFCMDZRMDA5VFU1RlNKTmZzV1NKNDRWWGZBeHZYeDVEc3lzaFhPNmllVGk0cWVYbTZaVVN2QzZ2djNST0hNRDBkVHBDVHUzekFfVUMtWVVIOHIyMzNlS29mQ0hZR3UwWG83aWswWGROWVVxdmotV0hfclhiU3VVYnJZM1VZQUFBQUFfXzgiLCJINHNJQUFBQUFBQUFBd0RTQWkzOUF3QUFBck1BQUFBQUFHRTVaalF6TkRsa2E0TWozbjdQejY0dmpPSWl5LVlNb3dhRDdlMWpqcDZJakE2SVFZMi14TFNOTWFSZWNrTTdzWEJKamR2SkpoeUF5TnZJVHQ5aUFFWHcybVVzM3lIbGc2UHNtSld1Mm1EU2UwbXlrYnQ0OGl1NTlkYTIxMVBNdkxyRzdxOV9teDlhYWI0SjdZbWlNODg2OTVUclk3WFY1Nmlsb3UwdnQ4VmdBMWptbkdYd0paa0ZDTXhYaUlhcGl5S01TVGlfa3BnREdQdlRlYUNNdE5GSXlIU0gwUTZ3bTFwRkJBYzRMQ1dqRThMeWtnc1ZtbEJxRG9aek1oZTVnY21sZHl0VW1FVFltakIyakVaUHdvd0M2NFRZb1JudDJOWkpmRDdDZXg1T3FqY1ptVU5tNjMtVlRYOFh0UEtza1BpSnpIb3kzcHF5dXVycnVrTndZenducHpwak51OEdKZXQ4V2RoMl85ckNoVnpPUnR4N1N5UXEyb2prUmJfWEphenFtTnEwMEVTcTNSZUVSX0pQZmhGOGg4bGlxcGVWeE1FSG5RUGFmMXp2N3FVQ3JzTWtrVjc1TmxnRGVUZ1YvWGVyX0Rud3FkektCOFdtY1p0OXFjMXZpU0ROV1JHZVN0bHc3d250UzFSSXlBN205cS01YU9FLUx0ODB3bE1HTkxOTi1TVFN3OWVDN2dxVmQtSUZZWlhYQ2NZcWNfcWc1dDhodFdSLVJ2cUJsX3Fjbkt2N2xhaHk5elRTaHJfX1BTRWJqdTg0SkhDV3I5SXhGd2lzYVd1eVZiMUp0ZUQzcDk0WnpWZDhnTEJQRGFRVUJMZHc1SVEzWkJIc3daTXExRjJqVGdEcF92RDJLQzZzVnd1dVhaa3RzYWlrc3pMZW5NcTFUVjRUMmF5QUdyVHB3UlUzMFMwc3hfQ3pCRVlLREV0b2s4eDI5TGlnUnlHMnVfZDVpOHRyVEJ1WTNjVFdzSXVIdzRibXNVV1lkTXNwblRMMXpwNE1LWUFBQURfX3ciXSwibmJmIjoxNzQ4ODc2OTU1LCJleHAiOjE3NTE0Njg5NTUsImlhdCI6MTc0ODg3Njk1NSwiaXNzIjoiaHR0cHM6Ly9hcGkuZGlnaXRhbHBhZ2VzLmNvbS5iciIsImF1ZCI6IkV1Q29ucXVpc3RvIn0.iTUfl6-mwLwFaxYYPf6PufRSYbSJlw3tKejmbc5G42g";
let browser = null;
try {
console.log('1️⃣ Starting fresh browser...');
browser = await chromium.launch({
headless: false,
args: ['--no-sandbox'],
timeout: 60000
});
const page = await browser.newPage({
viewport: { width: 1280, height: 720 }
});
console.log(' ✅ Fresh browser started');
console.log('2️⃣ Navigating to working Composer URL...');
const response = await page.goto(WORKING_URL, {
waitUntil: 'domcontentloaded',
timeout: 30000
});
console.log(` Response: ${response.status()} ${response.statusText()}`);
console.log(' ✅ Navigation completed');
console.log('3️⃣ Waiting for page to load...');
await page.waitForTimeout(10000);
console.log('4️⃣ Checking page content...');
const title = await page.title();
const bodyText = await page.textContent('body');
console.log(` Title: "${title}"`);
console.log(` Body text length: ${bodyText?.length || 0} characters`);
// Check for automation detection message
const hasAutomationMsg = bodyText && bodyText.includes('Chrome is being controlled by automated test software');
console.log(` Automation detection: ${hasAutomationMsg ? '✅ Present (expected)' : '❌ Not found'}`);
// Check for JavaScript error
const hasJSError = bodyText && bodyText.includes('You need to enable JavaScript');
console.log(` JavaScript status: ${hasJSError ? '❌ Disabled' : '✅ Working'}`);
console.log('5️⃣ Looking for NOVA COMPOSIÇÃO button...');
const novaComposicaoCount = await page.locator('text=NOVA COMPOSIÇÃO').count();
console.log(` "NOVA COMPOSIÇÃO" buttons found: ${novaComposicaoCount}`);
// Also check for other button variations
const buttonVariations = [
'text="Nova Composição"',
'text="Nova composição"',
'button:has-text("NOVA")',
'button:has-text("Nova")'
];
for (const selector of buttonVariations) {
const count = await page.locator(selector).count();
if (count > 0) {
console.log(` Found ${count} buttons with: ${selector}`);
}
}
// Take screenshot for verification
await page.screenshot({
path: `fresh-composer-test-${Date.now()}.png`,
fullPage: true
});
console.log(' 📸 Screenshot saved');
if (novaComposicaoCount > 0) {
console.log('\n6️⃣ Testing button interaction...');
try {
await page.click('text=NOVA COMPOSIÇÃO');
console.log(' ✅ NOVA COMPOSIÇÃO button clicked!');
await page.waitForTimeout(3000);
await page.screenshot({
path: `after-nova-click-${Date.now()}.png`,
fullPage: true
});
const newURL = page.url();
console.log(` 📍 Current URL: ${newURL.substring(0, 80)}...`);
console.log('\n🎉 TASK-001 SUCCESS: Full Composer interaction working!');
} catch (error) {
console.log(` ❌ Button click failed: ${error.message}`);
}
} else {
console.log('\n⚠️ NOVA COMPOSIÇÃO button not found - may need different detection');
}
console.log('\n✅ Fresh Composer test complete!');
console.log(' Browser remains open for inspection');
console.log(' You should see the Composer interface loaded');
console.log(' Press Ctrl+C when done inspecting');
// Keep browser open for inspection
await new Promise(() => {});
} catch (error) {
console.error('❌ Test failed:', error.message);
} finally {
// Don't close browser automatically for inspection
}
}
testFreshComposer().catch(console.error);