/
ncit
/
studiosite
Обзор
Документация
Войти
/
ncit
/
studiosite
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
log/sdk-cli.log
15 943 строки
760 KB
ncit
Update case studies, HR assets, add tests and config
09 июн 2026, 11:24
09 июн 2026, 11:24
b01411d
Код
Авторство
О чём код?
2026-03-11T09:25:25.434Z CLI info Config : {"userName":"[REDACTED]","accessKey":"[REDACTED]","platforms":[{"browserName":"Safari","deviceName":"iPhone SE 2022","osVersion":"16","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"iPhone SE","wdioService":"9.24.0"},{"browserName":"Safari","deviceName":"iPhone 14","osVersion":"16","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"iPhone 14","wdioService":"9.24.0"},{"browserName":"Safari","deviceName":"iPhone 14 Pro Max","osVersion":"16","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"iPhone 14 Pro Max","wdioService":"9.24.0"},{"browserName":"Chrome","deviceName":"Samsung Galaxy S23","osVersion":"13.0","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"Galaxy S23","wdioService":"9.24.0"},{"browserName":"Chrome","deviceName":"Samsung Galaxy A14","osVersion":"13.0","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"Galaxy A14","wdioService":"9.24.0"},{"browserName":"Safari","deviceName":"iPad 10th","osVersion":"16","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"iPad 10th","wdioService":"9.24.0"},{"browserName":"Chrome","os":"Windows","osVersion":"11","browserVersion":"latest","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"Windows Chrome","wdioService":"9.24.0"}],"isNonBstackA11yWDIO":false,"accessibility":null,"testObservability":true,"testContextOptions":{"skipSessionName":false,"skipSessionStatus":false,"sessionNameOmitTestTitle":false,"sessionNamePrependTopLevelSuiteTitle":false,"sessionNameFormat":""},"buildTag":[]} 2026-03-11T09:25:25.437Z CLI info Should start debug utility: undefined 2026-03-11T09:25:25.439Z CLI info [testhub:module] [nikitafeshchun_QLqgEn] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Starting testhub from 56767:0 2026-03-11T09:25:25.439Z CLI info [nikitafeshchun_QLqgEn] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://sdk.browserstack.com 2026-03-11T09:25:25.439Z CLI info [nikitafeshchun_QLqgEn] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making GET request to https://hub.browserstack.com 2026-03-11T09:25:25.916Z CLI info [nikitafeshchun_QLqgEn] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making GET request to https://hub-euw.browserstack.com 2026-03-11T09:25:25.917Z CLI info [nikitafeshchun_QLqgEn] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making GET request to https://hub-use.browserstack.com 2026-03-11T09:25:25.917Z CLI info [nikitafeshchun_QLqgEn] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making GET request to https://hub-aps.browserstack.com 2026-03-11T09:25:26.229Z CLI info [testhub:module] [nikitafeshchun_QLqgEn] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] startBuild: response=rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso 2026-03-11T09:25:26.230Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://api.browserstack.com 2026-03-11T09:25:27.294Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Driver initialized as primary driver: platformIndex=0 2026-03-11T09:25:27.295Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Driver initialized as primary driver: platformIndex=3 2026-03-11T09:25:27.296Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Driver initialized as primary driver: platformIndex=2 2026-03-11T09:25:27.296Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Driver initialized as primary driver: platformIndex=1 2026-03-11T09:25:27.297Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Driver initialized as primary driver: platformIndex=4 2026-03-11T09:25:35.447Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Driver initialized as primary driver: platformIndex=5 2026-03-11T09:25:46.967Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'f1a1955d-4a3c-4fee-bd1b-afe0d42be0bf', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:46.969Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f1a1955d-4a3c-4fee-bd1b-afe0d42be0bf', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:46.960Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:47.111Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"f1a1955d-4a3c-4fee-bd1b-afe0d42be0bf","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:46.960Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:47.099Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:47.113Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f1a1955d-4a3c-4fee-bd1b-afe0d42be0bf', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 139, started_at: '2026-03-11T09:25:46.960Z', finished_at: '2026-03-11T09:25:47.099Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:47.290Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '4286e8b4-30a0-40b5-8333-09135cbec2f5', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:47.291Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4286e8b4-30a0-40b5-8333-09135cbec2f5', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:47.284Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:47.438Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"4286e8b4-30a0-40b5-8333-09135cbec2f5","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:47.284Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:47.428Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:47.441Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4286e8b4-30a0-40b5-8333-09135cbec2f5', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 144, started_at: '2026-03-11T09:25:47.284Z', finished_at: '2026-03-11T09:25:47.428Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:48.009Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '699d44d0-f0a5-41b0-923d-710fca644359', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:48.010Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '699d44d0-f0a5-41b0-923d-710fca644359', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:48.003Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:48.094Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'b7c35c48-b8e9-406e-9555-787412c0b20f', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:48.094Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b7c35c48-b8e9-406e-9555-787412c0b20f', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:48.084Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:48.145Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"699d44d0-f0a5-41b0-923d-710fca644359","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:48.003Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:48.142Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:48.146Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '699d44d0-f0a5-41b0-923d-710fca644359', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 139, started_at: '2026-03-11T09:25:48.003Z', finished_at: '2026-03-11T09:25:48.142Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:48.243Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: 'f1a1955d-4a3c-4fee-bd1b-afe0d42be0bf', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f1a1955d-4a3c-4fee-bd1b-afe0d42be0bf', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:46.960Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f1a1955d-4a3c-4fee-bd1b-afe0d42be0bf', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 139, started_at: '2026-03-11T09:25:46.960Z', finished_at: '2026-03-11T09:25:47.099Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '4286e8b4-30a0-40b5-8333-09135cbec2f5', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4286e8b4-30a0-40b5-8333-09135cbec2f5', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:47.284Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4286e8b4-30a0-40b5-8333-09135cbec2f5', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 144, started_at: '2026-03-11T09:25:47.284Z', finished_at: '2026-03-11T09:25:47.428Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '699d44d0-f0a5-41b0-923d-710fca644359', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '699d44d0-f0a5-41b0-923d-710fca644359', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:48.003Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'b7c35c48-b8e9-406e-9555-787412c0b20f', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b7c35c48-b8e9-406e-9555-787412c0b20f', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:48.084Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '699d44d0-f0a5-41b0-923d-710fca644359', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 139, started_at: '2026-03-11T09:25:48.003Z', finished_at: '2026-03-11T09:25:48.142Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:25:48.247Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:25:48.999Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"b7c35c48-b8e9-406e-9555-787412c0b20f","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:48.084Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:48.996Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:49.001Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b7c35c48-b8e9-406e-9555-787412c0b20f', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 912, started_at: '2026-03-11T09:25:48.084Z', finished_at: '2026-03-11T09:25:48.996Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:49.022Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'b980c19a-bc7e-473a-895b-84e5c413938e', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:49.023Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b980c19a-bc7e-473a-895b-84e5c413938e', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:49.011Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:49.539Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'eb00ce11-4a29-46b6-98cd-84769d7bdc13', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:49.540Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'eb00ce11-4a29-46b6-98cd-84769d7bdc13', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:49.532Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:49.550Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '3bb1bda9-b674-4994-8d8b-3046396e861d', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:49.551Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '3bb1bda9-b674-4994-8d8b-3046396e861d', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:49.545Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:49.656Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"eb00ce11-4a29-46b6-98cd-84769d7bdc13","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:49.532Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:49.651Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:49.657Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'eb00ce11-4a29-46b6-98cd-84769d7bdc13', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 119, started_at: '2026-03-11T09:25:49.532Z', finished_at: '2026-03-11T09:25:49.651Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:49.969Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '018d144f-e902-4e45-b65c-926934673883', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:49.970Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '018d144f-e902-4e45-b65c-926934673883', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:49.960Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:49.988Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"b980c19a-bc7e-473a-895b-84e5c413938e","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:49.011Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:49.984Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:49.988Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b980c19a-bc7e-473a-895b-84e5c413938e', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 973, started_at: '2026-03-11T09:25:49.011Z', finished_at: '2026-03-11T09:25:49.984Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:50.242Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b7c35c48-b8e9-406e-9555-787412c0b20f', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 912, started_at: '2026-03-11T09:25:48.084Z', finished_at: '2026-03-11T09:25:48.996Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'b980c19a-bc7e-473a-895b-84e5c413938e', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b980c19a-bc7e-473a-895b-84e5c413938e', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:49.011Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'eb00ce11-4a29-46b6-98cd-84769d7bdc13', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'eb00ce11-4a29-46b6-98cd-84769d7bdc13', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:49.532Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '3bb1bda9-b674-4994-8d8b-3046396e861d', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '3bb1bda9-b674-4994-8d8b-3046396e861d', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:49.545Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'eb00ce11-4a29-46b6-98cd-84769d7bdc13', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 119, started_at: '2026-03-11T09:25:49.532Z', finished_at: '2026-03-11T09:25:49.651Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '018d144f-e902-4e45-b65c-926934673883', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '018d144f-e902-4e45-b65c-926934673883', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:49.960Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b980c19a-bc7e-473a-895b-84e5c413938e', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 973, started_at: '2026-03-11T09:25:49.011Z', finished_at: '2026-03-11T09:25:49.984Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:25:50.245Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:25:50.456Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"3bb1bda9-b674-4994-8d8b-3046396e861d","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:49.545Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:50.451Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:50.457Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '3bb1bda9-b674-4994-8d8b-3046396e861d', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 906, started_at: '2026-03-11T09:25:49.545Z', finished_at: '2026-03-11T09:25:50.451Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:50.875Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"018d144f-e902-4e45-b65c-926934673883","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:49.960Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:50.865Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:50.877Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '018d144f-e902-4e45-b65c-926934673883', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 905, started_at: '2026-03-11T09:25:49.960Z', finished_at: '2026-03-11T09:25:50.865Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:51.046Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'dde0cc21-7fa8-4d32-acc8-752ef1db3038', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:51.047Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'dde0cc21-7fa8-4d32-acc8-752ef1db3038', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:51.038Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:51.549Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'd9f566b8-54fb-43b4-9269-d75bb1a7a4fc', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:51.551Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd9f566b8-54fb-43b4-9269-d75bb1a7a4fc', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:51.533Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:51.981Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '8a5e9b2d-fc75-4ba4-884f-e245e8917480', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:51.983Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8a5e9b2d-fc75-4ba4-884f-e245e8917480', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:51.969Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:52.168Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"dde0cc21-7fa8-4d32-acc8-752ef1db3038","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:51.038Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:52.166Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:52.169Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'dde0cc21-7fa8-4d32-acc8-752ef1db3038', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 1128, started_at: '2026-03-11T09:25:51.038Z', finished_at: '2026-03-11T09:25:52.166Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:52.242Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '3bb1bda9-b674-4994-8d8b-3046396e861d', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 906, started_at: '2026-03-11T09:25:49.545Z', finished_at: '2026-03-11T09:25:50.451Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '018d144f-e902-4e45-b65c-926934673883', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 905, started_at: '2026-03-11T09:25:49.960Z', finished_at: '2026-03-11T09:25:50.865Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'dde0cc21-7fa8-4d32-acc8-752ef1db3038', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'dde0cc21-7fa8-4d32-acc8-752ef1db3038', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:51.038Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'd9f566b8-54fb-43b4-9269-d75bb1a7a4fc', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd9f566b8-54fb-43b4-9269-d75bb1a7a4fc', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:51.533Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '8a5e9b2d-fc75-4ba4-884f-e245e8917480', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8a5e9b2d-fc75-4ba4-884f-e245e8917480', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:51.969Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'dde0cc21-7fa8-4d32-acc8-752ef1db3038', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 1128, started_at: '2026-03-11T09:25:51.038Z', finished_at: '2026-03-11T09:25:52.166Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:25:52.243Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:25:52.384Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"d9f566b8-54fb-43b4-9269-d75bb1a7a4fc","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:51.533Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:52.378Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:52.387Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd9f566b8-54fb-43b4-9269-d75bb1a7a4fc', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 845, started_at: '2026-03-11T09:25:51.533Z', finished_at: '2026-03-11T09:25:52.378Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:52.806Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'c3fcb130-3683-4e6c-8ab4-fd462bdd5f89', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:52.807Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'c3fcb130-3683-4e6c-8ab4-fd462bdd5f89', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:52.791Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:52.808Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'ff5910d1-8b0b-4907-8a07-c5b003a7ce80', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:52.809Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ff5910d1-8b0b-4907-8a07-c5b003a7ce80', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:52.804Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:53.088Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"8a5e9b2d-fc75-4ba4-884f-e245e8917480","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:51.969Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:53.082Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:53.089Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8a5e9b2d-fc75-4ba4-884f-e245e8917480', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 1113, started_at: '2026-03-11T09:25:51.969Z', finished_at: '2026-03-11T09:25:53.082Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:53.644Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"c3fcb130-3683-4e6c-8ab4-fd462bdd5f89","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:52.791Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:53.638Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:53.645Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'c3fcb130-3683-4e6c-8ab4-fd462bdd5f89', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 847, started_at: '2026-03-11T09:25:52.791Z', finished_at: '2026-03-11T09:25:53.638Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:53.790Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"ff5910d1-8b0b-4907-8a07-c5b003a7ce80","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:52.804Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:53.785Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:53.792Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ff5910d1-8b0b-4907-8a07-c5b003a7ce80', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 981, started_at: '2026-03-11T09:25:52.804Z', finished_at: '2026-03-11T09:25:53.785Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:54.214Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '02c8cb35-6af1-461f-97fd-a767ad91286f', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:54.215Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '02c8cb35-6af1-461f-97fd-a767ad91286f', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:54.208Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:54.244Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd9f566b8-54fb-43b4-9269-d75bb1a7a4fc', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 845, started_at: '2026-03-11T09:25:51.533Z', finished_at: '2026-03-11T09:25:52.378Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'c3fcb130-3683-4e6c-8ab4-fd462bdd5f89', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'c3fcb130-3683-4e6c-8ab4-fd462bdd5f89', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:52.791Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'ff5910d1-8b0b-4907-8a07-c5b003a7ce80', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ff5910d1-8b0b-4907-8a07-c5b003a7ce80', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:52.804Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8a5e9b2d-fc75-4ba4-884f-e245e8917480', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 1113, started_at: '2026-03-11T09:25:51.969Z', finished_at: '2026-03-11T09:25:53.082Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'c3fcb130-3683-4e6c-8ab4-fd462bdd5f89', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 847, started_at: '2026-03-11T09:25:52.791Z', finished_at: '2026-03-11T09:25:53.638Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ff5910d1-8b0b-4907-8a07-c5b003a7ce80', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 981, started_at: '2026-03-11T09:25:52.804Z', finished_at: '2026-03-11T09:25:53.785Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '02c8cb35-6af1-461f-97fd-a767ad91286f', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '02c8cb35-6af1-461f-97fd-a767ad91286f', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:54.208Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:25:54.245Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:25:54.455Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'ee0e9d41-6317-4d7f-ae8c-5011cbebbf42', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:54.456Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ee0e9d41-6317-4d7f-ae8c-5011cbebbf42', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:54.438Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:54.834Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"ee0e9d41-6317-4d7f-ae8c-5011cbebbf42","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:54.438Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:54.828Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:54.837Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ee0e9d41-6317-4d7f-ae8c-5011cbebbf42', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 390, started_at: '2026-03-11T09:25:54.438Z', finished_at: '2026-03-11T09:25:54.828Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:54.970Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"02c8cb35-6af1-461f-97fd-a767ad91286f","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:54.208Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:54.966Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:54.971Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '02c8cb35-6af1-461f-97fd-a767ad91286f', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 758, started_at: '2026-03-11T09:25:54.208Z', finished_at: '2026-03-11T09:25:54.966Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:55.079Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'f49d3699-2f1d-42a9-bc93-5f98d9867b74', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:55.079Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f49d3699-2f1d-42a9-bc93-5f98d9867b74', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:55.070Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:55.378Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '9c036137-e2ec-4dd8-a2e5-811549de53f4', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:55.379Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9c036137-e2ec-4dd8-a2e5-811549de53f4', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:55.369Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:55.466Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'b7e6d513-01bb-46a6-9350-9607cdd81fdd', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:55.466Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b7e6d513-01bb-46a6-9350-9607cdd81fdd', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:55.458Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:55.503Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"9c036137-e2ec-4dd8-a2e5-811549de53f4","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:55.369Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:55.497Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:55.504Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9c036137-e2ec-4dd8-a2e5-811549de53f4', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 128, started_at: '2026-03-11T09:25:55.369Z', finished_at: '2026-03-11T09:25:55.497Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:55.671Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '99e2ca35-b49d-410c-a6b0-f20854896889', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:55.672Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '99e2ca35-b49d-410c-a6b0-f20854896889', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:55.666Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:55.778Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"99e2ca35-b49d-410c-a6b0-f20854896889","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:55.666Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:55.773Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:55.779Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '99e2ca35-b49d-410c-a6b0-f20854896889', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 107, started_at: '2026-03-11T09:25:55.666Z', finished_at: '2026-03-11T09:25:55.773Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:55.939Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"f49d3699-2f1d-42a9-bc93-5f98d9867b74","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:55.070Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:55.934Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:55.942Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f49d3699-2f1d-42a9-bc93-5f98d9867b74', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 864, started_at: '2026-03-11T09:25:55.070Z', finished_at: '2026-03-11T09:25:55.934Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:56.224Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"b7e6d513-01bb-46a6-9350-9607cdd81fdd","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:55.458Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:56.221Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:56.225Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b7e6d513-01bb-46a6-9350-9607cdd81fdd', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 763, started_at: '2026-03-11T09:25:55.458Z', finished_at: '2026-03-11T09:25:56.221Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:56.245Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: 'ee0e9d41-6317-4d7f-ae8c-5011cbebbf42', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ee0e9d41-6317-4d7f-ae8c-5011cbebbf42', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:54.438Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ee0e9d41-6317-4d7f-ae8c-5011cbebbf42', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 390, started_at: '2026-03-11T09:25:54.438Z', finished_at: '2026-03-11T09:25:54.828Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '02c8cb35-6af1-461f-97fd-a767ad91286f', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 758, started_at: '2026-03-11T09:25:54.208Z', finished_at: '2026-03-11T09:25:54.966Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'f49d3699-2f1d-42a9-bc93-5f98d9867b74', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f49d3699-2f1d-42a9-bc93-5f98d9867b74', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:55.070Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '9c036137-e2ec-4dd8-a2e5-811549de53f4', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9c036137-e2ec-4dd8-a2e5-811549de53f4', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:55.369Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'b7e6d513-01bb-46a6-9350-9607cdd81fdd', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b7e6d513-01bb-46a6-9350-9607cdd81fdd', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:55.458Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9c036137-e2ec-4dd8-a2e5-811549de53f4', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 128, started_at: '2026-03-11T09:25:55.369Z', finished_at: '2026-03-11T09:25:55.497Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '99e2ca35-b49d-410c-a6b0-f20854896889', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '99e2ca35-b49d-410c-a6b0-f20854896889', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:55.666Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '99e2ca35-b49d-410c-a6b0-f20854896889', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 107, started_at: '2026-03-11T09:25:55.666Z', finished_at: '2026-03-11T09:25:55.773Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f49d3699-2f1d-42a9-bc93-5f98d9867b74', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 864, started_at: '2026-03-11T09:25:55.070Z', finished_at: '2026-03-11T09:25:55.934Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b7e6d513-01bb-46a6-9350-9607cdd81fdd', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 763, started_at: '2026-03-11T09:25:55.458Z', finished_at: '2026-03-11T09:25:56.221Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:25:56.247Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:25:56.842Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '04c13567-12ae-45d5-b16d-26252cdea7ee', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:56.842Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '04c13567-12ae-45d5-b16d-26252cdea7ee', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:56.834Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:57.537Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '687f6aee-ae94-42e2-b766-44a0d4795b27', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:57.537Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '687f6aee-ae94-42e2-b766-44a0d4795b27', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:57.524Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:57.590Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"04c13567-12ae-45d5-b16d-26252cdea7ee","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:56.834Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:57.586Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:57.591Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '04c13567-12ae-45d5-b16d-26252cdea7ee', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 752, started_at: '2026-03-11T09:25:56.834Z', finished_at: '2026-03-11T09:25:57.586Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:57.887Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'bacd0d41-7115-4392-ade2-6dcf2f2ffc51', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:57.887Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bacd0d41-7115-4392-ade2-6dcf2f2ffc51', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:57.884Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:58.090Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"687f6aee-ae94-42e2-b766-44a0d4795b27","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:57.524Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:58.089Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:58.090Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '687f6aee-ae94-42e2-b766-44a0d4795b27', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 565, started_at: '2026-03-11T09:25:57.524Z', finished_at: '2026-03-11T09:25:58.089Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:58.107Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '4cdae069-eb6a-434c-99c3-53760c8a280c', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:58.107Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4cdae069-eb6a-434c-99c3-53760c8a280c', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:58.105Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:58.245Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '04c13567-12ae-45d5-b16d-26252cdea7ee', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '04c13567-12ae-45d5-b16d-26252cdea7ee', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:56.834Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '687f6aee-ae94-42e2-b766-44a0d4795b27', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '687f6aee-ae94-42e2-b766-44a0d4795b27', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:57.524Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '04c13567-12ae-45d5-b16d-26252cdea7ee', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 752, started_at: '2026-03-11T09:25:56.834Z', finished_at: '2026-03-11T09:25:57.586Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'bacd0d41-7115-4392-ade2-6dcf2f2ffc51', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bacd0d41-7115-4392-ade2-6dcf2f2ffc51', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:57.884Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '687f6aee-ae94-42e2-b766-44a0d4795b27', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 565, started_at: '2026-03-11T09:25:57.524Z', finished_at: '2026-03-11T09:25:58.089Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '4cdae069-eb6a-434c-99c3-53760c8a280c', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4cdae069-eb6a-434c-99c3-53760c8a280c', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:58.105Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:25:58.245Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:25:58.332Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Driver initialized as primary driver: platformIndex=6 2026-03-11T09:25:58.797Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"bacd0d41-7115-4392-ade2-6dcf2f2ffc51","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:57.884Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:58.794Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:58.797Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bacd0d41-7115-4392-ade2-6dcf2f2ffc51', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 910, started_at: '2026-03-11T09:25:57.884Z', finished_at: '2026-03-11T09:25:58.794Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:58.879Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"4cdae069-eb6a-434c-99c3-53760c8a280c","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:58.105Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:25:58.877Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:25:58.880Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4cdae069-eb6a-434c-99c3-53760c8a280c', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 772, started_at: '2026-03-11T09:25:58.105Z', finished_at: '2026-03-11T09:25:58.877Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:59.428Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '06098036-9af0-43ef-bfa5-c2f4754c119f', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:59.429Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '06098036-9af0-43ef-bfa5-c2f4754c119f', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:59.421Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:25:59.831Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '4d165905-abea-40fa-b139-f117ecb6ea3b', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:25:59.832Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4d165905-abea-40fa-b139-f117ecb6ea3b', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:59.822Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:00.253Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bacd0d41-7115-4392-ade2-6dcf2f2ffc51', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 910, started_at: '2026-03-11T09:25:57.884Z', finished_at: '2026-03-11T09:25:58.794Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4cdae069-eb6a-434c-99c3-53760c8a280c', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 772, started_at: '2026-03-11T09:25:58.105Z', finished_at: '2026-03-11T09:25:58.877Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '06098036-9af0-43ef-bfa5-c2f4754c119f', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '06098036-9af0-43ef-bfa5-c2f4754c119f', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:59.421Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '4d165905-abea-40fa-b139-f117ecb6ea3b', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4d165905-abea-40fa-b139-f117ecb6ea3b', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:25:59.822Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:26:00.254Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:00.283Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"06098036-9af0-43ef-bfa5-c2f4754c119f","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:59.421Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:00.280Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:00.283Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '06098036-9af0-43ef-bfa5-c2f4754c119f', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 859, started_at: '2026-03-11T09:25:59.421Z', finished_at: '2026-03-11T09:26:00.280Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:00.387Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"4d165905-abea-40fa-b139-f117ecb6ea3b","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:25:59.822Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:00.385Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:00.388Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4d165905-abea-40fa-b139-f117ecb6ea3b', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 563, started_at: '2026-03-11T09:25:59.822Z', finished_at: '2026-03-11T09:26:00.385Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:00.712Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '5bb0464e-620b-4f3d-a95b-9e7e94a5e362', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:00.712Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5bb0464e-620b-4f3d-a95b-9e7e94a5e362', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:00.707Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:00.837Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '045fbdee-c6a2-4192-9e4f-46e44eae0fec', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:00.838Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '045fbdee-c6a2-4192-9e4f-46e44eae0fec', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:00.827Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:01.114Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"5bb0464e-620b-4f3d-a95b-9e7e94a5e362","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:00.707Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:01.112Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:01.116Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5bb0464e-620b-4f3d-a95b-9e7e94a5e362', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 405, started_at: '2026-03-11T09:26:00.707Z', finished_at: '2026-03-11T09:26:01.112Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:01.174Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"045fbdee-c6a2-4192-9e4f-46e44eae0fec","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:00.827Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:01.172Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:01.176Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '045fbdee-c6a2-4192-9e4f-46e44eae0fec', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 345, started_at: '2026-03-11T09:26:00.827Z', finished_at: '2026-03-11T09:26:01.172Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:02.133Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '8e1453db-5f71-4941-b383-e9b595a4d2d5', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:02.134Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8e1453db-5f71-4941-b383-e9b595a4d2d5', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:02.127Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:02.203Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '42659521-1fe9-44a2-98a6-a7b4c166e0e1', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:02.204Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '42659521-1fe9-44a2-98a6-a7b4c166e0e1', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:02.198Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:02.248Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '06098036-9af0-43ef-bfa5-c2f4754c119f', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 859, started_at: '2026-03-11T09:25:59.421Z', finished_at: '2026-03-11T09:26:00.280Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '4d165905-abea-40fa-b139-f117ecb6ea3b', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 563, started_at: '2026-03-11T09:25:59.822Z', finished_at: '2026-03-11T09:26:00.385Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '5bb0464e-620b-4f3d-a95b-9e7e94a5e362', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5bb0464e-620b-4f3d-a95b-9e7e94a5e362', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:00.707Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '045fbdee-c6a2-4192-9e4f-46e44eae0fec', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '045fbdee-c6a2-4192-9e4f-46e44eae0fec', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:00.827Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5bb0464e-620b-4f3d-a95b-9e7e94a5e362', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 405, started_at: '2026-03-11T09:26:00.707Z', finished_at: '2026-03-11T09:26:01.112Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '045fbdee-c6a2-4192-9e4f-46e44eae0fec', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 345, started_at: '2026-03-11T09:26:00.827Z', finished_at: '2026-03-11T09:26:01.172Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '8e1453db-5f71-4941-b383-e9b595a4d2d5', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8e1453db-5f71-4941-b383-e9b595a4d2d5', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:02.127Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '42659521-1fe9-44a2-98a6-a7b4c166e0e1', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '42659521-1fe9-44a2-98a6-a7b4c166e0e1', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:02.198Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:26:02.249Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:02.512Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"8e1453db-5f71-4941-b383-e9b595a4d2d5","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:02.127Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:02.509Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:02.512Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8e1453db-5f71-4941-b383-e9b595a4d2d5', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 382, started_at: '2026-03-11T09:26:02.127Z', finished_at: '2026-03-11T09:26:02.509Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:02.681Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"42659521-1fe9-44a2-98a6-a7b4c166e0e1","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:02.198Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:02.679Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:02.682Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '42659521-1fe9-44a2-98a6-a7b4c166e0e1', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 481, started_at: '2026-03-11T09:26:02.198Z', finished_at: '2026-03-11T09:26:02.679Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:02.999Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '11c58673-afa9-4154-8b14-901ab0382fa7', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:02.999Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '11c58673-afa9-4154-8b14-901ab0382fa7', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:02.991Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:03.076Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '0277b6d1-b79c-482f-8ad1-05bc7aa9c37a', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:03.076Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '0277b6d1-b79c-482f-8ad1-05bc7aa9c37a', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:03.071Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:03.244Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"11c58673-afa9-4154-8b14-901ab0382fa7","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:02.991Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:03.241Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:03.244Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '11c58673-afa9-4154-8b14-901ab0382fa7', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 250, started_at: '2026-03-11T09:26:02.991Z', finished_at: '2026-03-11T09:26:03.241Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:03.251Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"0277b6d1-b79c-482f-8ad1-05bc7aa9c37a","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:03.071Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:03.246Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:03.251Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '0277b6d1-b79c-482f-8ad1-05bc7aa9c37a', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 175, started_at: '2026-03-11T09:26:03.071Z', finished_at: '2026-03-11T09:26:03.246Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:03.560Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'f167bba0-6e30-4ef1-8e90-5e36db358766', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:03.561Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f167bba0-6e30-4ef1-8e90-5e36db358766', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:03.552Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:03.655Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"f167bba0-6e30-4ef1-8e90-5e36db358766","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:03.552Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:03.650Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:03.656Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f167bba0-6e30-4ef1-8e90-5e36db358766', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 98, started_at: '2026-03-11T09:26:03.552Z', finished_at: '2026-03-11T09:26:03.650Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:04.167Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'e54c35bd-cbf4-4d11-b861-e03530df5d9d', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:04.168Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e54c35bd-cbf4-4d11-b861-e03530df5d9d', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:04.156Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:04.248Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8e1453db-5f71-4941-b383-e9b595a4d2d5', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 382, started_at: '2026-03-11T09:26:02.127Z', finished_at: '2026-03-11T09:26:02.509Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '42659521-1fe9-44a2-98a6-a7b4c166e0e1', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 481, started_at: '2026-03-11T09:26:02.198Z', finished_at: '2026-03-11T09:26:02.679Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '11c58673-afa9-4154-8b14-901ab0382fa7', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '11c58673-afa9-4154-8b14-901ab0382fa7', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:02.991Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '0277b6d1-b79c-482f-8ad1-05bc7aa9c37a', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '0277b6d1-b79c-482f-8ad1-05bc7aa9c37a', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:03.071Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '11c58673-afa9-4154-8b14-901ab0382fa7', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 250, started_at: '2026-03-11T09:26:02.991Z', finished_at: '2026-03-11T09:26:03.241Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '0277b6d1-b79c-482f-8ad1-05bc7aa9c37a', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 175, started_at: '2026-03-11T09:26:03.071Z', finished_at: '2026-03-11T09:26:03.246Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'f167bba0-6e30-4ef1-8e90-5e36db358766', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f167bba0-6e30-4ef1-8e90-5e36db358766', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:03.552Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f167bba0-6e30-4ef1-8e90-5e36db358766', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 98, started_at: '2026-03-11T09:26:03.552Z', finished_at: '2026-03-11T09:26:03.650Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'e54c35bd-cbf4-4d11-b861-e03530df5d9d', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e54c35bd-cbf4-4d11-b861-e03530df5d9d', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:04.156Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:26:04.249Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:04.359Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'e1e65a19-dc27-48a1-9ff0-dcfa175a4ec1', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:04.360Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e1e65a19-dc27-48a1-9ff0-dcfa175a4ec1', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:04.353Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:04.435Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '2b165d2f-ee15-4d73-9f5a-24c09bdbd122', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:04.436Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '2b165d2f-ee15-4d73-9f5a-24c09bdbd122', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:04.427Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:04.500Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"e1e65a19-dc27-48a1-9ff0-dcfa175a4ec1","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:04.353Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:04.497Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:04.501Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e1e65a19-dc27-48a1-9ff0-dcfa175a4ec1', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 144, started_at: '2026-03-11T09:26:04.353Z', finished_at: '2026-03-11T09:26:04.497Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:04.635Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"e54c35bd-cbf4-4d11-b861-e03530df5d9d","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:04.156Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:04.628Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:04.635Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e54c35bd-cbf4-4d11-b861-e03530df5d9d', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 472, started_at: '2026-03-11T09:26:04.156Z', finished_at: '2026-03-11T09:26:04.628Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:04.939Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"2b165d2f-ee15-4d73-9f5a-24c09bdbd122","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:04.427Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:04.936Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:04.940Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '2b165d2f-ee15-4d73-9f5a-24c09bdbd122', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 509, started_at: '2026-03-11T09:26:04.427Z', finished_at: '2026-03-11T09:26:04.936Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:05.177Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'acddc3d4-c88a-4d2f-a7f9-8963c1ae43cb', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:05.177Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'acddc3d4-c88a-4d2f-a7f9-8963c1ae43cb', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:05.173Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:05.681Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"acddc3d4-c88a-4d2f-a7f9-8963c1ae43cb","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:05.173Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:05.677Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:05.682Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'acddc3d4-c88a-4d2f-a7f9-8963c1ae43cb', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 504, started_at: '2026-03-11T09:26:05.173Z', finished_at: '2026-03-11T09:26:05.677Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:06.211Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '9fd2a6df-178f-4ef0-8f5e-95de5953b433', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:06.212Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9fd2a6df-178f-4ef0-8f5e-95de5953b433', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:06.206Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:06.249Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: 'e1e65a19-dc27-48a1-9ff0-dcfa175a4ec1', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e1e65a19-dc27-48a1-9ff0-dcfa175a4ec1', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:04.353Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '2b165d2f-ee15-4d73-9f5a-24c09bdbd122', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '2b165d2f-ee15-4d73-9f5a-24c09bdbd122', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:04.427Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e1e65a19-dc27-48a1-9ff0-dcfa175a4ec1', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 144, started_at: '2026-03-11T09:26:04.353Z', finished_at: '2026-03-11T09:26:04.497Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e54c35bd-cbf4-4d11-b861-e03530df5d9d', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 472, started_at: '2026-03-11T09:26:04.156Z', finished_at: '2026-03-11T09:26:04.628Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '2b165d2f-ee15-4d73-9f5a-24c09bdbd122', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 509, started_at: '2026-03-11T09:26:04.427Z', finished_at: '2026-03-11T09:26:04.936Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'acddc3d4-c88a-4d2f-a7f9-8963c1ae43cb', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'acddc3d4-c88a-4d2f-a7f9-8963c1ae43cb', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:05.173Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'acddc3d4-c88a-4d2f-a7f9-8963c1ae43cb', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 504, started_at: '2026-03-11T09:26:05.173Z', finished_at: '2026-03-11T09:26:05.677Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '9fd2a6df-178f-4ef0-8f5e-95de5953b433', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9fd2a6df-178f-4ef0-8f5e-95de5953b433', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:06.206Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:26:06.249Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:06.668Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '1c6b2381-398c-4478-8065-5663f6219ac3', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:06.669Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '1c6b2381-398c-4478-8065-5663f6219ac3', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:06.659Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:06.670Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"9fd2a6df-178f-4ef0-8f5e-95de5953b433","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:06.206Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:06.665Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:06.670Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9fd2a6df-178f-4ef0-8f5e-95de5953b433', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 459, started_at: '2026-03-11T09:26:06.206Z', finished_at: '2026-03-11T09:26:06.665Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:06.932Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"1c6b2381-398c-4478-8065-5663f6219ac3","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:06.659Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:06.930Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:06.933Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '1c6b2381-398c-4478-8065-5663f6219ac3', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 271, started_at: '2026-03-11T09:26:06.659Z', finished_at: '2026-03-11T09:26:06.930Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:07.198Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '267e4a3c-77ef-446e-a3a8-3fc3d2b03483', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:07.199Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '267e4a3c-77ef-446e-a3a8-3fc3d2b03483', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:07.191Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:07.643Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"267e4a3c-77ef-446e-a3a8-3fc3d2b03483","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:07.191Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:07.639Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:07.643Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '267e4a3c-77ef-446e-a3a8-3fc3d2b03483', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 448, started_at: '2026-03-11T09:26:07.191Z', finished_at: '2026-03-11T09:26:07.639Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:08.011Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '3704f8f7-c1b8-4a8b-8378-4dbd8e54042b', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:08.012Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '3704f8f7-c1b8-4a8b-8378-4dbd8e54042b', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:08.004Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:08.205Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"3704f8f7-c1b8-4a8b-8378-4dbd8e54042b","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:08.004Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:08.203Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:08.205Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '3704f8f7-c1b8-4a8b-8378-4dbd8e54042b', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 199, started_at: '2026-03-11T09:26:08.004Z', finished_at: '2026-03-11T09:26:08.203Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:08.249Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '1c6b2381-398c-4478-8065-5663f6219ac3', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '1c6b2381-398c-4478-8065-5663f6219ac3', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:06.659Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9fd2a6df-178f-4ef0-8f5e-95de5953b433', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 459, started_at: '2026-03-11T09:26:06.206Z', finished_at: '2026-03-11T09:26:06.665Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '1c6b2381-398c-4478-8065-5663f6219ac3', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 271, started_at: '2026-03-11T09:26:06.659Z', finished_at: '2026-03-11T09:26:06.930Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '267e4a3c-77ef-446e-a3a8-3fc3d2b03483', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '267e4a3c-77ef-446e-a3a8-3fc3d2b03483', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:07.191Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '267e4a3c-77ef-446e-a3a8-3fc3d2b03483', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 448, started_at: '2026-03-11T09:26:07.191Z', finished_at: '2026-03-11T09:26:07.639Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '3704f8f7-c1b8-4a8b-8378-4dbd8e54042b', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '3704f8f7-c1b8-4a8b-8378-4dbd8e54042b', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:08.004Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '3704f8f7-c1b8-4a8b-8378-4dbd8e54042b', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 199, started_at: '2026-03-11T09:26:08.004Z', finished_at: '2026-03-11T09:26:08.203Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:26:08.250Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:08.596Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '9e668118-2c1a-4760-ad6f-67a49dd60b2e', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:08.597Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9e668118-2c1a-4760-ad6f-67a49dd60b2e', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:08.586Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:08.669Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '7b032c71-a14c-4b61-9836-6566237af148', integrations: { browserstack: [Object] } } } to 56767:0 2026-03-11T09:26:08.670Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7b032c71-a14c-4b61-9836-6566237af148', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:08.663Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:08.676Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"9e668118-2c1a-4760-ad6f-67a49dd60b2e","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:08.586Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:08.674Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:08.676Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9e668118-2c1a-4760-ad6f-67a49dd60b2e', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 88, started_at: '2026-03-11T09:26:08.586Z', finished_at: '2026-03-11T09:26:08.674Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:08.761Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"7b032c71-a14c-4b61-9836-6566237af148","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:08.663Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:08.759Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:08.762Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7b032c71-a14c-4b61-9836-6566237af148', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 96, started_at: '2026-03-11T09:26:08.663Z', finished_at: '2026-03-11T09:26:08.759Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56767:0 2026-03-11T09:26:10.249Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '9e668118-2c1a-4760-ad6f-67a49dd60b2e', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9e668118-2c1a-4760-ad6f-67a49dd60b2e', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:08.586Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '7b032c71-a14c-4b61-9836-6566237af148', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7b032c71-a14c-4b61-9836-6566237af148', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:08.663Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9e668118-2c1a-4760-ad6f-67a49dd60b2e', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 88, started_at: '2026-03-11T09:26:08.586Z', finished_at: '2026-03-11T09:26:08.674Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7b032c71-a14c-4b61-9836-6566237af148', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 96, started_at: '2026-03-11T09:26:08.663Z', finished_at: '2026-03-11T09:26:08.759Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56767:0 2026-03-11T09:26:10.250Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:11.142Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making GET request to https://api.browserstack.com 2026-03-11T09:26:11.146Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making PUT request to https://collector-observability.browserstack.com 2026-03-11T09:26:11.665Z CLI info [testhub:module] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] stopBuild: rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso request={"finished_at":"2026-03-11T09:26:11.142Z","finished_metadata":[],"custom_metadata":null} response={"data":""} 2026-03-11T09:26:11.666Z CLI info [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] [PRODUCTION] Making POST request to https://api.browserstack.com 2026-03-11T09:26:11.997Z CLI info [TEST REPORTING AND ANALYTICS:module] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Visit https://automation.browserstack.com/builds/rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso to view build report, insights, and many more debugging information all at one place! 2026-03-11T09:26:12.001Z CLI info [main] [nikitafeshchun_QLqgEn] [rfp0yqrt5vn7tvzl88dh4tyxobjlp2hefr5aryso] [49ee1e97-6cd1-4afe-a85a-fab820c5a591] Received graceful signal termination (SIGTERM), performing cleanup 2026-03-11T09:26:20.970Z CLI info Config : {"userName":"[REDACTED]","accessKey":"[REDACTED]","platforms":[{"browserName":"Safari","deviceName":"iPhone SE 2022","osVersion":"16","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"iPhone SE","wdioService":"9.24.0"},{"browserName":"Safari","deviceName":"iPhone 14","osVersion":"16","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"iPhone 14","wdioService":"9.24.0"},{"browserName":"Safari","deviceName":"iPhone 14 Pro Max","osVersion":"16","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"iPhone 14 Pro Max","wdioService":"9.24.0"},{"browserName":"Chrome","deviceName":"Samsung Galaxy S23","osVersion":"13.0","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"Galaxy S23","wdioService":"9.24.0"},{"browserName":"Chrome","deviceName":"Samsung Galaxy A14","osVersion":"13.0","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"Galaxy A14","wdioService":"9.24.0"},{"browserName":"Safari","deviceName":"iPad 10th","osVersion":"16","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"iPad 10th","wdioService":"9.24.0"},{"browserName":"Chrome","os":"Windows","osVersion":"11","browserVersion":"latest","projectName":"КодЭкспресс","buildName":"Cross-device layout tests","sessionName":"Windows Chrome","wdioService":"9.24.0"}],"isNonBstackA11yWDIO":false,"accessibility":null,"testObservability":true,"testContextOptions":{"skipSessionName":false,"skipSessionStatus":false,"sessionNameOmitTestTitle":false,"sessionNamePrependTopLevelSuiteTitle":false,"sessionNameFormat":""},"buildTag":[]} 2026-03-11T09:26:20.971Z CLI info Should start debug utility: undefined 2026-03-11T09:26:20.972Z CLI info [testhub:module] [nikitafeshchun_QLqgEn] [047748a2-1ea7-4553-b09a-3e6d519ca137] Starting testhub from 56908:0 2026-03-11T09:26:20.973Z CLI info [nikitafeshchun_QLqgEn] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://sdk.browserstack.com 2026-03-11T09:26:20.973Z CLI info [nikitafeshchun_QLqgEn] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making GET request to https://hub.browserstack.com 2026-03-11T09:26:21.333Z CLI info [nikitafeshchun_QLqgEn] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making GET request to https://hub-euw.browserstack.com 2026-03-11T09:26:21.333Z CLI info [nikitafeshchun_QLqgEn] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making GET request to https://hub-use.browserstack.com 2026-03-11T09:26:21.334Z CLI info [nikitafeshchun_QLqgEn] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making GET request to https://hub-aps.browserstack.com 2026-03-11T09:26:21.725Z CLI info [testhub:module] [nikitafeshchun_QLqgEn] [047748a2-1ea7-4553-b09a-3e6d519ca137] startBuild: response=n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj 2026-03-11T09:26:21.727Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://api.browserstack.com 2026-03-11T09:26:22.764Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Driver initialized as primary driver: platformIndex=0 2026-03-11T09:26:22.765Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Driver initialized as primary driver: platformIndex=2 2026-03-11T09:26:22.767Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Driver initialized as primary driver: platformIndex=3 2026-03-11T09:26:22.768Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Driver initialized as primary driver: platformIndex=4 2026-03-11T09:26:22.768Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Driver initialized as primary driver: platformIndex=1 2026-03-11T09:26:31.354Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Driver initialized as primary driver: platformIndex=5 2026-03-11T09:26:44.078Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'b0f3785b-569b-4e21-94ad-4e978ae0f6ac', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:44.079Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b0f3785b-569b-4e21-94ad-4e978ae0f6ac', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:44.068Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:44.118Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'ddedbdaf-adb4-4835-ab03-43413e45f1b6', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:44.119Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ddedbdaf-adb4-4835-ab03-43413e45f1b6', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:44.113Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:44.206Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"b0f3785b-569b-4e21-94ad-4e978ae0f6ac","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:44.068Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:44.202Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:44.208Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b0f3785b-569b-4e21-94ad-4e978ae0f6ac', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 134, started_at: '2026-03-11T09:26:44.068Z', finished_at: '2026-03-11T09:26:44.202Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:44.281Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"ddedbdaf-adb4-4835-ab03-43413e45f1b6","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:44.113Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:44.276Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:44.283Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ddedbdaf-adb4-4835-ab03-43413e45f1b6', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 163, started_at: '2026-03-11T09:26:44.113Z', finished_at: '2026-03-11T09:26:44.276Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:45.738Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: 'b0f3785b-569b-4e21-94ad-4e978ae0f6ac', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b0f3785b-569b-4e21-94ad-4e978ae0f6ac', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:44.068Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'ddedbdaf-adb4-4835-ab03-43413e45f1b6', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ddedbdaf-adb4-4835-ab03-43413e45f1b6', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:44.113Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b0f3785b-569b-4e21-94ad-4e978ae0f6ac', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 134, started_at: '2026-03-11T09:26:44.068Z', finished_at: '2026-03-11T09:26:44.202Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'ddedbdaf-adb4-4835-ab03-43413e45f1b6', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 163, started_at: '2026-03-11T09:26:44.113Z', finished_at: '2026-03-11T09:26:44.276Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:26:45.739Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:46.002Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '80998f82-f4cb-4a48-ab5b-87fcc239138a', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:46.003Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '80998f82-f4cb-4a48-ab5b-87fcc239138a', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:45.990Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:46.121Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '7fb1a345-d54a-4135-ba2b-7247eb0dbd5f', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:46.123Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7fb1a345-d54a-4135-ba2b-7247eb0dbd5f', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:46.109Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:46.595Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'b0e188eb-7f23-41c6-9c25-4b623bb6fd75', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:46.596Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b0e188eb-7f23-41c6-9c25-4b623bb6fd75', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:46.589Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:46.681Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"80998f82-f4cb-4a48-ab5b-87fcc239138a","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:45.990Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:46.678Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:46.682Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '80998f82-f4cb-4a48-ab5b-87fcc239138a', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 688, started_at: '2026-03-11T09:26:45.990Z', finished_at: '2026-03-11T09:26:46.678Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:46.736Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"7fb1a345-d54a-4135-ba2b-7247eb0dbd5f","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:46.109Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:46.730Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:46.738Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7fb1a345-d54a-4135-ba2b-7247eb0dbd5f', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 621, started_at: '2026-03-11T09:26:46.109Z', finished_at: '2026-03-11T09:26:46.730Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:46.741Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"b0e188eb-7f23-41c6-9c25-4b623bb6fd75","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:46.589Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:46.736Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:46.742Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b0e188eb-7f23-41c6-9c25-4b623bb6fd75', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 147, started_at: '2026-03-11T09:26:46.589Z', finished_at: '2026-03-11T09:26:46.736Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:47.742Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '80998f82-f4cb-4a48-ab5b-87fcc239138a', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '80998f82-f4cb-4a48-ab5b-87fcc239138a', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:45.990Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '7fb1a345-d54a-4135-ba2b-7247eb0dbd5f', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7fb1a345-d54a-4135-ba2b-7247eb0dbd5f', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:46.109Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'b0e188eb-7f23-41c6-9c25-4b623bb6fd75', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b0e188eb-7f23-41c6-9c25-4b623bb6fd75', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:46.589Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '80998f82-f4cb-4a48-ab5b-87fcc239138a', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 688, started_at: '2026-03-11T09:26:45.990Z', finished_at: '2026-03-11T09:26:46.678Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7fb1a345-d54a-4135-ba2b-7247eb0dbd5f', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 621, started_at: '2026-03-11T09:26:46.109Z', finished_at: '2026-03-11T09:26:46.730Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b0e188eb-7f23-41c6-9c25-4b623bb6fd75', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 147, started_at: '2026-03-11T09:26:46.589Z', finished_at: '2026-03-11T09:26:46.736Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:26:47.744Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:48.509Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '7301a20e-d58d-47ee-9df5-fd9e37330836', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:48.510Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7301a20e-d58d-47ee-9df5-fd9e37330836', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:48.501Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:48.555Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '5083c43e-b576-49e1-841c-b43235d7f3de', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:48.556Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5083c43e-b576-49e1-841c-b43235d7f3de', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:48.545Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:48.563Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'f33f8e46-b379-4097-a11d-411fd2d85af5', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:48.564Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f33f8e46-b379-4097-a11d-411fd2d85af5', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:48.559Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:49.155Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"5083c43e-b576-49e1-841c-b43235d7f3de","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:48.545Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:49.151Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:49.156Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5083c43e-b576-49e1-841c-b43235d7f3de', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 606, started_at: '2026-03-11T09:26:48.545Z', finished_at: '2026-03-11T09:26:49.151Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:49.177Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"7301a20e-d58d-47ee-9df5-fd9e37330836","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:48.501Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:49.173Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:49.177Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7301a20e-d58d-47ee-9df5-fd9e37330836', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 672, started_at: '2026-03-11T09:26:48.501Z', finished_at: '2026-03-11T09:26:49.173Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:49.231Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"f33f8e46-b379-4097-a11d-411fd2d85af5","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:48.559Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:49.226Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:49.232Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f33f8e46-b379-4097-a11d-411fd2d85af5', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 667, started_at: '2026-03-11T09:26:48.559Z', finished_at: '2026-03-11T09:26:49.226Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:49.741Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '7301a20e-d58d-47ee-9df5-fd9e37330836', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7301a20e-d58d-47ee-9df5-fd9e37330836', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:48.501Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '5083c43e-b576-49e1-841c-b43235d7f3de', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5083c43e-b576-49e1-841c-b43235d7f3de', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:48.545Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'f33f8e46-b379-4097-a11d-411fd2d85af5', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f33f8e46-b379-4097-a11d-411fd2d85af5', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:48.559Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5083c43e-b576-49e1-841c-b43235d7f3de', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 606, started_at: '2026-03-11T09:26:48.545Z', finished_at: '2026-03-11T09:26:49.151Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '7301a20e-d58d-47ee-9df5-fd9e37330836', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 672, started_at: '2026-03-11T09:26:48.501Z', finished_at: '2026-03-11T09:26:49.173Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f33f8e46-b379-4097-a11d-411fd2d85af5', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 667, started_at: '2026-03-11T09:26:48.559Z', finished_at: '2026-03-11T09:26:49.226Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:26:49.742Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:50.967Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '32fd6771-7455-4631-9ffe-4096b81f8a8b', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:50.969Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '32fd6771-7455-4631-9ffe-4096b81f8a8b', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:50.955Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:50.980Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '231e1505-855d-43f2-9319-7082f3497367', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:50.980Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '231e1505-855d-43f2-9319-7082f3497367', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:50.976Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:51.079Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '583ced00-6eb2-421f-a65d-4ed2b2f1421f', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:51.080Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '583ced00-6eb2-421f-a65d-4ed2b2f1421f', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:51.070Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:51.624Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"32fd6771-7455-4631-9ffe-4096b81f8a8b","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:50.955Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:51.619Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:51.624Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '32fd6771-7455-4631-9ffe-4096b81f8a8b', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 664, started_at: '2026-03-11T09:26:50.955Z', finished_at: '2026-03-11T09:26:51.619Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:51.634Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"231e1505-855d-43f2-9319-7082f3497367","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:50.976Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:51.630Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:51.635Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '231e1505-855d-43f2-9319-7082f3497367', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 654, started_at: '2026-03-11T09:26:50.976Z', finished_at: '2026-03-11T09:26:51.630Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:51.742Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '32fd6771-7455-4631-9ffe-4096b81f8a8b', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '32fd6771-7455-4631-9ffe-4096b81f8a8b', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:50.955Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '231e1505-855d-43f2-9319-7082f3497367', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '231e1505-855d-43f2-9319-7082f3497367', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:50.976Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '583ced00-6eb2-421f-a65d-4ed2b2f1421f', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '583ced00-6eb2-421f-a65d-4ed2b2f1421f', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:51.070Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '32fd6771-7455-4631-9ffe-4096b81f8a8b', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 664, started_at: '2026-03-11T09:26:50.955Z', finished_at: '2026-03-11T09:26:51.619Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '231e1505-855d-43f2-9319-7082f3497367', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 654, started_at: '2026-03-11T09:26:50.976Z', finished_at: '2026-03-11T09:26:51.630Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:26:51.742Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:51.771Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"583ced00-6eb2-421f-a65d-4ed2b2f1421f","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:51.070Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:51.767Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:51.771Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '583ced00-6eb2-421f-a65d-4ed2b2f1421f', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 697, started_at: '2026-03-11T09:26:51.070Z', finished_at: '2026-03-11T09:26:51.767Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:53.441Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '5cf61c19-7f0f-42b9-8225-0cd0e4eb530e', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:53.442Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5cf61c19-7f0f-42b9-8225-0cd0e4eb530e', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:53.434Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:53.454Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'b76af52a-61bb-4d26-9bbb-39ce5b512633', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:53.455Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b76af52a-61bb-4d26-9bbb-39ce5b512633', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:53.450Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:53.456Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '0820309f-4630-4ee3-90bf-cc5217e1ec04', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:53.456Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '0820309f-4630-4ee3-90bf-cc5217e1ec04', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:53.451Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:53.607Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"0820309f-4630-4ee3-90bf-cc5217e1ec04","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:53.451Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:53.603Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:53.608Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '0820309f-4630-4ee3-90bf-cc5217e1ec04', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 152, started_at: '2026-03-11T09:26:53.451Z', finished_at: '2026-03-11T09:26:53.603Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:53.609Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'f9628960-4054-454a-ab71-d2bbaf90b0e7', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:53.610Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f9628960-4054-454a-ab71-d2bbaf90b0e7', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:53.602Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:53.743Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '583ced00-6eb2-421f-a65d-4ed2b2f1421f', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 697, started_at: '2026-03-11T09:26:51.070Z', finished_at: '2026-03-11T09:26:51.767Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '5cf61c19-7f0f-42b9-8225-0cd0e4eb530e', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5cf61c19-7f0f-42b9-8225-0cd0e4eb530e', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:53.434Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'b76af52a-61bb-4d26-9bbb-39ce5b512633', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b76af52a-61bb-4d26-9bbb-39ce5b512633', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:53.450Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '0820309f-4630-4ee3-90bf-cc5217e1ec04', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '0820309f-4630-4ee3-90bf-cc5217e1ec04', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:53.451Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '0820309f-4630-4ee3-90bf-cc5217e1ec04', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 152, started_at: '2026-03-11T09:26:53.451Z', finished_at: '2026-03-11T09:26:53.603Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'f9628960-4054-454a-ab71-d2bbaf90b0e7', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f9628960-4054-454a-ab71-d2bbaf90b0e7', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:53.602Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:26:53.743Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:54.070Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"5cf61c19-7f0f-42b9-8225-0cd0e4eb530e","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:53.434Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:54.064Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:54.071Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5cf61c19-7f0f-42b9-8225-0cd0e4eb530e', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 630, started_at: '2026-03-11T09:26:53.434Z', finished_at: '2026-03-11T09:26:54.064Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:54.192Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"b76af52a-61bb-4d26-9bbb-39ce5b512633","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:53.450Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:54.187Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:54.194Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b76af52a-61bb-4d26-9bbb-39ce5b512633', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 737, started_at: '2026-03-11T09:26:53.450Z', finished_at: '2026-03-11T09:26:54.187Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:54.391Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"f9628960-4054-454a-ab71-d2bbaf90b0e7","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:53.602Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:54.388Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:54.392Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f9628960-4054-454a-ab71-d2bbaf90b0e7', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 786, started_at: '2026-03-11T09:26:53.602Z', finished_at: '2026-03-11T09:26:54.388Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:55.500Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'e04636d5-fd12-4862-9822-2921ae9d0a9f', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:55.501Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e04636d5-fd12-4862-9822-2921ae9d0a9f', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:55.489Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:55.743Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5cf61c19-7f0f-42b9-8225-0cd0e4eb530e', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 630, started_at: '2026-03-11T09:26:53.434Z', finished_at: '2026-03-11T09:26:54.064Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'b76af52a-61bb-4d26-9bbb-39ce5b512633', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 737, started_at: '2026-03-11T09:26:53.450Z', finished_at: '2026-03-11T09:26:54.187Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f9628960-4054-454a-ab71-d2bbaf90b0e7', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 786, started_at: '2026-03-11T09:26:53.602Z', finished_at: '2026-03-11T09:26:54.388Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'e04636d5-fd12-4862-9822-2921ae9d0a9f', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e04636d5-fd12-4862-9822-2921ae9d0a9f', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:55.489Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:26:55.744Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:55.893Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '9d107a09-9e83-4e3f-86bc-ba849b1c8b13', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:55.894Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9d107a09-9e83-4e3f-86bc-ba849b1c8b13', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:55.882Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:56.008Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'd5fb1173-a21c-4e99-98ff-b37e17ad3100', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:56.008Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd5fb1173-a21c-4e99-98ff-b37e17ad3100', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:55.997Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:56.151Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"9d107a09-9e83-4e3f-86bc-ba849b1c8b13","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:55.882Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:56.147Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:56.152Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9d107a09-9e83-4e3f-86bc-ba849b1c8b13', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 265, started_at: '2026-03-11T09:26:55.882Z', finished_at: '2026-03-11T09:26:56.147Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:56.234Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"e04636d5-fd12-4862-9822-2921ae9d0a9f","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:55.489Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:56.230Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:56.235Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e04636d5-fd12-4862-9822-2921ae9d0a9f', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 741, started_at: '2026-03-11T09:26:55.489Z', finished_at: '2026-03-11T09:26:56.230Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:56.340Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"d5fb1173-a21c-4e99-98ff-b37e17ad3100","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:55.997Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:56.336Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:56.341Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd5fb1173-a21c-4e99-98ff-b37e17ad3100', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 339, started_at: '2026-03-11T09:26:55.997Z', finished_at: '2026-03-11T09:26:56.336Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:57.213Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'a99c9000-fd07-4b2f-85a0-411236d1ebce', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:57.214Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'a99c9000-fd07-4b2f-85a0-411236d1ebce', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:57.207Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:57.743Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '9d107a09-9e83-4e3f-86bc-ba849b1c8b13', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9d107a09-9e83-4e3f-86bc-ba849b1c8b13', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:55.882Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'd5fb1173-a21c-4e99-98ff-b37e17ad3100', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd5fb1173-a21c-4e99-98ff-b37e17ad3100', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:55.997Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9d107a09-9e83-4e3f-86bc-ba849b1c8b13', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 265, started_at: '2026-03-11T09:26:55.882Z', finished_at: '2026-03-11T09:26:56.147Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e04636d5-fd12-4862-9822-2921ae9d0a9f', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 741, started_at: '2026-03-11T09:26:55.489Z', finished_at: '2026-03-11T09:26:56.230Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd5fb1173-a21c-4e99-98ff-b37e17ad3100', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 339, started_at: '2026-03-11T09:26:55.997Z', finished_at: '2026-03-11T09:26:56.336Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'a99c9000-fd07-4b2f-85a0-411236d1ebce', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'a99c9000-fd07-4b2f-85a0-411236d1ebce', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:57.207Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:26:57.744Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:26:57.896Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"a99c9000-fd07-4b2f-85a0-411236d1ebce","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:57.207Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:57.893Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:57.897Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'a99c9000-fd07-4b2f-85a0-411236d1ebce', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 686, started_at: '2026-03-11T09:26:57.207Z', finished_at: '2026-03-11T09:26:57.893Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:57.947Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'e6680609-8fb1-403c-9456-03c1d8b6941a', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:57.949Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e6680609-8fb1-403c-9456-03c1d8b6941a', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:57.938Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:58.061Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"e6680609-8fb1-403c-9456-03c1d8b6941a","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:57.938Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:58.058Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:58.062Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e6680609-8fb1-403c-9456-03c1d8b6941a', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 120, started_at: '2026-03-11T09:26:57.938Z', finished_at: '2026-03-11T09:26:58.058Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:58.178Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '82a46fd1-9a5b-4cac-bd9b-83b2d47ec2be', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:58.179Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '82a46fd1-9a5b-4cac-bd9b-83b2d47ec2be', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:58.163Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:58.180Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '8d2e20f4-7684-4334-a6e5-9058353f1101', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:58.181Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8d2e20f4-7684-4334-a6e5-9058353f1101', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:58.169Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:58.313Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"8d2e20f4-7684-4334-a6e5-9058353f1101","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:58.169Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:58.310Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:58.314Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8d2e20f4-7684-4334-a6e5-9058353f1101', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 141, started_at: '2026-03-11T09:26:58.169Z', finished_at: '2026-03-11T09:26:58.310Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:58.953Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"82a46fd1-9a5b-4cac-bd9b-83b2d47ec2be","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:58.163Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:26:58.950Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:26:58.954Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '82a46fd1-9a5b-4cac-bd9b-83b2d47ec2be', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 787, started_at: '2026-03-11T09:26:58.163Z', finished_at: '2026-03-11T09:26:58.950Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:59.729Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'e0141de8-ce25-4b12-971d-18fdc8320b87', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:26:59.730Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e0141de8-ce25-4b12-971d-18fdc8320b87', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:59.725Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:26:59.744Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'a99c9000-fd07-4b2f-85a0-411236d1ebce', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 686, started_at: '2026-03-11T09:26:57.207Z', finished_at: '2026-03-11T09:26:57.893Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'e6680609-8fb1-403c-9456-03c1d8b6941a', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e6680609-8fb1-403c-9456-03c1d8b6941a', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:57.938Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e6680609-8fb1-403c-9456-03c1d8b6941a', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 120, started_at: '2026-03-11T09:26:57.938Z', finished_at: '2026-03-11T09:26:58.058Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '82a46fd1-9a5b-4cac-bd9b-83b2d47ec2be', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '82a46fd1-9a5b-4cac-bd9b-83b2d47ec2be', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:58.163Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '8d2e20f4-7684-4334-a6e5-9058353f1101', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8d2e20f4-7684-4334-a6e5-9058353f1101', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:58.169Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8d2e20f4-7684-4334-a6e5-9058353f1101', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 141, started_at: '2026-03-11T09:26:58.169Z', finished_at: '2026-03-11T09:26:58.310Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '82a46fd1-9a5b-4cac-bd9b-83b2d47ec2be', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 787, started_at: '2026-03-11T09:26:58.163Z', finished_at: '2026-03-11T09:26:58.950Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'e0141de8-ce25-4b12-971d-18fdc8320b87', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e0141de8-ce25-4b12-971d-18fdc8320b87', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:26:59.725Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:26:59.745Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:00.257Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"e0141de8-ce25-4b12-971d-18fdc8320b87","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:26:59.725Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:00.253Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:00.257Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e0141de8-ce25-4b12-971d-18fdc8320b87', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 528, started_at: '2026-03-11T09:26:59.725Z', finished_at: '2026-03-11T09:27:00.253Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:00.790Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'c1d65bc2-3222-4cd6-b59f-95e46562ed93', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:00.792Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'c1d65bc2-3222-4cd6-b59f-95e46562ed93', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:00.780Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:01.490Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"c1d65bc2-3222-4cd6-b59f-95e46562ed93","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:00.780Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:01.487Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:01.491Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'c1d65bc2-3222-4cd6-b59f-95e46562ed93', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 707, started_at: '2026-03-11T09:27:00.780Z', finished_at: '2026-03-11T09:27:01.487Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:01.745Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e0141de8-ce25-4b12-971d-18fdc8320b87', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 528, started_at: '2026-03-11T09:26:59.725Z', finished_at: '2026-03-11T09:27:00.253Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'c1d65bc2-3222-4cd6-b59f-95e46562ed93', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'c1d65bc2-3222-4cd6-b59f-95e46562ed93', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:00.780Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'c1d65bc2-3222-4cd6-b59f-95e46562ed93', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 707, started_at: '2026-03-11T09:27:00.780Z', finished_at: '2026-03-11T09:27:01.487Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:01.746Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:02.056Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '5a9bd40f-fc9c-407d-bb01-97fab0eea1fe', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:02.056Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5a9bd40f-fc9c-407d-bb01-97fab0eea1fe', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:02.053Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:02.182Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"5a9bd40f-fc9c-407d-bb01-97fab0eea1fe","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:02.053Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:02.181Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:02.182Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5a9bd40f-fc9c-407d-bb01-97fab0eea1fe', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 128, started_at: '2026-03-11T09:27:02.053Z', finished_at: '2026-03-11T09:27:02.181Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:02.273Z CLI info [sdk:service] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Driver initialized as primary driver: platformIndex=6 2026-03-11T09:27:02.636Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '75bc3f29-378f-44f3-a72c-8ae3d3d361c6', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:02.637Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '75bc3f29-378f-44f3-a72c-8ae3d3d361c6', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:02.631Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:02.774Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"75bc3f29-378f-44f3-a72c-8ae3d3d361c6","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:02.631Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:02.771Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:02.775Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '75bc3f29-378f-44f3-a72c-8ae3d3d361c6', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 140, started_at: '2026-03-11T09:27:02.631Z', finished_at: '2026-03-11T09:27:02.771Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:03.313Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '6aa49c2c-d458-44ad-996c-faad4c77262c', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:03.314Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '6aa49c2c-d458-44ad-996c-faad4c77262c', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:03.308Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:03.353Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '8575c555-daf1-457d-a0bb-3f67aad60ce0', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:03.354Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8575c555-daf1-457d-a0bb-3f67aad60ce0', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:03.344Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:03.746Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '5a9bd40f-fc9c-407d-bb01-97fab0eea1fe', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5a9bd40f-fc9c-407d-bb01-97fab0eea1fe', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:02.053Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5a9bd40f-fc9c-407d-bb01-97fab0eea1fe', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 128, started_at: '2026-03-11T09:27:02.053Z', finished_at: '2026-03-11T09:27:02.181Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '75bc3f29-378f-44f3-a72c-8ae3d3d361c6', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '75bc3f29-378f-44f3-a72c-8ae3d3d361c6', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:02.631Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '75bc3f29-378f-44f3-a72c-8ae3d3d361c6', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 140, started_at: '2026-03-11T09:27:02.631Z', finished_at: '2026-03-11T09:27:02.771Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '6aa49c2c-d458-44ad-996c-faad4c77262c', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '6aa49c2c-d458-44ad-996c-faad4c77262c', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:03.308Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '8575c555-daf1-457d-a0bb-3f67aad60ce0', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8575c555-daf1-457d-a0bb-3f67aad60ce0', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:03.344Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:03.747Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:04.008Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"6aa49c2c-d458-44ad-996c-faad4c77262c","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:03.308Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:04.005Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:04.009Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '6aa49c2c-d458-44ad-996c-faad4c77262c', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 697, started_at: '2026-03-11T09:27:03.308Z', finished_at: '2026-03-11T09:27:04.005Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:04.197Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"8575c555-daf1-457d-a0bb-3f67aad60ce0","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:03.344Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:04.194Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:04.198Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8575c555-daf1-457d-a0bb-3f67aad60ce0', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 850, started_at: '2026-03-11T09:27:03.344Z', finished_at: '2026-03-11T09:27:04.194Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:04.719Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'a81c9957-972a-4504-9d6d-c7a270e3b6ae', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:04.719Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'a81c9957-972a-4504-9d6d-c7a270e3b6ae', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:04.710Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:05.568Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"a81c9957-972a-4504-9d6d-c7a270e3b6ae","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:04.710Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:05.563Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:05.569Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'a81c9957-972a-4504-9d6d-c7a270e3b6ae', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 853, started_at: '2026-03-11T09:27:04.710Z', finished_at: '2026-03-11T09:27:05.563Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:05.747Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '6aa49c2c-d458-44ad-996c-faad4c77262c', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 697, started_at: '2026-03-11T09:27:03.308Z', finished_at: '2026-03-11T09:27:04.005Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '8575c555-daf1-457d-a0bb-3f67aad60ce0', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 850, started_at: '2026-03-11T09:27:03.344Z', finished_at: '2026-03-11T09:27:04.194Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'a81c9957-972a-4504-9d6d-c7a270e3b6ae', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'a81c9957-972a-4504-9d6d-c7a270e3b6ae', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:04.710Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'a81c9957-972a-4504-9d6d-c7a270e3b6ae', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 853, started_at: '2026-03-11T09:27:04.710Z', finished_at: '2026-03-11T09:27:05.563Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:05.749Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:05.859Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '383aa7a1-1df7-4c4e-84ad-e76bdc444415', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:05.860Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '383aa7a1-1df7-4c4e-84ad-e76bdc444415', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:05.852Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:06.114Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'bcb61a8d-bbec-4126-bfcd-3b71bbefcedd', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:06.114Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bcb61a8d-bbec-4126-bfcd-3b71bbefcedd', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:06.108Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:06.231Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"383aa7a1-1df7-4c4e-84ad-e76bdc444415","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:05.852Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:06.227Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:06.232Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '383aa7a1-1df7-4c4e-84ad-e76bdc444415', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 375, started_at: '2026-03-11T09:27:05.852Z', finished_at: '2026-03-11T09:27:06.227Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:06.995Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"bcb61a8d-bbec-4126-bfcd-3b71bbefcedd","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:06.108Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:06.993Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:06.996Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bcb61a8d-bbec-4126-bfcd-3b71bbefcedd', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 885, started_at: '2026-03-11T09:27:06.108Z', finished_at: '2026-03-11T09:27:06.993Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:07.473Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'bbc73935-19f5-412e-9dd3-b7cd40da6181', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:07.473Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bbc73935-19f5-412e-9dd3-b7cd40da6181', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:07.463Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:07.747Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '383aa7a1-1df7-4c4e-84ad-e76bdc444415', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '383aa7a1-1df7-4c4e-84ad-e76bdc444415', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:05.852Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'bcb61a8d-bbec-4126-bfcd-3b71bbefcedd', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bcb61a8d-bbec-4126-bfcd-3b71bbefcedd', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:06.108Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '383aa7a1-1df7-4c4e-84ad-e76bdc444415', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 375, started_at: '2026-03-11T09:27:05.852Z', finished_at: '2026-03-11T09:27:06.227Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bcb61a8d-bbec-4126-bfcd-3b71bbefcedd', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 885, started_at: '2026-03-11T09:27:06.108Z', finished_at: '2026-03-11T09:27:06.993Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'bbc73935-19f5-412e-9dd3-b7cd40da6181', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bbc73935-19f5-412e-9dd3-b7cd40da6181', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:07.463Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:07.748Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:08.126Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '125dffe2-7391-4c19-8bea-1503bfad7a0f', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:08.127Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '125dffe2-7391-4c19-8bea-1503bfad7a0f', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:08.119Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:08.260Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"125dffe2-7391-4c19-8bea-1503bfad7a0f","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:08.119Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:08.257Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:08.261Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '125dffe2-7391-4c19-8bea-1503bfad7a0f', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 138, started_at: '2026-03-11T09:27:08.119Z', finished_at: '2026-03-11T09:27:08.257Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:08.358Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"bbc73935-19f5-412e-9dd3-b7cd40da6181","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:07.463Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:08.354Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:08.358Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bbc73935-19f5-412e-9dd3-b7cd40da6181', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 891, started_at: '2026-03-11T09:27:07.463Z', finished_at: '2026-03-11T09:27:08.354Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:08.957Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '5fa4f7ea-b1da-4044-96d3-b7b8f7c574c0', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:08.958Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5fa4f7ea-b1da-4044-96d3-b7b8f7c574c0', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:08.952Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:09.302Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"5fa4f7ea-b1da-4044-96d3-b7b8f7c574c0","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:08.952Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:09.299Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:09.303Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5fa4f7ea-b1da-4044-96d3-b7b8f7c574c0', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 347, started_at: '2026-03-11T09:27:08.952Z', finished_at: '2026-03-11T09:27:09.299Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:09.748Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '125dffe2-7391-4c19-8bea-1503bfad7a0f', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '125dffe2-7391-4c19-8bea-1503bfad7a0f', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:08.119Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '125dffe2-7391-4c19-8bea-1503bfad7a0f', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 138, started_at: '2026-03-11T09:27:08.119Z', finished_at: '2026-03-11T09:27:08.257Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'bbc73935-19f5-412e-9dd3-b7cd40da6181', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 891, started_at: '2026-03-11T09:27:07.463Z', finished_at: '2026-03-11T09:27:08.354Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '5fa4f7ea-b1da-4044-96d3-b7b8f7c574c0', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5fa4f7ea-b1da-4044-96d3-b7b8f7c574c0', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:08.952Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '5fa4f7ea-b1da-4044-96d3-b7b8f7c574c0', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 347, started_at: '2026-03-11T09:27:08.952Z', finished_at: '2026-03-11T09:27:09.299Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:09.749Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:09.819Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '70f715e9-db62-45e0-b4ae-1360583a850d', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:09.820Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '70f715e9-db62-45e0-b4ae-1360583a850d', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:09.812Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:09.958Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"70f715e9-db62-45e0-b4ae-1360583a850d","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:09.812Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:09.956Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:09.959Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '70f715e9-db62-45e0-b4ae-1360583a850d', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 144, started_at: '2026-03-11T09:27:09.812Z', finished_at: '2026-03-11T09:27:09.956Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:11.748Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: '70f715e9-db62-45e0-b4ae-1360583a850d', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '70f715e9-db62-45e0-b4ae-1360583a850d', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:09.812Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '70f715e9-db62-45e0-b4ae-1360583a850d', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 144, started_at: '2026-03-11T09:27:09.812Z', finished_at: '2026-03-11T09:27:09.956Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:11.749Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:13.658Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'e43717d0-84e5-417f-92f8-a8a294be91f1', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:13.658Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e43717d0-84e5-417f-92f8-a8a294be91f1', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:13.652Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:13.749Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: 'e43717d0-84e5-417f-92f8-a8a294be91f1', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e43717d0-84e5-417f-92f8-a8a294be91f1', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:13.652Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:13.750Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:13.804Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"e43717d0-84e5-417f-92f8-a8a294be91f1","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - page has no horizontal overflow","test_name":"page has no horizontal overflow","test_code":"async () => {\n const result = await browser.execute(() => {\n return {\n scrollWidth: document.documentElement.scrollWidth,\n clientWidth: document.documentElement.clientWidth,\n };\n });\n assert.ok(\n result.scrollWidth <= result.clientWidth + 1,\n `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - page has no horizontal overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:13.652Z","automate_session_name":"Homepage layout — cross-device - page has no horizontal overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:13.800Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:13.805Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e43717d0-84e5-417f-92f8-a8a294be91f1', name: 'page has no horizontal overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + ' return {\n' + ' scrollWidth: document.documentElement.scrollWidth,\n' + ' clientWidth: document.documentElement.clientWidth,\n' + ' };\n' + ' });\n' + ' assert.ok(\n' + ' result.scrollWidth <= result.clientWidth + 1,\n' + ' `Horizontal overflow detected: scrollWidth=${result.scrollWidth}, clientWidth=${result.clientWidth}`\n' + ' );\n' + ' }' }, identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 148, started_at: '2026-03-11T09:27:13.652Z', finished_at: '2026-03-11T09:27:13.800Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:14.710Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'f18c22bc-30a4-496f-acec-d4bb1f17d8e3', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:14.711Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f18c22bc-30a4-496f-acec-d4bb1f17d8e3', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:14.700Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:15.402Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"f18c22bc-30a4-496f-acec-d4bb1f17d8e3","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - hero heading fits within its container","test_name":"hero heading fits within its container","test_code":"async () => {\n const h1 = await $('h1');\n await h1.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n return {\n h1Right: rect.right,\n parentRight: parentRect.right,\n h1Left: rect.left,\n parentLeft: parentRect.left,\n };\n }, h1);\n\n assert.ok(\n result.h1Right <= result.parentRight + 1,\n `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n );\n assert.ok(\n result.h1Left >= result.parentLeft - 1,\n `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - hero heading fits within its container","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:14.700Z","automate_session_name":"Homepage layout — cross-device - hero heading fits within its container","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:15.400Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:15.402Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f18c22bc-30a4-496f-acec-d4bb1f17d8e3', name: 'hero heading fits within its container', body: { lang: 'ecmascript', code: 'async () => {\n' + " const h1 = await $('h1');\n" + ' await h1.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' return {\n' + ' h1Right: rect.right,\n' + ' parentRight: parentRect.right,\n' + ' h1Left: rect.left,\n' + ' parentLeft: parentRect.left,\n' + ' };\n' + ' }, h1);\n' + '\n' + ' assert.ok(\n' + ' result.h1Right <= result.parentRight + 1,\n' + ' `Heading overflows right: h1.right=${result.h1Right}, card.right=${result.parentRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.h1Left >= result.parentLeft - 1,\n' + ' `Heading overflows left: h1.left=${result.h1Left}, card.left=${result.parentLeft}`\n' + ' );\n' + ' }' }, identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 700, started_at: '2026-03-11T09:27:14.700Z', finished_at: '2026-03-11T09:27:15.400Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:15.750Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'e43717d0-84e5-417f-92f8-a8a294be91f1', name: 'page has no horizontal overflow', body: [Object], identifier: 'page has no horizontal overflow', scope: 'Homepage layout — cross-device - page has no horizontal overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 148, started_at: '2026-03-11T09:27:13.652Z', finished_at: '2026-03-11T09:27:13.800Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'f18c22bc-30a4-496f-acec-d4bb1f17d8e3', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f18c22bc-30a4-496f-acec-d4bb1f17d8e3', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:14.700Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'f18c22bc-30a4-496f-acec-d4bb1f17d8e3', name: 'hero heading fits within its container', body: [Object], identifier: 'hero heading fits within its container', scope: 'Homepage layout — cross-device - hero heading fits within its container', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 700, started_at: '2026-03-11T09:27:14.700Z', finished_at: '2026-03-11T09:27:15.400Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:15.751Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:16.103Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'da0b137d-d1f2-409d-b315-f7d240fb5139', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:16.104Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'da0b137d-d1f2-409d-b315-f7d240fb5139', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:16.092Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:16.593Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"da0b137d-d1f2-409d-b315-f7d240fb5139","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_name":"\"масштабируется\" text is not clipped","test_code":"async () => {\n const span = await $('h1 span');\n await span.waitForExist({ timeout: 10000 });\n\n const isClipped = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const parent = el.closest('.bento-card');\n const parentRect = parent.getBoundingClientRect();\n // Check if the text extends beyond the visible card area\n return rect.right > parentRect.right + 2;\n }, span);\n\n assert.ok(!isClipped, '\"масштабируется\" text is clipped / overflows the card');\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:16.092Z","automate_session_name":"Homepage layout — cross-device - \"масштабируется\" text is not clipped","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:16.589Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:16.594Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'da0b137d-d1f2-409d-b315-f7d240fb5139', name: '"масштабируется" text is not clipped', body: { lang: 'ecmascript', code: 'async () => {\n' + " const span = await $('h1 span');\n" + ' await span.waitForExist({ timeout: 10000 });\n' + '\n' + ' const isClipped = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const parent = el.closest('.bento-card');\n" + ' const parentRect = parent.getBoundingClientRect();\n' + ' // Check if the text extends beyond the visible card area\n' + ' return rect.right > parentRect.right + 2;\n' + ' }, span);\n' + '\n' + ` assert.ok(!isClipped, '"масштабируется" text is clipped / overflows the card');\n` + ' }' }, identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 497, started_at: '2026-03-11T09:27:16.092Z', finished_at: '2026-03-11T09:27:16.589Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:17.212Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: '9c88f0d4-de01-483d-ac93-0091688e296c', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:17.213Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9c88f0d4-de01-483d-ac93-0091688e296c', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:17.203Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:17.725Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"9c88f0d4-de01-483d-ac93-0091688e296c","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_name":"\"Инженерный подход\" label is fully visible","test_code":"async () => {\n const label = await $('p=Инженерный подход');\n await label.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n const card = el.closest('.bento-card');\n const cardRect = card.getBoundingClientRect();\n return {\n labelLeft: rect.left,\n cardLeft: cardRect.left,\n labelRight: rect.right,\n cardRight: cardRect.right,\n labelBottom: rect.bottom,\n cardBottom: cardRect.bottom,\n };\n }, label);\n\n assert.ok(\n result.labelLeft >= result.cardLeft - 1,\n `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n );\n assert.ok(\n result.labelRight <= result.cardRight + 1,\n `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n );\n assert.ok(\n result.labelBottom <= result.cardBottom + 1,\n `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:17.203Z","automate_session_name":"Homepage layout — cross-device - \"Инженерный подход\" label is fully visible","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:17.723Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:17.726Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9c88f0d4-de01-483d-ac93-0091688e296c', name: '"Инженерный подход" label is fully visible', body: { lang: 'ecmascript', code: 'async () => {\n' + " const label = await $('p=Инженерный подход');\n" + ' await label.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + " const card = el.closest('.bento-card');\n" + ' const cardRect = card.getBoundingClientRect();\n' + ' return {\n' + ' labelLeft: rect.left,\n' + ' cardLeft: cardRect.left,\n' + ' labelRight: rect.right,\n' + ' cardRight: cardRect.right,\n' + ' labelBottom: rect.bottom,\n' + ' cardBottom: cardRect.bottom,\n' + ' };\n' + ' }, label);\n' + '\n' + ' assert.ok(\n' + ' result.labelLeft >= result.cardLeft - 1,\n' + ' `Label clipped on left: label.left=${result.labelLeft}, card.left=${result.cardLeft}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelRight <= result.cardRight + 1,\n' + ' `Label clipped on right: label.right=${result.labelRight}, card.right=${result.cardRight}`\n' + ' );\n' + ' assert.ok(\n' + ' result.labelBottom <= result.cardBottom + 1,\n' + ' `Label clipped on bottom: label.bottom=${result.labelBottom}, card.bottom=${result.cardBottom}`\n' + ' );\n' + ' }' }, identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 520, started_at: '2026-03-11T09:27:17.203Z', finished_at: '2026-03-11T09:27:17.723Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:17.752Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: 'da0b137d-d1f2-409d-b315-f7d240fb5139', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'da0b137d-d1f2-409d-b315-f7d240fb5139', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:16.092Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'da0b137d-d1f2-409d-b315-f7d240fb5139', name: '"масштабируется" text is not clipped', body: [Object], identifier: '"масштабируется" text is not clipped', scope: 'Homepage layout — cross-device - "масштабируется" text is not clipped', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 497, started_at: '2026-03-11T09:27:16.092Z', finished_at: '2026-03-11T09:27:16.589Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: '9c88f0d4-de01-483d-ac93-0091688e296c', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9c88f0d4-de01-483d-ac93-0091688e296c', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:17.203Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: '9c88f0d4-de01-483d-ac93-0091688e296c', name: '"Инженерный подход" label is fully visible', body: [Object], identifier: '"Инженерный подход" label is fully visible', scope: 'Homepage layout — cross-device - "Инженерный подход" label is fully visible', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 520, started_at: '2026-03-11T09:27:17.203Z', finished_at: '2026-03-11T09:27:17.723Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:17.752Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:18.333Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'cda586c1-412a-47a7-bd23-67d0e3ccd345', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:18.334Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'cda586c1-412a-47a7-bd23-67d0e3ccd345', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:18.325Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:18.955Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"cda586c1-412a-47a7-bd23-67d0e3ccd345","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - navigation bar is visible and centered","test_name":"navigation bar is visible and centered","test_code":"async () => {\n const nav = await $('nav');\n await nav.waitForExist({ timeout: 10000 });\n\n const result = await browser.execute((el) => {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n right: rect.right,\n viewportWidth: window.innerWidth,\n isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n };\n }, nav);\n\n assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - navigation bar is visible and centered","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:18.325Z","automate_session_name":"Homepage layout — cross-device - navigation bar is visible and centered","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:18.952Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:18.957Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'cda586c1-412a-47a7-bd23-67d0e3ccd345', name: 'navigation bar is visible and centered', body: { lang: 'ecmascript', code: 'async () => {\n' + " const nav = await $('nav');\n" + ' await nav.waitForExist({ timeout: 10000 });\n' + '\n' + ' const result = await browser.execute((el) => {\n' + ' const rect = el.getBoundingClientRect();\n' + ' return {\n' + ' left: rect.left,\n' + ' right: rect.right,\n' + ' viewportWidth: window.innerWidth,\n' + ' isVisible: rect.top >= 0 && rect.left >= 0 && rect.right <= window.innerWidth,\n' + ' };\n' + ' }, nav);\n' + '\n' + ' assert.ok(result.isVisible, `Nav bar extends beyond viewport: left=${result.left}, right=${result.right}, viewport=${result.viewportWidth}`);\n' + ' }' }, identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 627, started_at: '2026-03-11T09:27:18.325Z', finished_at: '2026-03-11T09:27:18.952Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:19.664Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'd5600f63-230c-446e-a9cf-2a2b3032a6cf', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:19.665Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd5600f63-230c-446e-a9cf-2a2b3032a6cf', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:19.658Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:19.751Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'CBTSessionCreated', test_run: { uuid: 'cda586c1-412a-47a7-bd23-67d0e3ccd345', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'cda586c1-412a-47a7-bd23-67d0e3ccd345', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:18.325Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'cda586c1-412a-47a7-bd23-67d0e3ccd345', name: 'navigation bar is visible and centered', body: [Object], identifier: 'navigation bar is visible and centered', scope: 'Homepage layout — cross-device - navigation bar is visible and centered', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 627, started_at: '2026-03-11T09:27:18.325Z', finished_at: '2026-03-11T09:27:18.952Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'd5600f63-230c-446e-a9cf-2a2b3032a6cf', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd5600f63-230c-446e-a9cf-2a2b3032a6cf', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:19.658Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:19.751Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:19.983Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"d5600f63-230c-446e-a9cf-2a2b3032a6cf","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - service tags row does not overflow","test_name":"service tags row does not overflow","test_code":"async () => {\n const tags = await $$('.rounded-full.bg-gray-100');\n assert.ok(tags.length > 0, 'Service tags not found');\n\n const result = await browser.execute(() => {\n const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n const card = tags[0]?.closest('.bento-card');\n if (!card) return { ok: true };\n const cardRect = card.getBoundingClientRect();\n for (const tag of tags) {\n const r = tag.getBoundingClientRect();\n if (r.right > cardRect.right + 2) {\n return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n }\n }\n return { ok: true };\n });\n\n assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - service tags row does not overflow","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:19.658Z","automate_session_name":"Homepage layout — cross-device - service tags row does not overflow","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:19.980Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:19.984Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd5600f63-230c-446e-a9cf-2a2b3032a6cf', name: 'service tags row does not overflow', body: { lang: 'ecmascript', code: 'async () => {\n' + " const tags = await $$('.rounded-full.bg-gray-100');\n" + " assert.ok(tags.length > 0, 'Service tags not found');\n" + '\n' + ' const result = await browser.execute(() => {\n' + " const tags = document.querySelectorAll('.rounded-full.bg-gray-100');\n" + " const card = tags[0]?.closest('.bento-card');\n" + ' if (!card) return { ok: true };\n' + ' const cardRect = card.getBoundingClientRect();\n' + ' for (const tag of tags) {\n' + ' const r = tag.getBoundingClientRect();\n' + ' if (r.right > cardRect.right + 2) {\n' + ' return { ok: false, tagRight: r.right, cardRight: cardRect.right };\n' + ' }\n' + ' }\n' + ' return { ok: true };\n' + ' });\n' + '\n' + ' assert.ok(result.ok, `Tag overflows card: tag.right=${result.tagRight}, card.right=${result.cardRight}`);\n' + ' }' }, identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 322, started_at: '2026-03-11T09:27:19.658Z', finished_at: '2026-03-11T09:27:19.980Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:20.642Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'CBTSessionCreated', test_run: { uuid: 'd0e0f6e8-604a-4949-91ca-d788327c7846', integrations: { browserstack: [Object] } } } to 56908:0 2026-03-11T09:27:20.643Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd0e0f6e8-604a-4949-91ca-d788327c7846', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:20.632Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:20.828Z CLI warn [TEST REPORTING AND ANALYTICS:webdriverio:mocha] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] TestRunFinished: event={"test_framework_name":"WebdriverIO-mocha","test_framework_version":"9.24.0","test_logs":[],"test_hooks_finished":{},"test_hooks_started":{},"test_uuid":"d0e0f6e8-604a-4949-91ca-d788327c7846","test_result":"passed","test_hook_last_started":"TestFrameworkState.TEST","test_id":"Homepage layout — cross-device - all bento cards fit within viewport width","test_name":"all bento cards fit within viewport width","test_code":"async () => {\n const result = await browser.execute(() => {\n const cards = document.querySelectorAll('.bento-card');\n const vw = window.innerWidth;\n const overflows = [];\n cards.forEach((card, i) => {\n const rect = card.getBoundingClientRect();\n if (rect.right > vw + 2 || rect.left < -2) {\n overflows.push({ index: i, left: rect.left, right: rect.right });\n }\n });\n return { vw, overflows };\n });\n\n assert.ok(\n result.overflows.length === 0,\n `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n );\n }","test_file_path":"tests/layout.test.js","test_location":"tests/layout.test.js","test_scope":"Homepage layout — cross-device - all bento cards fit within viewport width","test_scopes":["Homepage layout — cross-device"],"test_started_at":"2026-03-11T09:27:20.632Z","automate_session_name":"Homepage layout — cross-device - all bento cards fit within viewport width","test_failure":null,"test_failure_reason":null,"test_failure_type":null,"test_ended_at":"2026-03-11T09:27:20.825Z","test_hook_last_finished":"TestFrameworkState.TEST","automate_session_status":"passed","test_deferred":true,"logs":[]} 2026-03-11T09:27:20.829Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Added the event { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd0e0f6e8-604a-4949-91ca-d788327c7846', name: 'all bento cards fit within viewport width', body: { lang: 'ecmascript', code: 'async () => {\n' + ' const result = await browser.execute(() => {\n' + " const cards = document.querySelectorAll('.bento-card');\n" + ' const vw = window.innerWidth;\n' + ' const overflows = [];\n' + ' cards.forEach((card, i) => {\n' + ' const rect = card.getBoundingClientRect();\n' + ' if (rect.right > vw + 2 || rect.left < -2) {\n' + ' overflows.push({ index: i, left: rect.left, right: rect.right });\n' + ' }\n' + ' });\n' + ' return { vw, overflows };\n' + ' });\n' + '\n' + ' assert.ok(\n' + ' result.overflows.length === 0,\n' + ' `${result.overflows.length} card(s) overflow viewport (${result.vw}px): ${JSON.stringify(result.overflows)}`\n' + ' );\n' + ' }' }, identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [ 'Homepage layout — cross-device' ], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 193, started_at: '2026-03-11T09:27:20.632Z', finished_at: '2026-03-11T09:27:20.825Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: { rerun_name: undefined }, hooks: [], product_map: { observability: true, accessibility: false, percy: false, automate: true, app_automate: false } }, logs: [] } to 56908:0 2026-03-11T09:27:21.752Z CLI info [testhub:request-queue-handler] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Processing batch event [ { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd5600f63-230c-446e-a9cf-2a2b3032a6cf', name: 'service tags row does not overflow', body: [Object], identifier: 'service tags row does not overflow', scope: 'Homepage layout — cross-device - service tags row does not overflow', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 322, started_at: '2026-03-11T09:27:19.658Z', finished_at: '2026-03-11T09:27:19.980Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'CBTSessionCreated', test_run: { uuid: 'd0e0f6e8-604a-4949-91ca-d788327c7846', integrations: [Object] } }, { event_type: 'TestRunStarted', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd0e0f6e8-604a-4949-91ca-d788327c7846', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'pending', duration_in_ms: null, started_at: '2026-03-11T09:27:20.632Z', failure: undefined, failure_type: undefined, failure_reason: undefined, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] }, { event_type: 'TestRunFinished', test_run: { type: 'test', framework: 'WebdriverIO-mocha', uuid: 'd0e0f6e8-604a-4949-91ca-d788327c7846', name: 'all bento cards fit within viewport width', body: [Object], identifier: 'all bento cards fit within viewport width', scope: 'Homepage layout — cross-device - all bento cards fit within viewport width', scopes: [Array], file_name: 'tests/layout.test.js', vc_filepath: '', location: 'tests/layout.test.js', result: 'passed', duration_in_ms: 193, started_at: '2026-03-11T09:27:20.632Z', finished_at: '2026-03-11T09:27:20.825Z', failure: null, failure_type: null, failure_reason: null, retry_of: null, custom_metadata: undefined, tags: [], customRerunParam: [Object], hooks: [], product_map: [Object] }, logs: [] } ] to 56908:0 2026-03-11T09:27:21.753Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://collector-observability.browserstack.com 2026-03-11T09:27:24.496Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making GET request to https://api.browserstack.com 2026-03-11T09:27:24.499Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making PUT request to https://collector-observability.browserstack.com 2026-03-11T09:27:25.037Z CLI info [testhub:module] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] stopBuild: n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj request={"finished_at":"2026-03-11T09:27:24.495Z","finished_metadata":[],"custom_metadata":null} response={"data":""} 2026-03-11T09:27:25.037Z CLI info [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] [PRODUCTION] Making POST request to https://api.browserstack.com 2026-03-11T09:27:25.367Z CLI info [TEST REPORTING AND ANALYTICS:module] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Visit https://automation.browserstack.com/builds/n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj to view build report, insights, and many more debugging information all at one place! 2026-03-11T09:27:25.374Z CLI info [main] [nikitafeshchun_QLqgEn] [n32xhvgrxlpxu47ogzaorjk481bucfht0689vkvj] [047748a2-1ea7-4553-b09a-3e6d519ca137] Received graceful signal termination (SIGTERM), performing cleanup