@nestjsvn/swagger-sse
Version:
OpenAPI documentation and interactive Swagger UI for NestJS Server-Sent Events endpoints
73 lines (72 loc) • 3.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const setup_1 = require("./setup");
const test_controllers_1 = require("./test-controllers");
describe('Simple Diagnostic Tests', () => {
let context;
beforeAll(async () => {
context = await setup_1.E2ETestSetup.createContext('simple-diagnostic', {
controllers: [test_controllers_1.TestEventsController],
});
});
afterAll(async () => {
await setup_1.E2ETestSetup.cleanup('simple-diagnostic');
});
it('should understand Swagger UI structure', async () => {
await context.page.goto(`${context.baseUrl}/api-docs`);
// Wait for Swagger UI to load
await context.page.waitForSelector('.swagger-ui', { timeout: 10000 });
// Get all opblock elements and their structure
const opblockInfo = await context.page.evaluate(() => {
const opblocks = Array.from(document.querySelectorAll('.opblock'));
return opblocks.map((opblock, index) => {
const summary = opblock.querySelector('.opblock-summary');
const pathElement = opblock.querySelector('[data-path]');
const tagElement = opblock.querySelector('[data-tag]');
return {
index,
hasExecuteWrapper: !!opblock.querySelector('.execute-wrapper'),
hasSummary: !!summary,
path: pathElement?.getAttribute('data-path'),
tag: tagElement?.getAttribute('data-tag'),
isExpanded: opblock.classList.contains('is-open'),
summaryClasses: summary?.className,
};
});
});
console.log('Opblock structure:', JSON.stringify(opblockInfo, null, 2));
// Find the basic test-events endpoint
const basicEndpoint = opblockInfo.find(info => info.path === '/test-events/basic');
console.log('Basic endpoint info:', basicEndpoint);
expect(basicEndpoint).toBeTruthy();
expect(basicEndpoint?.tag).toBe('Test Events');
// Try to click on the summary to expand it
if (basicEndpoint && !basicEndpoint.isExpanded) {
console.log('Attempting to expand basic endpoint...');
await context.page.evaluate(() => {
const pathElement = document.querySelector('[data-path="/test-events/basic"]');
const opblock = pathElement?.closest('.opblock');
const summary = opblock?.querySelector('.opblock-summary');
if (summary) {
console.log('Clicking on summary:', summary);
summary.click();
}
});
// Wait a moment for expansion
await context.page.waitForTimeout(1000);
// Check if it expanded
const expandedInfo = 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('After expansion attempt:', expandedInfo);
}
// This test always passes - it's just for diagnostics
expect(true).toBe(true);
});
});