UNPKG

@nestjsvn/swagger-sse

Version:

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

96 lines (95 loc) 4.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const setup_1 = require("./setup"); const test_controllers_1 = require("./test-controllers"); describe('Endpoint Expansion Diagnostic', () => { let context; beforeAll(async () => { context = await setup_1.E2ETestSetup.createContext('expansion-diagnostic', { controllers: [test_controllers_1.TestEventsController], }); }); afterAll(async () => { await setup_1.E2ETestSetup.cleanup('expansion-diagnostic'); }); it('should understand how to expand endpoints', async () => { await context.page.goto(`${context.baseUrl}/api-docs`); await context.page.waitForSelector('.swagger-ui', { timeout: 10000 }); // Get initial state const initialState = await context.page.evaluate(() => { const pathElement = document.querySelector('[data-path="/test-events/basic"]'); const opblock = pathElement?.closest('.opblock'); const summary = opblock?.querySelector('.opblock-summary'); return { hasOpblock: !!opblock, hasSummary: !!summary, isExpanded: opblock?.classList.contains('is-open'), hasExecuteWrapper: !!opblock?.querySelector('.execute-wrapper'), opblockClasses: opblock?.className, summaryClasses: summary?.className, clickableElements: Array.from(opblock?.querySelectorAll('*') || []) .filter(el => el.addEventListener || el.onclick) .map(el => ({ tagName: el.tagName, className: el.className, id: el.id, })), }; }); console.log('Initial state:', JSON.stringify(initialState, null, 2)); // Try different click strategies console.log('Trying to click on opblock-summary...'); await context.page.click('.opblock .opblock-summary'); await context.page.waitForTimeout(1000); const afterSummaryClick = await context.page.evaluate(() => { const pathElement = document.querySelector('[data-path="/test-events/basic"]'); const opblock = pathElement?.closest('.opblock'); return { isExpanded: opblock?.classList.contains('is-open'), hasExecuteWrapper: !!opblock?.querySelector('.execute-wrapper'), }; }); console.log('After summary click:', afterSummaryClick); if (!afterSummaryClick.isExpanded) { console.log('Summary click failed, trying opblock-summary-method...'); await context.page.click('.opblock .opblock-summary-method'); await context.page.waitForTimeout(1000); const afterMethodClick = await context.page.evaluate(() => { const pathElement = document.querySelector('[data-path="/test-events/basic"]'); const opblock = pathElement?.closest('.opblock'); return { isExpanded: opblock?.classList.contains('is-open'), hasExecuteWrapper: !!opblock?.querySelector('.execute-wrapper'), }; }); console.log('After method click:', afterMethodClick); } if (!afterSummaryClick.isExpanded) { console.log('Method click failed, trying opblock-summary-path...'); await context.page.click('[data-path="/test-events/basic"]'); await context.page.waitForTimeout(1000); const afterPathClick = await context.page.evaluate(() => { const pathElement = document.querySelector('[data-path="/test-events/basic"]'); const opblock = pathElement?.closest('.opblock'); return { isExpanded: opblock?.classList.contains('is-open'), hasExecuteWrapper: !!opblock?.querySelector('.execute-wrapper'), }; }); console.log('After path click:', afterPathClick); } // Final state check const finalState = await context.page.evaluate(() => { const pathElement = document.querySelector('[data-path="/test-events/basic"]'); const opblock = pathElement?.closest('.opblock'); return { isExpanded: opblock?.classList.contains('is-open'), hasExecuteWrapper: !!opblock?.querySelector('.execute-wrapper'), executeWrapperVisible: !!opblock?.querySelector('.execute-wrapper:not([style*="display: none"])'), }; }); console.log('Final state:', finalState); // This test always passes - it's just for diagnostics expect(true).toBe(true); }); });