UNPKG

@nestjsvn/swagger-sse

Version:

OpenAPI documentation and interactive Swagger UI for NestJS Server-Sent Events endpoints

66 lines (65 loc) 3.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const setup_1 = require("./setup"); const test_controllers_1 = require("./test-controllers"); describe('DOM Structure Diagnostic E2E Test', () => { let context; beforeAll(async () => { context = await setup_1.E2ETestSetup.createContext('dom-structure-diagnostic', { controllers: [test_controllers_1.TestEventsController, test_controllers_1.MobileTestController], }); }); afterAll(async () => { await setup_1.E2ETestSetup.cleanup('dom-structure-diagnostic'); }); it('should examine DOM structure of endpoints', async () => { console.log('=== DOM STRUCTURE DIAGNOSTIC START ==='); // Navigate to Swagger UI await context.page.goto(`${context.baseUrl}/api-docs`); await context.page.waitForSelector('.swagger-ui', { timeout: 10000 }); console.log('1. Swagger UI loaded'); // Get the HTML structure of the basic endpoint const basicEndpointHTML = await context.page.$eval('[data-path="/test-events/basic"]', el => el.outerHTML); console.log('2. Basic endpoint HTML structure:'); console.log(basicEndpointHTML); // Check what classes are available on the basic endpoint const basicEndpointClasses = await context.page.$eval('[data-path="/test-events/basic"]', el => el.className); console.log('3. Basic endpoint classes:', basicEndpointClasses); // Check for all possible clickable elements within the basic endpoint const clickableElements = await context.page.$$eval('[data-path="/test-events/basic"] *', elements => elements.map(el => ({ tagName: el.tagName, className: el.className, textContent: el.textContent?.trim().substring(0, 50), clickable: el.onclick !== null || el.style.cursor === 'pointer' })).filter(el => el.textContent && el.textContent.length > 0)); console.log('4. Clickable elements within basic endpoint:'); console.log(JSON.stringify(clickableElements, null, 2)); // Check if there are any .opblock-summary elements anywhere const allOpblockSummaries = await context.page.$$eval('.opblock-summary', elements => elements.map(el => ({ textContent: el.textContent?.trim(), parentDataPath: el.closest('[data-path]')?.getAttribute('data-path') }))); console.log('5. All .opblock-summary elements:'); console.log(JSON.stringify(allOpblockSummaries, null, 2)); // Try different selector patterns const selectorTests = [ '[data-path="/test-events/basic"] .opblock-summary', '[data-path="/test-events/basic"] button', '[data-path="/test-events/basic"] .opblock-summary-path', '[data-path="/test-events/basic"] .opblock-summary-description', '[data-path="/test-events/basic"]', '.opblock[data-path="/test-events/basic"] .opblock-summary' ]; for (const selector of selectorTests) { const element = await context.page.$(selector); console.log(`6. Selector "${selector}" found:`, !!element); if (element) { const isVisible = await element.isVisible(); const boundingBox = await element.boundingBox(); console.log(` - Visible: ${isVisible}, BoundingBox:`, boundingBox); } } console.log('=== DOM STRUCTURE DIAGNOSTIC END ==='); expect(true).toBe(true); }, 60000); });