@ionic/core 7.5.6-dev.11700168085.18cb70d3 → 7.5.6-dev.11700492285.1581ed02

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/components/ion-datetime.js +2 -2
  2. package/dist/cjs/ion-datetime_3.cjs.entry.js +2 -2
  3. package/dist/collection/collection-manifest.json +4 -4
  4. package/dist/collection/components/accordion/test/accordion.spec.js +195 -0
  5. package/dist/collection/components/action-sheet/test/action-sheet-id.spec.js +32 -0
  6. package/dist/collection/components/action-sheet/test/basic/action-sheet.spec.js +18 -0
  7. package/dist/collection/components/alert/test/alert-id.spec.js +32 -0
  8. package/dist/collection/components/alert/test/alert.spec.js +37 -0
  9. package/dist/collection/components/back-button/test/back-button.spec.js +86 -0
  10. package/dist/collection/components/breadcrumb/test/aria.spec.js +22 -0
  11. package/dist/collection/components/breadcrumbs/test/breadcrumbs.spec.js +58 -0
  12. package/dist/collection/components/button/test/form-reference/button.spec.js +26 -0
  13. package/dist/collection/components/card/test/aria.spec.js +16 -0
  14. package/dist/collection/components/checkbox/test/checkbox.spec.js +20 -0
  15. package/dist/collection/components/datetime/datetime.js +2 -2
  16. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +43 -0
  17. package/dist/collection/components/datetime/test/comparison.spec.js +43 -0
  18. package/dist/collection/components/datetime/test/data.spec.js +456 -0
  19. package/dist/collection/components/datetime/test/format.spec.js +124 -0
  20. package/dist/collection/components/datetime/test/helpers.spec.js +72 -0
  21. package/dist/collection/components/datetime/test/manipulation.spec.js +433 -0
  22. package/dist/collection/components/datetime/test/parse.spec.js +222 -0
  23. package/dist/collection/components/datetime/test/state.spec.js +114 -0
  24. package/dist/collection/components/infinite-scroll-content/test/infinite-scroll-content.spec.js +37 -0
  25. package/dist/collection/components/input/test/input.spec.js +85 -0
  26. package/dist/collection/components/input/test/item/input.spec.js +24 -0
  27. package/dist/collection/components/item/test/a11y/item.spec.js +48 -0
  28. package/dist/collection/components/loading/test/basic/loading.spec.js +16 -0
  29. package/dist/collection/components/loading/test/loading-id.spec.js +32 -0
  30. package/dist/collection/components/loading/test/loading.spec.js +37 -0
  31. package/dist/collection/components/modal/test/a11y/modal.spec.js +22 -0
  32. package/dist/collection/components/modal/test/basic/modal.spec.js +16 -0
  33. package/dist/collection/components/modal/test/can-dismiss/modal.spec.js +191 -0
  34. package/dist/collection/components/modal/test/modal-id.spec.js +32 -0
  35. package/dist/collection/components/nav/test/nav-controller.spec.js +749 -0
  36. package/dist/collection/components/picker/test/picker-id.spec.js +32 -0
  37. package/dist/collection/components/picker-column/test/picker-column-aria.spec.js +35 -0
  38. package/dist/collection/components/picker-column/test/picker-column-dynamic.spec.js +29 -0
  39. package/dist/collection/components/picker-column/test/picker-column.spec.js +17 -0
  40. package/dist/collection/components/popover/test/basic/popover.spec.js +16 -0
  41. package/dist/collection/components/popover/test/popover-id.spec.js +32 -0
  42. package/dist/collection/components/popover/test/util.spec.js +53 -0
  43. package/dist/collection/components/radio/test/radio.spec.js +46 -0
  44. package/dist/collection/components/range/test/label/range.spec.js +23 -0
  45. package/dist/collection/components/range/test/range.spec.js +205 -0
  46. package/dist/collection/components/refresher-content/test/refresher-content.spec.js +46 -0
  47. package/dist/collection/components/router/test/matching.spec.js +250 -0
  48. package/dist/collection/components/router/test/parser.spec.js +133 -0
  49. package/dist/collection/components/router/test/path.spec.js +218 -0
  50. package/dist/collection/components/router/test/router.spec.js +55 -0
  51. package/dist/collection/components/searchbar/test/searchbar.spec.js +15 -0
  52. package/dist/collection/components/segment/test/segment.spec.js +37 -0
  53. package/dist/collection/components/select/test/select.spec.js +59 -0
  54. package/dist/collection/components/textarea/test/textarea.spec.js +59 -0
  55. package/dist/collection/components/toast/test/toast-id.spec.js +32 -0
  56. package/dist/collection/components/toast/test/toast.spec.js +120 -0
  57. package/dist/collection/components/toggle/test/toggle.spec.js +55 -0
  58. package/dist/collection/global/test/config-controller.spec.js +77 -0
  59. package/dist/collection/utils/animation/test/animation.spec.js +431 -0
  60. package/dist/collection/utils/keyboard/test/keyboard-controller.spec.js +21 -0
  61. package/dist/collection/utils/keyboard/test/keyboard.spec.js +214 -0
  62. package/dist/collection/utils/sanitization/test/sanitization.spec.js +43 -0
  63. package/dist/collection/utils/test/aria.spec.js +79 -0
  64. package/dist/collection/utils/test/attributes.spec.js +53 -0
  65. package/dist/collection/utils/test/hardware-back-button.spec.js +53 -0
  66. package/dist/collection/utils/test/overlays/overlays.spec.js +102 -0
  67. package/dist/collection/utils/test/platform.spec.js +132 -0
  68. package/dist/collection/utils/test/ready.spec.js +39 -0
  69. package/dist/collection/utils/test/theme.spec.js +56 -0
  70. package/dist/docs.json +21 -21
  71. package/dist/esm/ion-datetime_3.entry.js +2 -2
  72. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  73. package/dist/ionic/ionic.esm.js +1 -1
  74. package/dist/ionic/p-40903d34.system.js +1 -1
  75. package/dist/ionic/p-ad61e508.entry.js +4 -0
  76. package/dist/ionic/p-d91e93ac.system.entry.js +4 -0
  77. package/hydrate/index.js +2 -2
  78. package/package.json +2 -1
  79. package/dist/ionic/p-b76c6241.system.entry.js +0 -4
  80. package/dist/ionic/p-b781d6b2.entry.js +0 -4
