Skip to content

feat(select): allow HTML within options #18865

feat(select): allow HTML within options

feat(select): allow HTML within options #18865

Triggered via pull request April 10, 2026 04:17
@thetaPCthetaPC
synchronize #31072
FW-7137
Status Success
Total duration 14m 2s
Artifacts 27

build.yml

on: pull_request
build-react
52s
build-react
build-vue
44s
build-vue
Matrix: test-core-screenshot
build-angular
1m 19s
build-angular
build-angular-server
38s
build-angular-server
test-core-clean-build
10s
test-core-clean-build
test-core-lint
55s
test-core-lint
test-core-spec
55s
test-core-spec
build-react-router
22s
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
2s
verify-test-angular-e2e
verify-test-react-e2e
3s
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

8 errors and 20 notices
[Mobile Chrome] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard: src/components/action-sheet/test/a11y/action-sheet.e2e.ts#L188
1) [Mobile Chrome] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard Error: expect(received).toBe(expected) // Object.is equality Expected: "Cancel" Received: "Option 1" 186 | 187 | focusedElement = await page.evaluate(() => document.activeElement?.textContent?.trim()); > 188 | expect(focusedElement).toBe('Cancel'); | ^ 189 | }); 190 | }); 191 | }); at /ionic/src/components/action-sheet/test/a11y/action-sheet.e2e.ts:188:30
[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/toast/test/swipe-gesture/toast.e2e.ts:58:9 › toast: swipe gesture with bottom position - ios/ltr › should swipe down to dismiss with anchor: src/components/toast/test/swipe-gesture/toast.e2e.ts#L0
1) [Mobile Chrome] › src/components/toast/test/swipe-gesture/toast.e2e.ts:58:9 › toast: swipe gesture with bottom position - ios/ltr › should swipe down to dismiss with anchor Test timeout of 30000ms exceeded.
[Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:25:9 › toast: swipe gesture with top position - ios/ltr › should swipe up to dismiss with anchor: src/components/toast/test/swipe-gesture/toast.e2e.ts#L0
2) [Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:25:9 › toast: swipe gesture with top position - ios/ltr › should swipe up to dismiss with anchor Test timeout of 30000ms exceeded.
[Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions: src/components/tab-bar/test/basic/tab-bar.e2e.ts#L45
1) [Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-tab-bar') 541 pixels (ratio 0.03 of all image pixels) are different. Snapshot: tab-bar-default-ionic-md-rtl-light.png Call log: - Expect "toHaveScreenshot(tab-bar-default-ionic-md-rtl-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-tab-bar') - locator resolved to <ion-tab-bar role="tablist" selected-tab="2" class="ionic tab-bar-full tab-bar-round hydrated">…</ion-tab-bar> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 541 pixels (ratio 0.03 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-tab-bar') - locator resolved to <ion-tab-bar role="tablist" selected-tab="2" class="ionic tab-bar-full tab-bar-round hydrated">…</ion-tab-bar> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 541 pixels (ratio 0.03 of all image pixels) are different. 43 | const tabBar = page.locator('ion-tab-bar'); 44 | > 45 | await expect(tabBar).toHaveScreenshot(screenshot(`tab-bar-default`)); | ^ 46 | }); 47 | }); 48 | }); at /ionic/src/components/tab-bar/test/basic/tab-bar.e2e.ts:45:28
[Mobile Safari] › src/components/datetime/test/multiple/datetime.e2e.ts:161:9 › datetime: multiple date selection (functionality) - md/ltr › should scroll to new month when value is updated with multiple dates in the same month: src/components/datetime/test/multiple/datetime.e2e.ts#L174
1) [Mobile Safari] › src/components/datetime/test/multiple/datetime.e2e.ts:161:9 › datetime: multiple date selection (functionality) - md/ltr › should scroll to new month when value is updated with multiple dates in the same month Error: expect(locator).toHaveText(expected) failed Locator: locator('ion-datetime').locator('.calendar-month-year') Expected pattern: /June 2022/ Received string: "May 2022" Timeout: 5000ms Call log: - Expect "toHaveText" with timeout 5000ms - waiting for locator('ion-datetime').locator('.calendar-month-year') 9 × locator resolved to <div class="calendar-month-year">…</div> - unexpected value "May 2022" 172 | 173 | const monthYear = datetime.locator('.calendar-month-year'); > 174 | await expect(monthYear).toHaveText(/June 2022/); | ^ 175 | }); 176 | 177 | test('with buttons, should only update value when confirm is called', async ({ page }) => { at /ionic/src/components/datetime/test/multiple/datetime.e2e.ts:174:31
[Mobile Firefox] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard: src/components/action-sheet/test/a11y/action-sheet.e2e.ts#L188
1) [Mobile Firefox] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard Error: expect(received).toBe(expected) // Object.is equality Expected: "Cancel" Received: "Option 1" 186 | 187 | focusedElement = await page.evaluate(() => document.activeElement?.textContent?.trim()); > 188 | expect(focusedElement).toBe('Cancel'); | ^ 189 | }); 190 | }); 191 | }); at /ionic/src/components/action-sheet/test/a11y/action-sheet.e2e.ts:188:30
[Mobile Safari] › src/components/item-sliding/test/shapes/item-sliding.e2e.ts:10:9 › item-sliding: shapes - ionic/md/ltr/light › should not have visual regressions when not expanded: src/components/item-sliding/test/shapes/item-sliding.e2e.ts#L26
1) [Mobile Safari] › src/components/item-sliding/test/shapes/item-sliding.e2e.ts:10:9 › item-sliding: shapes - ionic/md/ltr/light › should not have visual regressions when not expanded Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('#round') 749 pixels (ratio 0.03 of all image pixels) are different. Snapshot: item-sliding-round-ionic-md-ltr-light.png Call log: - Expect "toHaveScreenshot(item-sliding-round-ionic-md-ltr-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('#round') - locator resolved to <ion-item-sliding id="round" class="md hydrated item-sliding-active-slide item-sliding-active-options-end item-sliding-active-swipe-end">…</ion-item-sliding> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 749 pixels (ratio 0.03 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('#round') - locator resolved to <ion-item-sliding id="round" class="md hydrated item-sliding-active-slide item-sliding-active-options-end item-sliding-active-swipe-end">…</ion-item-sliding> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 749 pixels (ratio 0.03 of all image pixels) are different. 24 | await page.waitForChanges(); 25 | > 26 | await expect(item).toHaveScreenshot(screenshot(`item-sliding-${itemID}`)); | ^ 27 | } 28 | }); 29 | }); at /ionic/src/components/item-sliding/test/shapes/item-sliding.e2e.ts:26:28
🎭 Playwright Run Summary
1 flaky [Mobile Chrome] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard 360 skipped 351 passed (3.3m)
🎭 Playwright Run Summary
368 skipped 324 passed (3.6m)
🎭 Playwright Run Summary
2 skipped 589 passed (4.0m)
🎭 Playwright Run Summary
8 skipped 719 passed (4.5m)
🎭 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 709 passed (4.7m)
🎭 Playwright Run Summary
5 skipped 702 passed (5.1m)
🎭 Playwright Run Summary
8 skipped 810 passed (5.5m)
🎭 Playwright Run Summary
14 skipped 501 passed (6.2m)
🎭 Playwright Run Summary
5 skipped 697 passed (6.7m)
🎭 Playwright Run Summary
1 flaky [Mobile Chrome] › src/components/toast/test/swipe-gesture/toast.e2e.ts:58:9 › toast: swipe gesture with bottom position - ios/ltr › should swipe down to dismiss with anchor 36 skipped 869 passed (6.7m)
🎭 Playwright Run Summary
10 skipped 707 passed (7.2m)
🎭 Playwright Run Summary
13 skipped 706 passed (8.8m)
🎭 Playwright Run Summary
1 skipped 665 passed (8.9m)
🎭 Playwright Run Summary
3 skipped 701 passed (9.0m)
🎭 Playwright Run Summary
2 flaky [Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions [Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:25:9 › toast: swipe gesture with top position - ios/ltr › should swipe up to dismiss with anchor 5 skipped 701 passed (9.0m)
🎭 Playwright Run Summary
1 flaky [Mobile Safari] › src/components/datetime/test/multiple/datetime.e2e.ts:161:9 › datetime: multiple date selection (functionality) - md/ltr › should scroll to new month when value is updated with multiple dates in the same month 13 skipped 718 passed (9.3m)
🎭 Playwright Run Summary
1 flaky [Mobile Firefox] › src/components/action-sheet/test/a11y/action-sheet.e2e.ts:158:9 › action-sheet: radio buttons - ios/ltr › should navigate radio buttons with keyboard 4 skipped 745 passed (9.5m)
🎭 Playwright Run Summary
1 flaky [Mobile Safari] › src/components/item-sliding/test/shapes/item-sliding.e2e.ts:10:9 › item-sliding: shapes - ionic/md/ltr/light › should not have visual regressions when not expanded 5 skipped 698 passed (10.0m)
🎭 Playwright Run Summary
15 skipped 744 passed (10.6m)
🎭 Playwright Run Summary
18 skipped 662 passed (10.6m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular
811 KB
sha256:03bd4991a470a24e58607327bf2f4128258d1b9c3099b3ef39f3c98fe62a53ca
ionic-angular-server
8.55 KB
sha256:fea3dea372524e662fc56b744494750cadeb3fd91b19fc232eee3ae7c1795634
ionic-core
5.15 MB
sha256:4df513e78670e476ca12b432d9381bfc01ca77bad8a3e6000bcb43e033158109
ionic-react
345 KB
sha256:d60b7dee64713354091120e312d19493930c12627ca30b5eadf4bb0870ff341c
ionic-react-router
27.9 KB
sha256:79ed340d2fd2855ef752d0ec158bbc53212795742ee288aa21f2b1ff4b208ec1
ionic-vue
376 KB
sha256:eab589e30b3d9807d3edf9371a44e30ef6e39d1f21a4fe6dd3d3f20bb75aeac9
ionic-vue-router
17.1 KB
sha256:eddb3da032253908c136b0a2da922f5c112e09cd7e2a3e82d24930d44de0d309
test-results-1-20
1.35 MB
sha256:04eff12b4423c413e30ba46d67513bf0ae76c336db4b4fb1749b05c34c597f31
test-results-10-20
442 KB
sha256:3577a98c9157ca2b17b00e337d9d0283d7a5143590800d9a0b5e24dad830a87b
test-results-11-20
616 KB
sha256:d3fa20800bfda94f1a5e098c541c63e1663c3a7b0a37df5a672fe34a90bddddc
test-results-12-20
1.29 MB
sha256:2537aed530b63727bae8deb78a4359f124b8c1793befa160b1fbf7ead408900f
test-results-13-20
1.47 MB
sha256:1f09cc8b4b6761dae2fa4365244769993a165cc4301be009a48092121d05390d
test-results-14-20
453 KB
sha256:790689c8cc7ec44b8355c279a6c2673091b107b46476a548328e1adeab94d300
test-results-15-20
1.29 MB
sha256:21528ade6042ae8a725e56d04108e1272dc66b3ca49bbddd9d87ea15e91236e7
test-results-16-20
511 KB
sha256:f24a586184bbf913fa6199dd33d9dfb13ed23cba2845c92edba13ade08a7d415
test-results-17-20
1.48 MB
sha256:86382cbb9685342e8af71ff046cbb468b3b8b2cffc7c46c2ef0246f1632f9d24
test-results-18-20
601 KB
sha256:8924570709839cfbb1226e705dc7aee2b245944b7c0c98eeb82e3826b1f5cebb
test-results-19-20
496 KB
sha256:e1054e3527eacd69802c58f1a3f907871c979d1d2abd6d7a40aecf99ca1306f5
test-results-2-20
546 KB
sha256:75a1fe6b3c9bab310f909cbc1ce8a6bb9e3373ce01df5b33414cf62e21d626b2
test-results-20-20
371 KB
sha256:85e4fc9615c1717b184d1d84b8f15f3a15241c95d2d3875617810b7197538b85
test-results-3-20
492 KB
sha256:b91eca2ce45f911dc55ec0d02644da2eac6b095eab5dac2ed40f11ed54fec28c
test-results-4-20
643 KB
sha256:ce3ffb03b9346df6d0c162ef27e4a8af6eef6f3c310a4562dd2a1f8c14417084
test-results-5-20
519 KB
sha256:6fb22261e45697036048c195ab2dd3d8ce45a42428c966273b118355a86f5378
test-results-6-20
1.82 MB
sha256:d89419a66f335e2fd0bfd4c9a953d241e956abf90213725eb6fba0a1d35dd299
test-results-7-20
1.25 MB
sha256:badac8f1c613a2a4c6233fbfc9ec9fb39c7382da615493600ccee854ab22ef32
test-results-8-20
488 KB
sha256:8deb6429da4b31423b11f88c582575e4b9716f26692106773da5d0f3aa612157
test-results-9-20
575 KB
sha256:f1224fe678381c1cb141e9a09fd90bc7f12ace186d4848714a1ebf30f821dd9c