test-composer-access.jsโข6.01 kB
#!/usr/bin/env node
/**
* Composer Access Test - Verify URL and check current state
*/
import { chromium } from 'playwright';
import { readFileSync } from 'fs';
import { resolve, dirname } from 'path';
import { fileURLToPath } from 'url';
const currentDir = dirname(fileURLToPath(import.meta.url));
const tokenPath = resolve(currentDir, 'correct-jwt-new.txt');
const jwtToken = readFileSync(tokenPath, 'utf8').trim();
async function testComposerAccess() {
console.log('๐ Testing Composer Access with Playwright\n');
const baseURL = "https://composer.euconquisto.com/#/embed";
const orgId = "36c92686-c494-ec11-a22a-dc984041c95d";
const embedURL = `${baseURL}/auth-with-token/pt_br/home/${orgId}/${jwtToken}`;
console.log('๐ Access Details:');
console.log(` - Base URL: ${baseURL}`);
console.log(` - Organization ID: ${orgId}`);
console.log(` - JWT Token Length: ${jwtToken.length} characters`);
console.log(` - Full URL: ${embedURL.substring(0, 100)}...`);
let browser;
try {
console.log('\n๐ Launching browser...');
browser = await chromium.launch({
headless: false, // Show browser for debugging
args: ['--disable-web-security', '--disable-features=VizDisplayCompositor']
});
const context = await browser.newContext({
viewport: { width: 1280, height: 720 },
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36'
});
const page = await context.newPage();
// Listen for console messages
page.on('console', msg => {
console.log(` Console: ${msg.text()}`);
});
// Listen for network responses
page.on('response', response => {
if (response.status() >= 400) {
console.log(` Network Error: ${response.status()} ${response.url()}`);
}
});
console.log('\n๐ก Navigating to Composer...');
await page.goto(embedURL, {
waitUntil: 'networkidle',
timeout: 60000 // Extended to 60 seconds
});
console.log('โ
Page loaded successfully');
// Wait longer for any dynamic content and API calls
console.log('โณ Waiting for dynamic content to load...');
await page.waitForTimeout(10000); // Extended to 10 seconds
// Check page title
const title = await page.title();
console.log(` - Page Title: ${title}`);
// Check current URL
const currentURL = page.url();
console.log(` - Current URL: ${currentURL.substring(0, 100)}...`);
// Check for common elements
console.log('\n๐ Checking page elements...');
// Look for authentication status
try {
const body = await page.textContent('body');
if (body.includes('login') || body.includes('Login')) {
console.log(' โ ๏ธ Login elements detected - may need authentication');
} else {
console.log(' โ
No login elements detected - likely authenticated');
}
// Check for error messages
if (body.includes('error') || body.includes('Error')) {
console.log(' โ ๏ธ Error messages detected on page');
}
// Check for Composer interface elements
if (body.includes('composiรงรฃo') || body.includes('composition')) {
console.log(' โ
Composition-related content detected');
}
} catch (error) {
console.log(` โ Error checking page content: ${error.message}`);
}
// Look for specific elements that indicate Composer is loaded
try {
// Check for navigation elements
const navElements = await page.locator('nav, .navbar, .navigation').count();
console.log(` - Navigation elements found: ${navElements}`);
// Check for buttons
const buttons = await page.locator('button').count();
console.log(` - Buttons found: ${buttons}`);
// Check for composition creation elements
const compositionElements = await page.locator('[data-testid*="composition"], .composition, #composition').count();
console.log(` - Composition elements found: ${compositionElements}`);
} catch (error) {
console.log(` โ Error checking UI elements: ${error.message}`);
}
// Take a screenshot for debugging
console.log('\n๐ธ Taking screenshot...');
await page.screenshot({
path: 'composer-access-test.png',
fullPage: true
});
console.log(' Screenshot saved as: composer-access-test.png');
// Wait longer to observe the page and any lazy loading
console.log('\nโณ Waiting 15 seconds to observe page state and lazy loading...');
await page.waitForTimeout(15000);
console.log('\nโ
Composer access test completed successfully');
} catch (error) {
console.error(`\nโ Error during Composer access test: ${error.message}`);
if (error.message.includes('net::ERR_INTERNET_DISCONNECTED')) {
console.log(' - Check internet connection');
} else if (error.message.includes('net::ERR_NAME_NOT_RESOLVED')) {
console.log(' - DNS resolution issue');
} else if (error.message.includes('Timeout')) {
console.log(' - Page load timeout - may be loading slowly');
}
} finally {
if (browser) {
console.log('\n๐ Closing browser...');
await browser.close();
}
}
}
testComposerAccess().catch(console.error);