@@ -0,0 +1,191 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { h, setMode } from "@stencil/core";
5
+ import { newSpecPage } from "@stencil/core/testing";
6
+ import { Content } from "../../../content/content";
7
+ import { Modal } from "../../modal";
8
+ describe('modal: canDismiss', () => {
9
+ describe('modal: regular modal', () => {
10
+ it('should dismiss when canDismiss is true', async () => {
11
+ const page = await newSpecPage({
12
+ components: [Modal],
13
+ template: () => h("ion-modal", { overlayIndex: 1, animated: false, canDismiss: true }),
14
+ });
15
+ const modal = page.body.querySelector('ion-modal');
16
+ await modal.present();
17
+ await page.waitForChanges();
18
+ const returnValue = await modal.dismiss();
19
+ await expect(returnValue).toBe(true);
20
+ });
21
+ it('should not dismiss when canDismiss is false', async () => {
22
+ const page = await newSpecPage({
23
+ components: [Modal],
24
+ template: () => h("ion-modal", { overlayIndex: 1, animated: false, canDismiss: false }),
25
+ });
26
+ const modal = page.body.querySelector('ion-modal');
27
+ await modal.present();
28
+ await page.waitForChanges();
29
+ const returnValue = await modal.dismiss();
30
+ await expect(returnValue).toBe(false);
31
+ });
32
+ it('should dismiss when canDismiss is Promise<true>', async () => {
33
+ const page = await newSpecPage({
34
+ components: [Modal],
35
+ template: () => (h("ion-modal", { overlayIndex: 1, animated: false, canDismiss: () => {
36
+ return new Promise((resolve) => {
37
+ setTimeout(() => resolve(true), 50);
38
+ });
39
+ } })),
40
+ });
41
+ const modal = page.body.querySelector('ion-modal');
42
+ await modal.present();
43
+ await page.waitForChanges();
44
+ const returnValue = await modal.dismiss();
45
+ await expect(returnValue).toBe(true);
46
+ });
47
+ it('should not dismiss when canDismiss is Promise<false>', async () => {
48
+ const page = await newSpecPage({
49
+ components: [Modal],
50
+ template: () => (h("ion-modal", { overlayIndex: 1, animated: false, canDismiss: () => {
51
+ return new Promise((resolve) => {
52
+ setTimeout(() => resolve(false), 50);
53
+ });
54
+ } })),
55
+ });
56
+ const modal = page.body.querySelector('ion-modal');
57
+ await modal.present();
58
+ await page.waitForChanges();
59
+ const returnValue = await modal.dismiss();
60
+ await expect(returnValue).toBe(false);
61
+ });
62
+ });
63
+ describe('modal: card modal', () => {
64
+ beforeEach(() => {
65
+ /**
66
+ * Card modal is only available on iOS
67
+ */
68
+ setMode(() => 'ios');
69
+ });
70
+ it('should dismiss when canDismiss is true', async () => {
71
+ const page = await newSpecPage({
72
+ components: [Content, Modal],
73
+ template: () => (h("ion-modal", { overlayIndex: 1, presentingElement: document.createElement('div'), animated: false, canDismiss: true }, h("ion-content", null, "Test Content"))),
74
+ });
75
+ const modal = page.body.querySelector('ion-modal');
76
+ await modal.present();
77
+ await page.waitForChanges();
78
+ const returnValue = await modal.dismiss();
79
+ await expect(returnValue).toBe(true);
80
+ });
81
+ it('should not dismiss when canDismiss is false', async () => {
82
+ const page = await newSpecPage({
83
+ components: [Content, Modal],
84
+ template: () => (h("ion-modal", { overlayIndex: 1, presentingElement: document.createElement('div'), animated: false, canDismiss: false }, h("ion-content", null, "Test Content"))),
85
+ });
86
+ const modal = page.body.querySelector('ion-modal');
87
+ await modal.present();
88
+ await page.waitForChanges();
89
+ const returnValue = await modal.dismiss();
90
+ await expect(returnValue).toBe(false);
91
+ });
92
+ it('should dismiss when canDismiss is Promise<true>', async () => {
93
+ const page = await newSpecPage({
94
+ components: [Content, Modal],
95
+ template: () => (h("ion-modal", { overlayIndex: 1, presentingElement: document.createElement('div'), animated: false, canDismiss: () => {
96
+ return new Promise((resolve) => {
97
+ setTimeout(() => resolve(true), 50);
98
+ });
99
+ } }, h("ion-content", null, "Test Content"))),
100
+ });
101
+ const modal = page.body.querySelector('ion-modal');
102
+ await modal.present();
103
+ await page.waitForChanges();
104
+ const returnValue = await modal.dismiss();
105
+ await expect(returnValue).toBe(true);
106
+ });
107
+ it('should not dismiss when canDismiss is Promise<false>', async () => {
108
+ const page = await newSpecPage({
109
+ components: [Content, Modal],
110
+ template: () => (h("ion-modal", { overlayIndex: 1, presentingElement: document.createElement('div'), animated: false, canDismiss: () => {
111
+ return new Promise((resolve) => {
112
+ setTimeout(() => resolve(false), 50);
113
+ });
114
+ } }, h("ion-content", null, "Test Content"))),
115
+ });
116
+ const modal = page.body.querySelector('ion-modal');
117
+ await modal.present();
118
+ await page.waitForChanges();
119
+ const returnValue = await modal.dismiss();
120
+ await expect(returnValue).toBe(false);
121
+ });
122
+ });
123
+ describe('modal: sheet modal', () => {
124
+ it('should dismiss when canDismiss is true', async () => {
125
+ const page = await newSpecPage({
126
+ components: [Modal],
127
+ template: () => (h("ion-modal", { overlayIndex: 1, breakpoints: [0, 1], initialBreakpoint: 1, animated: false, canDismiss: true })),
128
+ });
129
+ const modal = page.body.querySelector('ion-modal');
130
+ await modal.present();
131
+ await page.waitForChanges();
132
+ const returnValue = await modal.dismiss();
133
+ await expect(returnValue).toBe(true);
134
+ });
135
+ it('should not dismiss when canDismiss is false', async () => {
136
+ const page = await newSpecPage({
137
+ components: [Modal],
138
+ template: () => (h("ion-modal", { overlayIndex: 1, breakpoints: [0, 1], initialBreakpoint: 1, animated: false, canDismiss: false })),
139
+ });
140
+ const modal = page.body.querySelector('ion-modal');
141
+ await modal.present();
142
+ await page.waitForChanges();
143
+ const returnValue = await modal.dismiss();
144
+ await expect(returnValue).toBe(false);
145
+ });
146
+ it('should dismiss when canDismiss is Promise<true>', async () => {
147
+ const page = await newSpecPage({
148
+ components: [Modal],
149
+ template: () => (h("ion-modal", { overlayIndex: 1, breakpoints: [0, 1], initialBreakpoint: 1, animated: false, canDismiss: () => {
150
+ return new Promise((resolve) => {
151
+ setTimeout(() => resolve(true), 50);
152
+ });
153
+ } })),
154
+ });
155
+ const modal = page.body.querySelector('ion-modal');
156
+ await modal.present();
157
+ await page.waitForChanges();
158
+ const returnValue = await modal.dismiss();
159
+ await expect(returnValue).toBe(true);
160
+ });
161
+ it('should not dismiss when canDismiss is Promise<false>', async () => {
162
+ const page = await newSpecPage({
163
+ components: [Modal],
164
+ template: () => (h("ion-modal", { overlayIndex: 1, breakpoints: [0, 1], initialBreakpoint: 1, animated: false, canDismiss: () => {
165
+ return new Promise((resolve) => {
166
+ setTimeout(() => resolve(false), 50);
167
+ });
168
+ } })),
169
+ });
170
+ const modal = page.body.querySelector('ion-modal');
171
+ await modal.present();
172
+ await page.waitForChanges();
173
+ const returnValue = await modal.dismiss();
174
+ await expect(returnValue).toBe(false);
175
+ });
176
+ });
177
+ describe('modal: data and role', () => {
178
+ test('should pass data and role when calling dismiss', async () => {
179
+ const canDismiss = jest.fn();
180
+ const page = await newSpecPage({
181
+ components: [Modal],
182
+ template: () => h("ion-modal", { overlayIndex: 1, animated: false, canDismiss: canDismiss }),
183
+ });
184
+ const modal = page.body.querySelector('ion-modal');
185
+ await modal.present();
186
+ await page.waitForChanges();
187
+ await modal.dismiss('my data', 'my role');
188
+ expect(canDismiss).toHaveBeenCalledWith('my data', 'my role');
189
+ });
190
+ });
191
+ });
@@ -0,0 +1,32 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { newSpecPage } from "@stencil/core/testing";
5
+ import { Modal } from "../modal";
6
+ it('modal should be assigned an incrementing id', async () => {
7
+ const page = await newSpecPage({
8
+ components: [Modal],
9
+ html: `<ion-modal is-open="true"></ion-modal>`,
10
+ });
11
+ let modal;
12
+ modal = page.body.querySelector('ion-modal');
13
+ expect(modal).not.toBe(null);
14
+ expect(modal.getAttribute('id')).toBe('ion-overlay-1');
15
+ // Remove the modal from the DOM
16
+ modal.remove();
17
+ await page.waitForChanges();
18
+ // Create a new modal to verify the id is incremented
19
+ modal = document.createElement('ion-modal');
20
+ modal.isOpen = true;
21
+ page.body.appendChild(modal);
22
+ await page.waitForChanges();
23
+ modal = page.body.querySelector('ion-modal');
24
+ expect(modal.getAttribute('id')).toBe('ion-overlay-2');
25
+ // Presenting the same modal again should reuse the existing id
26
+ modal.isOpen = false;
27
+ await page.waitForChanges();
28
+ modal.isOpen = true;
29
+ await page.waitForChanges();
30
+ modal = page.body.querySelector('ion-modal');
31
+ expect(modal.getAttribute('id')).toBe('ion-overlay-2');
32
+ });