@nestjsvn/swagger-sse
Version:
OpenAPI documentation and interactive Swagger UI for NestJS Server-Sent Events endpoints
61 lines (60 loc) • 2.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const setup_1 = require("./setup");
const test_controllers_1 = require("./test-controllers");
describe('SSE Elements Check E2E Test', () => {
let context;
beforeAll(async () => {
context = await setup_1.E2ETestSetup.createContext('sse-elements-check', {
controllers: [test_controllers_1.TestEventsController, test_controllers_1.MobileTestController],
});
});
afterAll(async () => {
await setup_1.E2ETestSetup.cleanup('sse-elements-check');
});
it('should check SSE elements after execute', async () => {
console.log('=== SSE ELEMENTS CHECK START ===');
// Navigate and execute the full flow
await context.page.goto(`${context.baseUrl}/api-docs`);
await context.page.waitForSelector('.swagger-ui', { timeout: 10000 });
// Click through the flow
await context.page.click('[data-path="/test-events/basic"]');
await context.page.waitForTimeout(1000);
await context.page.click('.btn.try-out__btn');
await context.page.waitForTimeout(1000);
await context.page.click('.execute-wrapper .btn.execute');
await context.page.waitForTimeout(3000);
console.log('1. Completed execute flow');
// Check for specific SSE test IDs
const sseTestIds = [
'sse-connect-btn',
'sse-disconnect-btn',
'sse-status',
'sse-event-log',
'sse-clear-btn'
];
for (const testId of sseTestIds) {
const element = await context.page.$(`[data-testid="${testId}"]`);
console.log(`2. Element [data-testid="${testId}"] found:`, !!element);
if (element) {
const isVisible = await element.isVisible();
const boundingBox = await element.boundingBox();
console.log(` - Visible: ${isVisible}, BoundingBox:`, boundingBox);
}
}
// Check for any elements with data-testid containing "sse"
const allSseTestIds = await context.page.$$eval('[data-testid*="sse"]', elements => elements.map(el => ({
testId: el.getAttribute('data-testid'),
tagName: el.tagName,
visible: el.offsetParent !== null,
textContent: el.textContent?.trim().substring(0, 50)
})));
console.log('3. All SSE test ID elements:');
console.log(JSON.stringify(allSseTestIds, null, 2));
// Take a final screenshot
await context.page.screenshot({ path: 'sse-elements-final.png', fullPage: true });
console.log('4. Final screenshot taken: sse-elements-final.png');
console.log('=== SSE ELEMENTS CHECK END ===');
expect(true).toBe(true);
}, 60000);
});