Skip to main content
Glama
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);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rkm097git/euconquisto-composer-mcp-poc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server