codeceptjs / codeceptjs/CodeceptJS

Since Codecept 3.6.9, our test that looks for a date time doesn't find it (but it's there)

Đang mở
#4,632 17 bình luận 1 reaction 0 người được giao Xem trên GitHub
stale
Ngôn ngữ chính
JavaScript
Star
4.2k
Fork
757
Merge trung bình
2 ngày 9 giờ
Pull request đã merge (30 ngày)
16

Mô tả

Hi, we're seeing this issue and we've tried pinning to older versions - 3.6.7 is OK.

#### What are you trying to achieve?
We have a test that's been passing up until now and does so with 3.6.7.

I can't use 3.6.8 because of Error: Cannot find module 'invisi-data' (I noticed a hotfix around this in the commits).

It started failing today (it could have failed sooner, we only noticed it today).

#### What do you get instead?

The following (I've noticed the UI here says 3.6.2, but when I do an `npm list` I am on 3.6.7, 3.6.8, or 3.6.9 depending on the test I am doing - we want to be on the latest and tried downgrading twice and as part of that verified 3.6.7 is ok).

![image](https://github.com/user-attachments/assets/af85645e-bf34-48f5-a19a-690bee4db82c)

This looks to me like it finds our text and then says it hasn't...

> Provide console output if related. Use `--verbose` mode for more details.

```bash
1) User Logs
It renders a User Log table:
Text "2024-09-05 04:14:32.000" was not found on page after 1 sec.
at Playwright.waitForText (node_modules/codeceptjs/lib/helper/Playwright.js:2854:26)
at async Test. (codecept/user-logs.spec.js:39:3)

2) User Logs
It renders a new User Log table:
Text "2024-09-06 10:14:50.000" was not found on page after 1 sec.
at Playwright.waitForText (node_modules/codeceptjs/lib/helper/Playwright.js:2854:26)
at runNextTicks (node:internal/process/task_queues:60:5)
at process.processTimers (node:internal/timers:509:9)
```

> Provide test source code if related
Sorry - I don't have a minimal reproduce yet - we basically have a simple logging page and we're looking for an event time on it in a row

```js
Scenario('It renders a User Log table', async ({ I }) => {
I.amOnPage('http://localhost:5057/iframe.html?args=&id=demo-logs-page--renders-correctly&viewMode=story')

I.waitForText('Logs', 10)

await sleep(10000)

// Check there is a table
I.seeElement('.IntegrationDataTable')
I.seeNumberOfVisibleElements('.UserLogsPage__Table tbody tr[data-parent-row="true"]', 14)
I.see('14 of 10000')

// Check column headings
I.see('Event time (UTC)')
I.see('Message')
I.see('Transaction ID')
I.see('Flow ID')
I.see('Log level')

// Check first row
let firstRow = locate('.UserLogsPage__Table tbody tr[data-parent-row="true"]').first()
console.log('first', firstRow)

await within(firstRow, () => {
I.waitForText('2024-09-05 04:14:32.000') <---------- see here
})
```

### Details

* CodeceptJS version: 3.6.9
* NodeJS Version: we've tried with Node.js 22.9.0 and 18.20.4
* Operating System: I'm on Mac OSX
* puppeteer || webdriverio || testcafe version (if related)

We are using Playwright 1.49.1

* Configuration file:

```js

exports.config = {
tests: './codecept/*.spec.js',
output: './codecept/screenshots',
retry: 2,
helpers: {
Playwright: {
url: 'http://localhost:9010',
show: false,
browser: 'chromium',
pressKeyDelay: 2,
waitForAction: 5000
}
},
bootstrap: null,
mocha: {},
name: 'ui-logging',
plugins: {
pauseOnFail: {},
retryFailedStep: {
enabled: true
},
tryTo: {
enabled: true
},
screenshotOnFail: {
enabled: true
},
customLocator: {
enabled: true,
attribute: 'data-testid'
}
}
}
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Start with lib/helper/Playwright.js:2854, where the failure is reported, and the calling test at codecept/user-logs.spec.js:39. Reproduce the regression with Playwright 1.49.1 across CodeceptJS 3.6.7 and 3.6.9, then inspect the waitForText behavior and add a regression test if the cause can be isolated. Done means the visible timestamp is found without weakening unrelated text checks.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
javascript, node.js, playwright
Lĩnh vực
testing-qa
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
38/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.