Skip to content

fix(datetime): use ResizeObserver to reliably detect visibility changes #17756

fix(datetime): use ResizeObserver to reliably detect visibility changes

fix(datetime): use ResizeObserver to reliably detect visibility changes #17756

Triggered via pull request December 12, 2025 16:21
Status Failure
Total duration 12m 37s
Artifacts 25

build.yml

on: pull_request
build-react
43s
build-react
build-vue
36s
build-vue
Matrix: test-core-screenshot
build-angular
1m 2s
build-angular
build-angular-server
38s
build-angular-server
test-core-clean-build
11s
test-core-clean-build
test-core-lint
47s
test-core-lint
test-core-spec
46s
test-core-spec
build-react-router
23s
build-react-router
build-vue-router
36s
build-vue-router
verify-screenshots
3s
verify-screenshots
Matrix: test-angular-e2e
Matrix: test-react-e2e
Matrix: test-react-router-e2e
Matrix: test-vue-e2e
verify-test-angular-e2e
3s
verify-test-angular-e2e
verify-test-react-e2e
2s
verify-test-react-e2e
verify-test-react-router-e2e
3s
verify-test-react-router-e2e
verify-test-vue-e2e
3s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

19 errors and 18 notices
[Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load: src/components/router/test/guards/router.e2e.ts#L9
1) [Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(received).toContain(expected) // indexOf Expected substring: "#/child/1" Received string: "http://localhost:3333/src/components/router/test/guards#/guard-initial-page?ionic:_testing=true&ionic:mode=ios&rtl=undefined&palette=light" 7 | await page.goto(`/src/components/router/test/guards#/guard-initial-page`, config); 8 | > 9 | expect(page.url()).toContain('#/child/1'); | ^ 10 | }); 11 | }); 12 | }); at /ionic/src/components/router/test/guards/router.e2e.ts:9:26
[Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load: src/components/router/test/guards/router.e2e.ts#L9
1) [Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load Error: expect(received).toContain(expected) // indexOf Expected substring: "#/child/1" Received string: "http://localhost:3333/src/components/router/test/guards#/guard-initial-page?ionic:_testing=true&ionic:mode=ios&rtl=undefined&palette=light" 7 | await page.goto(`/src/components/router/test/guards#/guard-initial-page`, config); 8 | > 9 | expect(page.url()).toContain('#/child/1'); | ^ 10 | }); 11 | }); 12 | }); at /ionic/src/components/router/test/guards/router.e2e.ts:9:26
[Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/rtl › should position the time picker relative to the click target: src/components/datetime/test/position/datetime.e2e.ts#L14
2) [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/rtl › should position the time picker relative to the click target Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.waitFor: Test timeout of 30000ms exceeded. Call log: - waiting for locator('.datetime-ready') to be visible 12 | 13 | await ionPopoverDidPresent.next(); > 14 | await page.locator('.datetime-ready').waitFor(); | ^ 15 | 16 | await expect(page).toHaveScreenshot(screenshot(`datetime-position-base`)); 17 | at /ionic/src/components/datetime/test/position/datetime.e2e.ts:14:45
[Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/rtl › should position the time picker relative to the click target: src/components/datetime/test/position/datetime.e2e.ts#L0
2) [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/rtl › should position the time picker relative to the click target Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded.
[Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/rtl › should position the time picker relative to the click target: src/components/datetime/test/position/datetime.e2e.ts#L14
2) [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/rtl › should position the time picker relative to the click target Error: locator.waitFor: Test timeout of 30000ms exceeded. Call log: - waiting for locator('.datetime-ready') to be visible 12 | 13 | await ionPopoverDidPresent.next(); > 14 | await page.locator('.datetime-ready').waitFor(); | ^ 15 | 16 | await expect(page).toHaveScreenshot(screenshot(`datetime-position-base`)); 17 | at /ionic/src/components/datetime/test/position/datetime.e2e.ts:14:45
[Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/rtl › should position the time picker relative to the click target: src/components/datetime/test/position/datetime.e2e.ts#L0
2) [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/rtl › should position the time picker relative to the click target Test timeout of 30000ms exceeded.
[Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target: src/components/datetime/test/position/datetime.e2e.ts#L14
1) [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.waitFor: Test timeout of 30000ms exceeded. Call log: - waiting for locator('.datetime-ready') to be visible 12 | 13 | await ionPopoverDidPresent.next(); > 14 | await page.locator('.datetime-ready').waitFor(); | ^ 15 | 16 | await expect(page).toHaveScreenshot(screenshot(`datetime-position-base`)); 17 | at /ionic/src/components/datetime/test/position/datetime.e2e.ts:14:45
[Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target: src/components/datetime/test/position/datetime.e2e.ts#L0
1) [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded.
[Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target: src/components/datetime/test/position/datetime.e2e.ts#L14
1) [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: locator.waitFor: Test timeout of 30000ms exceeded. Call log: - waiting for locator('.datetime-ready') to be visible 12 | 13 | await ionPopoverDidPresent.next(); > 14 | await page.locator('.datetime-ready').waitFor(); | ^ 15 | 16 | await expect(page).toHaveScreenshot(screenshot(`datetime-position-base`)); 17 | at /ionic/src/components/datetime/test/position/datetime.e2e.ts:14:45
[Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target: src/components/datetime/test/position/datetime.e2e.ts#L0
1) [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Test timeout of 30000ms exceeded.
[Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target: src/components/datetime/test/position/datetime.e2e.ts#L14
1) [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target Error: locator.waitFor: Test timeout of 30000ms exceeded. Call log: - waiting for locator('.datetime-ready') to be visible 12 | 13 | await ionPopoverDidPresent.next(); > 14 | await page.locator('.datetime-ready').waitFor(); | ^ 15 | 16 | await expect(page).toHaveScreenshot(screenshot(`datetime-position-base`)); 17 | at /ionic/src/components/datetime/test/position/datetime.e2e.ts:14:45
[Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target: src/components/datetime/test/position/datetime.e2e.ts#L0
1) [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target Test timeout of 30000ms exceeded.
test-core-screenshot (16, 20)
The strategy configuration was canceled because "test-core-screenshot._15_20" failed
test-core-screenshot (16, 20)
Process completed with exit code 12.
test-core-screenshot (16, 20)
The operation was canceled.
test-core-screenshot (2, 20)
The strategy configuration was canceled because "test-core-screenshot._15_20" failed
test-core-screenshot (2, 20)
Process completed with exit code 12.
test-core-screenshot (2, 20)
The operation was canceled.
verify-screenshots
Process completed with exit code 1.
🎭 Playwright Run Summary
216 skipped 259 passed (2.3m)
🎭 Playwright Run Summary
535 passed (3.1m)
🎭 Playwright Run Summary
4 skipped 511 passed (3.2m)
🎭 Playwright Run Summary
1 skipped 534 passed (3.3m)
🎭 Playwright Run Summary
1 skipped 537 passed (3.3m)
🎭 Playwright Run Summary
212 skipped 313 passed (3.6m)
🎭 Playwright Run Summary
4 skipped 515 passed (3.6m)
🎭 Playwright Run Summary
648 passed (4.4m)
🎭 Playwright Run Summary
10 skipped 503 passed (4.7m)
🎭 Playwright Run Summary
14 skipped 401 passed (5.2m)
🎭 Playwright Run Summary
4 skipped 537 passed (6.7m)
🎭 Playwright Run Summary
1 flaky [Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load 10 skipped 528 passed (6.6m)
🎭 Playwright Run Summary
1 skipped 538 passed (6.6m)
🎭 Playwright Run Summary
1 skipped 528 passed (6.8m)
🎭 Playwright Run Summary
5 skipped 573 passed (6.9m)
🎭 Playwright Run Summary
5 skipped 518 passed (7.0m)
🎭 Playwright Run Summary
14 skipped 498 passed (7.1m)
🎭 Playwright Run Summary
2 failed [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/ltr › should position the time picker relative to the click target [Mobile Safari] › src/components/datetime/test/position/datetime.e2e.ts:6:9 › datetime: position - md/rtl › should position the time picker relative to the click target 2 skipped 515 passed (10.0m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular
667 KB
sha256:65cfc5c299b14282ef2ce1c2563654ac1b309896c456a6068498366d9c102151
ionic-angular-server
8.55 KB
sha256:6bbbb0f585425e1944d05443e6c0c3b251768503154f0d71582eda63d4ee71f7
ionic-core
4.58 MB
sha256:8f6f1820b59f66300e66edef72dd6a808a62f41d96a92934f93c7beb3e97e8b8
ionic-react
211 KB
sha256:fdda97ee40553045725320b3cb7734ffd5b384dd130d6b2d6d133dc883e9c3cc
ionic-react-router
27.9 KB
sha256:5b5979bbe63f9d743e1aadaf7f8d3a44034efad83140d9ecd96483cbe94763e0
ionic-vue
233 KB
sha256:d84e2e6590c68964962c2cd25c5996bca372873d2eb3994b3b8a67f0c1f91067
ionic-vue-router
17 KB
sha256:11931b7c8537af4b5fbe61b9b9334d766b51b6bb7a2178de63217d1a8606170d
test-results-1-20
442 KB
sha256:40a47671c6c9c8c8d9a5e10a777fef85f4071a38c7cae59c085b74f356a6f897
test-results-10-20
460 KB
sha256:19f8f51d14066a5341fff8187aa70d022a9fb8f74d485db4167b80c097a1dfae
test-results-11-20
503 KB
sha256:8d28af5825376b327e78df6c4ea7e7a6589523d6c0c612060adcfdba0463184c
test-results-12-20
444 KB
sha256:bf6a6da4f442b10b6add622e3386d40cb405309c25c7b335253572f281e3ff1e
test-results-13-20
450 KB
sha256:f95352bc84d1f904f7ae14cd51defe778825f4ee3df7f4d588b870c841b25fb8
test-results-14-20
407 KB
sha256:7b31f1c63011a082fffdf67e6ee055b43b8fee5a7d74669a580eaab2367457fb
test-results-15-20
3.12 MB
sha256:93cb7da8fabc28dc78bc9b42e307776eaaf311cbf7412dc13114fe2d4ea446cc
test-results-17-20
530 KB
sha256:64724544010d4ff27a7477733a466f5105be7266731dd9e082727c8ff65f93e1
test-results-18-20
1.62 MB
sha256:fefbd24c47dab30b72beb0b3f30c71555275ef73305ce7db1d1c0a305b3a3400
test-results-19-20
396 KB
sha256:d44c2733a74e0da2a50a268f13b44ecbbebc84b4b33da7cb637ca6ba75046ef4
test-results-20-20
360 KB
sha256:96fcf195d33c15d6204ddbf0f19d2d06446bef46544db1c03016a91fed3a0b91
test-results-3-20
432 KB
sha256:227401dc63d9fe0c9172ff4f7cbc763aa25d7dc4edc0d36b2232a64e81c74d3d
test-results-4-20
522 KB
sha256:288d2dd9d977b5efbd374c22f231d5903137fbb5efff74b0cc6d6949c6688847
test-results-5-20
456 KB
sha256:74a717c18f6aef6570647cbfae4354242ab82512f28def9ca23aa34a889af1b5
test-results-6-20
446 KB
sha256:13c58cb7cfa346f144893bf6b41fce41818bbef01bd5b81ba81d6f2ab96d35d9
test-results-7-20
353 KB
sha256:76bf7c1414e465507111856c6630bda088c2297580e1c7575ad585f391996aa9
test-results-8-20
429 KB
sha256:82487cf25d8fdb59d6d9820670224327a6e99922ba2ea82a886deb3b6c371d86
test-results-9-20
436 KB
sha256:e7f4b55866fc1635dfef3655d498d7f0a101f34c0d24a5d86ff7097aaac68420