Skip to content

fix(datetime): remove ion-buttons to fix CSP violations #17833

fix(datetime): remove ion-buttons to fix CSP violations

fix(datetime): remove ion-buttons to fix CSP violations #17833

Triggered via pull request December 17, 2025 20:58
Status Failure
Total duration 12m 25s
Artifacts 23

build.yml

on: pull_request
build-react
51s
build-react
build-vue
49s
build-vue
Matrix: test-core-screenshot
build-angular
1m 7s
build-angular
build-angular-server
46s
build-angular-server
test-core-clean-build
12s
test-core-clean-build
test-core-lint
58s
test-core-lint
test-core-spec
52s
test-core-spec
build-react-router
26s
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
2s
verify-test-react-router-e2e
verify-test-vue-e2e
3s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

22 errors and 17 notices
[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
1) [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
test-core-screenshot (15, 20)
Process completed with exit code 1.
[Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/rtl/light › should render custom clear button: src/components/datetime/test/basic/datetime.e2e.ts#L337
2) [Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/rtl/light › should render custom clear button Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-datetime') 231 pixels (ratio 0.01 of all image pixels) are different. Snapshot: datetime-footer-custom-clear-button-ionic-md-rtl-light.png Call log: - Expect "toHaveScreenshot(datetime-footer-custom-clear-button-ionic-md-rtl-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated datetime-ready">…</ion-datetime> - 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 - 231 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated datetime-ready">…</ion-datetime> - 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 - 231 pixels (ratio 0.01 of all image pixels) are different. 335 | 336 | const datetime = page.locator('ion-datetime'); > 337 | await expect(datetime).toHaveScreenshot(screenshot(`datetime-footer-custom-clear-button`)); | ^ 338 | }); 339 | 340 | test('should render custom default and clear buttons', async ({ page }) => { at /ionic/src/components/datetime/test/basic/datetime.e2e.ts:337:30
[Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/rtl/light › should render custom clear button: src/components/datetime/test/basic/datetime.e2e.ts#L337
2) [Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/rtl/light › should render custom clear button Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-datetime') 231 pixels (ratio 0.01 of all image pixels) are different. Snapshot: datetime-footer-custom-clear-button-ionic-md-rtl-light.png Call log: - Expect "toHaveScreenshot(datetime-footer-custom-clear-button-ionic-md-rtl-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated datetime-ready">…</ion-datetime> - 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 - 231 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated datetime-ready">…</ion-datetime> - 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 - 231 pixels (ratio 0.01 of all image pixels) are different. 335 | 336 | const datetime = page.locator('ion-datetime'); > 337 | await expect(datetime).toHaveScreenshot(screenshot(`datetime-footer-custom-clear-button`)); | ^ 338 | }); 339 | 340 | test('should render custom default and clear buttons', async ({ page }) => { at /ionic/src/components/datetime/test/basic/datetime.e2e.ts:337:30
[Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/rtl/light › should render custom clear button: src/components/datetime/test/basic/datetime.e2e.ts#L337
2) [Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/rtl/light › should render custom clear button Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-datetime') 231 pixels (ratio 0.01 of all image pixels) are different. Snapshot: datetime-footer-custom-clear-button-ionic-md-rtl-light.png Call log: - Expect "toHaveScreenshot(datetime-footer-custom-clear-button-ionic-md-rtl-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated datetime-ready">…</ion-datetime> - 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 - 231 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated datetime-ready">…</ion-datetime> - 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 - 231 pixels (ratio 0.01 of all image pixels) are different. 335 | 336 | const datetime = page.locator('ion-datetime'); > 337 | await expect(datetime).toHaveScreenshot(screenshot(`datetime-footer-custom-clear-button`)); | ^ 338 | }); 339 | 340 | test('should render custom default and clear buttons', async ({ page }) => { at /ionic/src/components/datetime/test/basic/datetime.e2e.ts:337:30
[Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/ltr/light › should render custom clear button: src/components/datetime/test/basic/datetime.e2e.ts#L337
1) [Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/ltr/light › should render custom clear button Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-datetime') 232 pixels (ratio 0.01 of all image pixels) are different. Snapshot: datetime-footer-custom-clear-button-ionic-md-ltr-light.png Call log: - Expect "toHaveScreenshot(datetime-footer-custom-clear-button-ionic-md-ltr-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated">…</ion-datetime> - 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 - 232 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated datetime-ready">…</ion-datetime> - 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 - 232 pixels (ratio 0.01 of all image pixels) are different. 335 | 336 | const datetime = page.locator('ion-datetime'); > 337 | await expect(datetime).toHaveScreenshot(screenshot(`datetime-footer-custom-clear-button`)); | ^ 338 | }); 339 | 340 | test('should render custom default and clear buttons', async ({ page }) => { at /ionic/src/components/datetime/test/basic/datetime.e2e.ts:337:30
[Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/ltr/light › should render custom clear button: src/components/datetime/test/basic/datetime.e2e.ts#L337
1) [Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/ltr/light › should render custom clear button Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-datetime') 232 pixels (ratio 0.01 of all image pixels) are different. Snapshot: datetime-footer-custom-clear-button-ionic-md-ltr-light.png Call log: - Expect "toHaveScreenshot(datetime-footer-custom-clear-button-ionic-md-ltr-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated datetime-ready">…</ion-datetime> - 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 - 232 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated datetime-ready">…</ion-datetime> - 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 - 232 pixels (ratio 0.01 of all image pixels) are different. 335 | 336 | const datetime = page.locator('ion-datetime'); > 337 | await expect(datetime).toHaveScreenshot(screenshot(`datetime-footer-custom-clear-button`)); | ^ 338 | }); 339 | 340 | test('should render custom default and clear buttons', async ({ page }) => { at /ionic/src/components/datetime/test/basic/datetime.e2e.ts:337:30
[Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/ltr/light › should render custom clear button: src/components/datetime/test/basic/datetime.e2e.ts#L337
1) [Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/ltr/light › should render custom clear button Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-datetime') 232 pixels (ratio 0.01 of all image pixels) are different. Snapshot: datetime-footer-custom-clear-button-ionic-md-ltr-light.png Call log: - Expect "toHaveScreenshot(datetime-footer-custom-clear-button-ionic-md-ltr-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated">…</ion-datetime> - 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 - 232 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-datetime') - locator resolved to <ion-datetime value="2022-05-03" class="ion-color ion-color-primary ionic datetime-presentation-date-time datetime-size-fixed datetime-grid hydrated datetime-ready">…</ion-datetime> - 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 - 232 pixels (ratio 0.01 of all image pixels) are different. 335 | 336 | const datetime = page.locator('ion-datetime'); > 337 | await expect(datetime).toHaveScreenshot(screenshot(`datetime-footer-custom-clear-button`)); | ^ 338 | }); 339 | 340 | test('should render custom default and clear buttons', async ({ page }) => { at /ionic/src/components/datetime/test/basic/datetime.e2e.ts:337:30
test-core-screenshot (17, 20)
The strategy configuration was canceled because "test-core-screenshot._15_20" failed
test-core-screenshot (17, 20)
The operation was canceled.
test-core-screenshot (6, 20)
The strategy configuration was canceled because "test-core-screenshot._15_20" failed
test-core-screenshot (6, 20)
The operation was canceled.
test-core-screenshot (1, 20)
The strategy configuration was canceled because "test-core-screenshot._15_20" failed
test-core-screenshot (1, 20)
Process completed with exit code 12.
test-core-screenshot (1, 20)
The operation was canceled.
test-core-screenshot (4, 20)
The strategy configuration was canceled because "test-core-screenshot._15_20" failed
test-core-screenshot (4, 20)
Process completed with exit code 12.
test-core-screenshot (4, 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
360 skipped 273 passed (2.2m)
🎭 Playwright Run Summary
2 skipped 681 passed (3.7m)
🎭 Playwright Run Summary
2 skipped 667 passed (3.7m)
🎭 Playwright Run Summary
368 skipped 308 passed (3.4m)
🎭 Playwright Run Summary
1 skipped 683 passed (3.9m)
🎭 Playwright Run Summary
14 skipped 682 passed (4.4m)
🎭 Playwright Run Summary
1 flaky [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 4 skipped 671 passed (4.9m)
🎭 Playwright Run Summary
36 skipped 824 passed (5.7m)
🎭 Playwright Run Summary
14 skipped 491 passed (6.1m)
🎭 Playwright Run Summary
10 skipped 648 passed (6.5m)
🎭 Playwright Run Summary
5 skipped 691 passed (7.1m)
🎭 Playwright Run Summary
3 skipped 664 passed (7.6m)
🎭 Playwright Run Summary
12 skipped 691 passed (8.1m)
🎭 Playwright Run Summary
1 skipped 656 passed (8.5m)
🎭 Playwright Run Summary
2 failed [Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/ltr/light › should render custom clear button [Mobile Safari] › src/components/datetime/test/basic/datetime.e2e.ts:321:9 › datetime: footer - ionic/md/rtl/light › should render custom clear button 13 skipped 659 passed (9.0m)
🎭 Playwright Run Summary
5 skipped 662 passed (8.8m)
🎭 Playwright Run Summary
5 skipped 720 passed (9.2m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular
805 KB
sha256:a21e17b0b639a1598f97c5607de41d75e4ae37810d31f50b0d453ea6ce741d8d
ionic-angular-server
8.55 KB
sha256:94a22d568902187afff90696b69e72f7c53f49ccbc0c18961a23c06b15eec3df
ionic-core
5.15 MB
sha256:0a2ad44e55ce0561c043d33458562e230abdcb4bb6679c4ea934388d937d98d9
ionic-react
343 KB
sha256:42305db603bb26cd9ca9fb88accd508ca0651a7eae41a3359243ea54694c4a21
ionic-react-router
27.9 KB
sha256:e0126afb50b7e821a41a5c5f6a75dc076e149f5b80541ee9b5e1700a3a74c6d4
ionic-vue
374 KB
sha256:ad93b97613f3cbfa67405b59809940f3c8cb2d16e7dab4b2f23de8f13bd4b6ff
ionic-vue-router
17 KB
sha256:b86b77ade81472dfdad0b8a6bd2b521501b541c7a5a283f6b174f74903a311df
test-results-10-20
461 KB
sha256:01565b7df55db54caab5eb694222183fd7fcf066687a5b703957fd22074ba7c6
test-results-11-20
1.34 MB
sha256:929fe800d403f401c4fe282374bc512d55c3ef098ce24e47d9c9e65d477e866d
test-results-12-20
502 KB
sha256:fde9e9b026fdfd8714dd016125b02748069ab97060824f2a5d3b3d508eea13e9
test-results-13-20
521 KB
sha256:e6f86389fc278c669a784e9a25014f0999a705f3116c2b8085beef30451c4e58
test-results-14-20
443 KB
sha256:4a882d941567b109e80ef7eeed1d5b8e1fc166d22945e0a6ee678fb3d3a2db38
test-results-15-20
3.62 MB
sha256:6f49ed17e11f480784c5a584016a541747e48e4edcb37ae98108c0aa6d36c04a
test-results-16-20
499 KB
sha256:527ffd34da4c6b13a5f8abde9538dd79b6801c0a6f3da6065c6686008538c210
test-results-18-20
575 KB
sha256:c06d168f7abed46da7fb9ba151c737b3ae5d106086f8593cbe0bd1f16d67661a
test-results-19-20
462 KB
sha256:f770c248447164f2f696f8cb9d06ec10a156b2b67d9958a0fc72c39948c54b70
test-results-20-20
359 KB
sha256:346b2e8752b022615a4df91ab305cab42f66366e07b84d3293285aa5f9a0b560
test-results-3-20
455 KB
sha256:9fbb565a22083e2bc7b8c0aff104c0fd4b752dec16e8bbcea5c7eab757d59e95
test-results-5-20
505 KB
sha256:0d281f25853a527e4e9b0e01f0694b59980307b41d741850c66e0cadc7ea70b6
test-results-6-20
499 KB
sha256:b0f9358a1ea7025b0ab1c9f80c645411d47d7525898cf368abc0a262d034bfe7
test-results-7-20
375 KB
sha256:a4ce4dfc0d9266ee2b28f73589e3b9c69d4c97a6366e5cc2a33ac2cea1589344
test-results-8-20
464 KB
sha256:b688cae273e589e8b0238f1098840647eb77b9e18318ae6975eab1e311417fd5
test-results-9-20
512 KB
sha256:b139a3139c248931d89a05a2dee5dbe4c95a5e9af6775c4e6c637ed9c6324fdf