Skip to content

fix(tabs): respect stencil lifecycle order for tab selection #17151

fix(tabs): respect stencil lifecycle order for tab selection

fix(tabs): respect stencil lifecycle order for tab selection #17151

Triggered via pull request October 1, 2025 18:52
@ShaneKShaneK
synchronize #30702
FW-6775
Status Success
Total duration 10m 17s
Artifacts 27

build.yml

on: pull_request
build-react
41s
build-react
build-vue
40s
build-vue
Matrix: test-core-screenshot
build-angular
53s
build-angular
build-angular-server
38s
build-angular-server
test-core-clean-build
13s
test-core-clean-build
test-core-lint
1m 19s
test-core-lint
test-core-spec
46s
test-core-spec
build-react-router
33s
build-react-router
build-vue-router
43s
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
2s
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
2s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

5 errors and 20 notices
[Mobile Chrome] › src/components/segment/test/segment-events.e2e.ts:10:11 › segment: events: ionChange - ios/ltr › when the segment is activated by keyboard navigation › should emit when there is no initial value: src/components/segment/test/segment-events.e2e.ts#L37
1) [Mobile Chrome] › src/components/segment/test/segment-events.e2e.ts:10:11 › segment: events: ionChange - ios/ltr › when the segment is activated by keyboard navigation › should emit when there is no initial value Error: expect(received).toBe(expected) // Object.is equality Expected: "2" Received: undefined 35 | await page.keyboard.press('Enter'); 36 | > 37 | expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('2'); | ^ 38 | 39 | expect(ionChangeSpy).toHaveReceivedEventTimes(1); 40 | expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '2' }); at /ionic/src/components/segment/test/segment-events.e2e.ts:37:81
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group: src/components/radio/test/a11y/radio.e2e.ts#L134
3) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 132 | 133 | await pageUtils.pressKeys('Tab'); > 134 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 135 | 136 | await page.keyboard.press('ArrowDown'); 137 | await expect(firstGroupRadios.nth(1)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:134:47
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group: src/components/radio/test/a11y/radio.e2e.ts#L134
3) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 132 | 133 | await pageUtils.pressKeys('Tab'); > 134 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 135 | 136 | await page.keyboard.press('ArrowDown'); 137 | await expect(firstGroupRadios.nth(1)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:134:47
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › tabbing should switch between radio groups: src/components/radio/test/a11y/radio.e2e.ts#L122
2) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › tabbing should switch between radio groups Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 120 | 121 | await pageUtils.pressKeys('Tab'); > 122 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 123 | 124 | await pageUtils.pressKeys('Tab'); 125 | await expect(secondGroupRadios.nth(0)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:122:47
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › using arrow keys should move between enabled radios within group: src/components/radio/test/a11y/radio.e2e.ts#L134
1) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › using arrow keys should move between enabled radios within group Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 132 | 133 | await pageUtils.pressKeys('Tab'); > 134 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 135 | 136 | await page.keyboard.press('ArrowDown'); 137 | await expect(firstGroupRadios.nth(1)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:134:47
🎭 Playwright Run Summary
216 skipped 257 passed (2.3m)
🎭 Playwright Run Summary
407 passed (2.6m)
🎭 Playwright Run Summary
1 flaky [Mobile Chrome] › src/components/segment/test/segment-events.e2e.ts:10:11 › segment: events: ionChange - ios/ltr › when the segment is activated by keyboard navigation › should emit when there is no initial value 1 skipped 538 passed (3.3m)
🎭 Playwright Run Summary
1 skipped 529 passed (3.2m)
🎭 Playwright Run Summary
212 skipped 303 passed (3.4m)
🎭 Playwright Run Summary
4 skipped 635 passed (3.7m)
🎭 Playwright Run Summary
638 passed (4.2m)
🎭 Playwright Run Summary
3 flaky [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › using arrow keys should move between enabled radios within group [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › tabbing should switch between radio groups [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group 4 skipped 507 passed (4.0m)
🎭 Playwright Run Summary
10 skipped 503 passed (4.8m)
🎭 Playwright Run Summary
14 skipped 399 passed (5.0m)
🎭 Playwright Run Summary
5 skipped 510 passed (5.3m)
🎭 Playwright Run Summary
529 passed (6.3m)
🎭 Playwright Run Summary
1 skipped 528 passed (6.6m)
🎭 Playwright Run Summary
5 skipped 563 passed (6.5m)
🎭 Playwright Run Summary
10 skipped 531 passed (6.6m)
🎭 Playwright Run Summary
4 skipped 528 passed (6.6m)
🎭 Playwright Run Summary
5 skipped 515 passed (7.1m)
🎭 Playwright Run Summary
14 skipped 497 passed (7.2m)
🎭 Playwright Run Summary
2 skipped 509 passed (7.2m)
🎭 Playwright Run Summary
8 skipped 515 passed (8.1m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular Expired
667 KB
sha256:c5e89b7a0c81867559b15e58d983cd4e61153843be695357d0ca3c5ef8431ab6
ionic-angular-server Expired
8.58 KB
sha256:16ea01674fe6efbf0ce29870bbe6838e1a9a46c514d0aa29ea2994990243799f
ionic-core Expired
4.54 MB
sha256:c5b11e73cd1c7b65355e78b55708c0d20de2e104e8758164d66eabd4990593db
ionic-react Expired
211 KB
sha256:acbbad7876f0e9bf7532bfd08e06ad1ae9507bf5ba4fc4e2f6bc7247e507ceef
ionic-react-router Expired
27.9 KB
sha256:4396fc0bd051f92c714e44d4d2e0f15f067e5cc3893112c940845c26a649d1d8
ionic-vue Expired
233 KB
sha256:f6b823608097c5484b8c98dd94606c0f31ddba880d10a854ab0d4a1e779c6694
ionic-vue-router Expired
17.1 KB
sha256:5ec92d8e56e6816cff20e02b5e7fe1417a4413c403d7aa3af7c1a919ed67b6bf
test-results-1-20 Expired
421 KB
sha256:f1cdba266d58b64d33bb17565c16add17cbb5a78cefe442677aeca1976bf4da9
test-results-10-20 Expired
395 KB
sha256:9cf1882cd54e8439e98ffff4aec2c610eabaef19a3342487abd2b362db314fed
test-results-11-20 Expired
2.32 MB
sha256:1e597d240070034ad0e5fcb348b26e0c6c723518fdb8a179bb0f8460a1166aaa
test-results-12-20 Expired
1.16 MB
sha256:b28e88c2d9c51750acc29b12bf85477c2434c79cc885fede5f149fafcb3626af
test-results-13-20 Expired
428 KB
sha256:b927c4e0679c8e6cd37227257b791df17441c7574874cf7073b1eeb17b352769
test-results-14-20 Expired
389 KB
sha256:c86be1bf1953aaccaf66629d27f5b5cf6c53f572f05b31571803efa51ccc85c4
test-results-15-20 Expired
411 KB
sha256:5f2b9bb7edd5046a4a2f2c3a6460e18908a439fcd8ae0802a7747b33c9bd8b49
test-results-16-20 Expired
410 KB
sha256:33691707eabf63166d4497af548fba2a1b29c6cc03ea94f87801788d0b10c5cf
test-results-17-20 Expired
512 KB
sha256:b9fedc0cc40fe24c771d12f7c6add164dfcbf9e95066b6847a8548b1d4c93793
test-results-18-20 Expired
491 KB
sha256:5f7ed00129e93436364f5c5bd3f6b40705c67b5fd2156e14205e99f775d12c44
test-results-19-20 Expired
380 KB
sha256:f715cbd733df78b3d4c625dfeaf86d549a06eabc9cce239ead44eb0d9620bbd7
test-results-2-20 Expired
460 KB
sha256:3dc0b1dbcfc65aeccbf6690aa33883c543ea322d71e6f43be2bb3e7580af3ec5
test-results-20-20 Expired
338 KB
sha256:0981b8bd193a43fae8282b5b426ee318eb2debb0742b04dd77df34b4977ff0c3
test-results-3-20 Expired
409 KB
sha256:e959d1ebf9b5559e808aff25ed6466c57e54eeb422bfba774ade85f7c8fa4f54
test-results-4-20 Expired
506 KB
sha256:c7e2512e12ec2269de4d9c25ba1a0a41af89e1f90e423f68d3e72bec80d06b0f
test-results-5-20 Expired
441 KB
sha256:ea43a64e43cb56ab1262e2b06cdadba15f9705bb4fb4617b3410e6529277b56b
test-results-6-20 Expired
425 KB
sha256:023377e7adb5f1663c6136b29e19ba4a63617201096164644f34945c3ab6826c
test-results-7-20 Expired
335 KB
sha256:124204d3d06e047643630969584e1000bb286f5db926914b31f57e7148cce275
test-results-8-20 Expired
408 KB
sha256:a5aed5aca7e4eb924c3a3b090138747112d0b6b3a7ffe2223b51c1d40559eeb0
test-results-9-20 Expired
466 KB
sha256:cd82cd769ff4f006a6ec617b5586947d93eabc3485524c03a0a022354151332c