@smileid/web-components 1.0.0-beta

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 (73) hide show
  1. package/.eslintrc.cjs +72 -0
  2. package/components/README.md +14 -0
  3. package/components/attribution/PoweredBySmileId.js +42 -0
  4. package/components/camera-permission/CameraPermission.js +136 -0
  5. package/components/camera-permission/CameraPermission.stories.js +21 -0
  6. package/components/combobox/src/Combobox.js +586 -0
  7. package/components/combobox/src/index.js +1 -0
  8. package/components/document/src/DocumentCaptureScreens.js +317 -0
  9. package/components/document/src/DocumentCaptureScreens.stories.js +51 -0
  10. package/components/document/src/README.md +108 -0
  11. package/components/document/src/document-capture/DocumentCapture.js +677 -0
  12. package/components/document/src/document-capture/DocumentCapture.stories.js +71 -0
  13. package/components/document/src/document-capture/README.md +89 -0
  14. package/components/document/src/document-capture/index.js +3 -0
  15. package/components/document/src/document-capture-instructions/DocumentCaptureInstructions.js +499 -0
  16. package/components/document/src/document-capture-instructions/DocumentCaptureInstructions.stories.js +17 -0
  17. package/components/document/src/document-capture-instructions/README.md +56 -0
  18. package/components/document/src/document-capture-instructions/index.js +3 -0
  19. package/components/document/src/document-capture-review/DocumentCaptureReview.js +378 -0
  20. package/components/document/src/document-capture-review/DocumentCaptureReview.stories.js +14 -0
  21. package/components/document/src/document-capture-review/README.md +79 -0
  22. package/components/document/src/document-capture-review/index.js +3 -0
  23. package/components/document/src/index.js +3 -0
  24. package/components/end-user-consent/src/EndUserConsent.js +809 -0
  25. package/components/end-user-consent/src/EndUserConsent.stories.js +23 -0
  26. package/components/end-user-consent/src/index.js +4 -0
  27. package/components/navigation/src/Navigation.js +160 -0
  28. package/components/navigation/src/Navigation.stories.js +24 -0
  29. package/components/navigation/src/index.js +3 -0
  30. package/components/selfie/README.md +201 -0
  31. package/components/selfie/src/SelfieCaptureScreens.js +224 -0
  32. package/components/selfie/src/SelfieCaptureScreens.stories.js +21 -0
  33. package/components/selfie/src/index.js +5 -0
  34. package/components/selfie/src/selfie-capture/SelfieCapture.js +878 -0
  35. package/components/selfie/src/selfie-capture/SelfieCapture.stories.js +23 -0
  36. package/components/selfie/src/selfie-capture/index.js +3 -0
  37. package/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.js +638 -0
  38. package/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.stories.js +17 -0
  39. package/components/selfie/src/selfie-capture-instructions/index.js +3 -0
  40. package/components/selfie/src/selfie-capture-review/SelfieCaptureReview.js +348 -0
  41. package/components/selfie/src/selfie-capture-review/SelfieCaptureReview.stories.js +17 -0
  42. package/components/selfie/src/selfie-capture-review/index.js +3 -0
  43. package/components/signature-pad/package.json +30 -0
  44. package/components/signature-pad/src/SignaturePad.js +477 -0
  45. package/components/signature-pad/src/SignaturePad.stories.js +24 -0
  46. package/components/signature-pad/src/index.js +3 -0
  47. package/components/smart-camera-web/src/SmartCameraWeb.js +246 -0
  48. package/components/smart-camera-web/src/SmartCameraWeb.stories.js +35 -0
  49. package/components/totp-consent/src/TotpConsent.js +935 -0
  50. package/components/totp-consent/src/index.js +4 -0
  51. package/cypress/e2e/smart-camera-web-attribution.cy.js +21 -0
  52. package/cypress/e2e/smart-camera-web-back-press.cy.js +481 -0
  53. package/cypress/e2e/smart-camera-web-hide-instructions.cy.js +334 -0
  54. package/cypress/e2e/smart-camera-web.cy.js +309 -0
  55. package/cypress/fixtures/example.json +5 -0
  56. package/cypress/pages/capture-back-of-id-hide-attribution.html +44 -0
  57. package/cypress/pages/capture-back-of-id-navigation.html +72 -0
  58. package/cypress/pages/smart-camera-web-hide-instructions.html +38 -0
  59. package/cypress/pages/smart-camera-web.html +38 -0
  60. package/cypress/support/commands.js +144 -0
  61. package/cypress/support/e2e.js +20 -0
  62. package/cypress.config.js +11 -0
  63. package/domain/camera/src/README.md +38 -0
  64. package/domain/camera/src/SmartCamera.js +81 -0
  65. package/domain/constants/src/Constants.js +27 -0
  66. package/domain/file-upload/README.md +35 -0
  67. package/domain/file-upload/src/SmartFileUpload.js +65 -0
  68. package/esbuild.js +119 -0
  69. package/index.js +5 -0
  70. package/package.json +46 -0
  71. package/styles/README.md +3 -0
  72. package/styles/src/styles.js +348 -0
  73. package/styles/src/typography.js +52 -0
@@ -0,0 +1,334 @@
1
+ context('SmartCameraWeb', () => {
2
+ beforeEach(() => {
3
+ cy.visit('/smart-camera-web-hide-instructions');
4
+ });
5
+
6
+ it('should start from the request camera screen', () => {
7
+ cy.get('smart-camera-web')
8
+ .shadow()
9
+ .find('camera-permission')
10
+ .should('be.visible');
11
+ cy.get('smart-camera-web')
12
+ .shadow()
13
+ .find('camera-permission')
14
+ .shadow()
15
+ .should('contain.text', 'Request Camera Access');
16
+ });
17
+
18
+ it('should switch from the request screen to the selfie capture screen on clicking "Request Camera Access"', () => {
19
+ cy.get('smart-camera-web')
20
+ .shadow()
21
+ .find('camera-permission')
22
+ .shadow()
23
+ .find('#request-camera-access')
24
+ .click();
25
+
26
+ cy.get('smart-camera-web')
27
+ .shadow()
28
+ .find('camera-permission')
29
+ .shadow()
30
+ .should('not.be.visible');
31
+
32
+ cy.get('smart-camera-web')
33
+ .shadow()
34
+ .find('selfie-capture-instructions')
35
+ .should('not.be.visible');
36
+
37
+ cy.get('smart-camera-web')
38
+ .shadow()
39
+ .find('selfie-capture')
40
+ .should('be.visible');
41
+ cy.get('smart-camera-web')
42
+ .shadow()
43
+ .find('selfie-capture')
44
+ .shadow()
45
+ .should('contain.text', 'Take a Selfie');
46
+ });
47
+
48
+ it('should have a 8000ms timer', () => {
49
+ cy.get('smart-camera-web')
50
+ .shadow()
51
+ .find('camera-permission')
52
+ .shadow()
53
+ .find('#request-camera-access')
54
+ .click();
55
+
56
+ cy.get('smart-camera-web')
57
+ .shadow()
58
+ .find('camera-permission')
59
+ .should('not.be.visible');
60
+
61
+ cy.get('smart-camera-web')
62
+ .shadow()
63
+ .find('selfie-capture')
64
+ .should('be.visible');
65
+ cy.get('smart-camera-web')
66
+ .shadow()
67
+ .find('selfie-capture')
68
+ .shadow()
69
+ .should('contain.text', 'Take a Selfie');
70
+ cy.get('smart-camera-web')
71
+ .shadow()
72
+ .find('selfie-capture')
73
+ .shadow()
74
+ .find('#start-image-capture')
75
+ .click();
76
+
77
+ cy.wait(8000);
78
+
79
+ cy.get('smart-camera-web')
80
+ .shadow()
81
+ .find('selfie-capture')
82
+ .shadow()
83
+ .should('not.be.visible');
84
+
85
+ cy.get('smart-camera-web')
86
+ .shadow()
87
+ .find('selfie-capture-review')
88
+ .should('be.visible');
89
+ });
90
+
91
+ it('should switch from the selfie screen to the review screen on clicking "Take Selfie"', () => {
92
+ cy.clock();
93
+ cy.get('smart-camera-web')
94
+ .shadow()
95
+ .find('camera-permission')
96
+ .shadow()
97
+ .find('#request-camera-access')
98
+ .click();
99
+
100
+ cy.get('smart-camera-web')
101
+ .shadow()
102
+ .find('camera-permission')
103
+ .should('not.be.visible');
104
+
105
+ cy.get('smart-camera-web')
106
+ .shadow()
107
+ .find('selfie-capture')
108
+ .should('be.visible');
109
+ cy.get('smart-camera-web')
110
+ .shadow()
111
+ .find('selfie-capture')
112
+ .shadow()
113
+ .should('contain.text', 'Take a Selfie');
114
+ cy.get('smart-camera-web')
115
+ .shadow()
116
+ .find('selfie-capture')
117
+ .shadow()
118
+ .find('#start-image-capture')
119
+ .click();
120
+
121
+ cy.tick(8000);
122
+
123
+ cy.get('smart-camera-web')
124
+ .shadow()
125
+ .find('selfie-capture')
126
+ .shadow()
127
+ .should('not.be.visible');
128
+
129
+ cy.get('smart-camera-web')
130
+ .shadow()
131
+ .find('selfie-capture-review')
132
+ .should('be.visible');
133
+ });
134
+
135
+ it('should show a "SMILE" prompt halfway through the video capture', () => {
136
+ cy.get('smart-camera-web')
137
+ .shadow()
138
+ .find('camera-permission')
139
+ .shadow()
140
+ .find('#request-camera-access')
141
+ .click();
142
+
143
+ cy.get('smart-camera-web')
144
+ .shadow()
145
+ .find('camera-permission')
146
+ .should('not.be.visible');
147
+
148
+ cy.get('smart-camera-web')
149
+ .shadow()
150
+ .find('selfie-capture')
151
+ .should('be.visible');
152
+ cy.get('smart-camera-web')
153
+ .shadow()
154
+ .find('selfie-capture')
155
+ .shadow()
156
+ .should('contain.text', 'Take a Selfie');
157
+ cy.get('smart-camera-web')
158
+ .shadow()
159
+ .find('selfie-capture')
160
+ .shadow()
161
+ .find('#start-image-capture')
162
+ .click();
163
+ cy.get('smart-camera-web')
164
+ .shadow()
165
+ .find('selfie-capture')
166
+ .shadow()
167
+ .find('#smile-cta')
168
+ .should('be.visible');
169
+
170
+ cy.wait(5000);
171
+
172
+ cy.get('smart-camera-web')
173
+ .shadow()
174
+ .find('selfie-capture')
175
+ .shadow()
176
+ .find('#smile-cta')
177
+ .should('not.be.visible');
178
+ });
179
+
180
+ it('should switch from the review screen back to the selfie capture screen on clicking "Re-take selfie"', () => {
181
+ cy.clock();
182
+ cy.get('smart-camera-web')
183
+ .shadow()
184
+ .find('camera-permission')
185
+ .shadow()
186
+ .find('#request-camera-access')
187
+ .click();
188
+
189
+ cy.get('smart-camera-web')
190
+ .shadow()
191
+ .find('camera-permission')
192
+ .should('not.be.visible');
193
+
194
+ cy.get('smart-camera-web')
195
+ .shadow()
196
+ .find('selfie-capture')
197
+ .should('be.visible');
198
+ cy.get('smart-camera-web')
199
+ .shadow()
200
+ .find('selfie-capture')
201
+ .shadow()
202
+ .should('contain.text', 'Take a Selfie');
203
+ cy.get('smart-camera-web')
204
+ .shadow()
205
+ .find('selfie-capture')
206
+ .shadow()
207
+ .find('#start-image-capture')
208
+ .click();
209
+
210
+ cy.tick(8000);
211
+
212
+ cy.get('smart-camera-web')
213
+ .shadow()
214
+ .find('selfie-capture')
215
+ .shadow()
216
+ .should('not.be.visible');
217
+
218
+ cy.get('smart-camera-web')
219
+ .shadow()
220
+ .find('selfie-capture-review')
221
+ .should('be.visible');
222
+
223
+ cy.get('smart-camera-web')
224
+ .shadow()
225
+ .find('selfie-capture-review')
226
+ .shadow()
227
+ .find('#re-capture-image')
228
+ .click();
229
+
230
+ cy.get('smart-camera-web')
231
+ .shadow()
232
+ .find('selfie-capture-review')
233
+ .shadow()
234
+ .should('not.be.visible');
235
+
236
+ cy.get('smart-camera-web')
237
+ .shadow()
238
+ .find('selfie-capture')
239
+ .should('be.visible');
240
+ });
241
+
242
+ it('should switch from the camera screen to selfie review screen on clicking "Yes, use this"', () => {
243
+ cy.clock();
244
+ cy.get('smart-camera-web')
245
+ .shadow()
246
+ .find('camera-permission')
247
+ .shadow()
248
+ .find('#request-camera-access')
249
+ .click();
250
+
251
+ cy.get('smart-camera-web')
252
+ .shadow()
253
+ .find('camera-permission')
254
+ .should('not.be.visible');
255
+
256
+ cy.get('smart-camera-web')
257
+ .shadow()
258
+ .find('selfie-capture')
259
+ .should('be.visible');
260
+ cy.get('smart-camera-web')
261
+ .shadow()
262
+ .find('selfie-capture')
263
+ .shadow()
264
+ .should('contain.text', 'Take a Selfie');
265
+ cy.get('smart-camera-web')
266
+ .shadow()
267
+ .find('selfie-capture')
268
+ .shadow()
269
+ .find('#start-image-capture')
270
+ .click();
271
+
272
+ cy.tick(8000);
273
+
274
+ cy.get('smart-camera-web')
275
+ .shadow()
276
+ .find('selfie-capture')
277
+ .shadow()
278
+ .should('not.be.visible');
279
+
280
+ cy.get('smart-camera-web')
281
+ .shadow()
282
+ .find('selfie-capture-review')
283
+ .should('be.visible');
284
+
285
+ cy.get('smart-camera-web')
286
+ .shadow()
287
+ .find('selfie-capture-review')
288
+ .shadow()
289
+ .find('#select-id-image')
290
+ .click();
291
+
292
+ cy.get('smart-camera-web')
293
+ .shadow()
294
+ .find('selfie-capture-review')
295
+ .shadow()
296
+ .should('not.be.visible');
297
+ });
298
+
299
+ it('should switch to request screen when "Rest"', () => {
300
+ cy.get('smart-camera-web').then((element) => {
301
+ element[0].reset();
302
+ });
303
+
304
+ cy.get('smart-camera-web')
305
+ .shadow()
306
+ .find('camera-permission')
307
+ .shadow()
308
+ .find('#request-camera-access')
309
+ .click();
310
+
311
+ cy.get('smart-camera-web')
312
+ .shadow()
313
+ .find('camera-permission')
314
+ .should('not.be.visible');
315
+
316
+ cy.get('smart-camera-web')
317
+ .shadow()
318
+ .find('selfie-capture')
319
+ .should('be.visible');
320
+
321
+ cy.get('smart-camera-web').then((element) => {
322
+ element[0].reset();
323
+ });
324
+
325
+ cy.get('smart-camera-web')
326
+ .shadow()
327
+ .find('selfie-capture')
328
+ .should('not.be.visible');
329
+ cy.get('smart-camera-web')
330
+ .shadow()
331
+ .find('camera-permission')
332
+ .should('be.visible');
333
+ });
334
+ });
@@ -0,0 +1,309 @@
1
+ context('SmartCameraWeb', () => {
2
+ beforeEach(() => {
3
+ cy.visit('/smart-camera-web');
4
+ });
5
+
6
+ it('should start from the instructions screen', () => {
7
+ cy.get('smart-camera-web')
8
+ .shadow()
9
+ .find('selfie-capture-instructions')
10
+ .should('be.visible');
11
+ cy.get('smart-camera-web')
12
+ .shadow()
13
+ .find('selfie-capture-instructions')
14
+ .shadow()
15
+ .should('contain.text', "Next, we'll take a quick selfie");
16
+ cy.get('smart-camera-web')
17
+ .shadow()
18
+ .find('selfie-capture-instructions')
19
+ .shadow()
20
+ .find('#allow')
21
+ .click();
22
+ });
23
+
24
+ it('should switch from the instruction screen to the camera screen on clicking "Allow"', () => {
25
+ cy.get('smart-camera-web')
26
+ .shadow()
27
+ .find('selfie-capture-instructions')
28
+ .shadow()
29
+ .find('#allow')
30
+ .click();
31
+
32
+ cy.get('smart-camera-web')
33
+ .shadow()
34
+ .find('selfie-capture-instructions')
35
+ .should('not.be.visible');
36
+
37
+ cy.get('smart-camera-web')
38
+ .shadow()
39
+ .find('selfie-capture')
40
+ .should('be.visible');
41
+ cy.get('smart-camera-web')
42
+ .shadow()
43
+ .find('selfie-capture')
44
+ .shadow()
45
+ .should('contain.text', 'Take a Selfie');
46
+ cy.get('smart-camera-web')
47
+ .shadow()
48
+ .find('selfie-capture')
49
+ .shadow()
50
+ .find('#start-image-capture')
51
+ .click();
52
+
53
+ cy.wait(8000);
54
+
55
+ cy.get('smart-camera-web')
56
+ .shadow()
57
+ .find('selfie-capture')
58
+ .shadow()
59
+ .should('not.be.visible');
60
+
61
+ cy.get('smart-camera-web')
62
+ .shadow()
63
+ .find('selfie-capture-review')
64
+ .should('be.visible');
65
+ });
66
+
67
+ it('should have a timer for the capture', () => {
68
+ cy.get('smart-camera-web')
69
+ .shadow()
70
+ .find('selfie-capture-instructions')
71
+ .shadow()
72
+ .find('#allow')
73
+ .click();
74
+
75
+ cy.get('smart-camera-web')
76
+ .shadow()
77
+ .find('selfie-capture-instructions')
78
+ .should('not.be.visible');
79
+
80
+ cy.get('smart-camera-web')
81
+ .shadow()
82
+ .find('selfie-capture')
83
+ .should('be.visible');
84
+ cy.get('smart-camera-web')
85
+ .shadow()
86
+ .find('selfie-capture')
87
+ .shadow()
88
+ .should('contain.text', 'Take a Selfie');
89
+ cy.get('smart-camera-web')
90
+ .shadow()
91
+ .find('selfie-capture')
92
+ .shadow()
93
+ .find('#start-image-capture')
94
+ .click();
95
+
96
+ cy.wait(8000);
97
+
98
+ cy.get('smart-camera-web')
99
+ .shadow()
100
+ .find('selfie-capture')
101
+ .shadow()
102
+ .should('not.be.visible');
103
+
104
+ cy.get('smart-camera-web')
105
+ .shadow()
106
+ .find('selfie-capture-review')
107
+ .should('be.visible');
108
+ });
109
+
110
+ it('should show a "SMILE" prompt halfway through the video capture', () => {
111
+ cy.get('smart-camera-web')
112
+ .shadow()
113
+ .find('selfie-capture-instructions')
114
+ .shadow()
115
+ .find('#allow')
116
+ .click();
117
+
118
+ cy.get('smart-camera-web')
119
+ .shadow()
120
+ .find('selfie-capture-instructions')
121
+ .should('not.be.visible');
122
+
123
+ cy.get('smart-camera-web')
124
+ .shadow()
125
+ .find('selfie-capture')
126
+ .should('be.visible');
127
+ cy.get('smart-camera-web')
128
+ .shadow()
129
+ .find('selfie-capture')
130
+ .shadow()
131
+ .should('contain.text', 'Take a Selfie');
132
+ cy.get('smart-camera-web')
133
+ .shadow()
134
+ .find('selfie-capture')
135
+ .shadow()
136
+ .find('#start-image-capture')
137
+ .click();
138
+ cy.get('smart-camera-web')
139
+ .shadow()
140
+ .find('selfie-capture')
141
+ .shadow()
142
+ .find('#smile-cta')
143
+ .should('be.visible');
144
+
145
+ cy.wait(5000);
146
+
147
+ cy.get('smart-camera-web')
148
+ .shadow()
149
+ .find('selfie-capture')
150
+ .shadow()
151
+ .find('#smile-cta')
152
+ .should('not.be.visible');
153
+ });
154
+
155
+ it('should switch from the review screen back to the selfie instruction screen on clicking "Re-take selfie"', () => {
156
+ cy.clock();
157
+ cy.get('smart-camera-web')
158
+ .shadow()
159
+ .find('selfie-capture-instructions')
160
+ .shadow()
161
+ .find('#allow')
162
+ .click();
163
+
164
+ cy.get('smart-camera-web')
165
+ .shadow()
166
+ .find('selfie-capture-instructions')
167
+ .should('not.be.visible');
168
+
169
+ cy.get('smart-camera-web')
170
+ .shadow()
171
+ .find('selfie-capture')
172
+ .should('be.visible');
173
+ cy.get('smart-camera-web')
174
+ .shadow()
175
+ .find('selfie-capture')
176
+ .shadow()
177
+ .should('contain.text', 'Take a Selfie');
178
+ cy.get('smart-camera-web')
179
+ .shadow()
180
+ .find('selfie-capture')
181
+ .shadow()
182
+ .find('#start-image-capture')
183
+ .click();
184
+
185
+ cy.tick(8000);
186
+
187
+ cy.get('smart-camera-web')
188
+ .shadow()
189
+ .find('selfie-capture')
190
+ .shadow()
191
+ .should('not.be.visible');
192
+
193
+ cy.get('smart-camera-web')
194
+ .shadow()
195
+ .find('selfie-capture-review')
196
+ .should('be.visible');
197
+
198
+ cy.get('smart-camera-web')
199
+ .shadow()
200
+ .find('selfie-capture-review')
201
+ .shadow()
202
+ .find('#re-capture-image')
203
+ .click();
204
+
205
+ cy.get('smart-camera-web')
206
+ .shadow()
207
+ .find('selfie-capture-review')
208
+ .shadow()
209
+ .should('not.be.visible');
210
+
211
+ cy.get('smart-camera-web')
212
+ .shadow()
213
+ .find('selfie-capture-instructions')
214
+ .should('be.visible');
215
+ });
216
+
217
+ it('should switch from the camera screen to selfie review screen on clicking "Yes, use this"', () => {
218
+ cy.clock();
219
+ cy.get('smart-camera-web')
220
+ .shadow()
221
+ .find('selfie-capture-instructions')
222
+ .shadow()
223
+ .find('#allow')
224
+ .click();
225
+
226
+ cy.get('smart-camera-web')
227
+ .shadow()
228
+ .find('selfie-capture-instructions')
229
+ .should('not.be.visible');
230
+
231
+ cy.get('smart-camera-web')
232
+ .shadow()
233
+ .find('selfie-capture')
234
+ .should('be.visible');
235
+ cy.get('smart-camera-web')
236
+ .shadow()
237
+ .find('selfie-capture')
238
+ .shadow()
239
+ .should('contain.text', 'Take a Selfie');
240
+ cy.get('smart-camera-web')
241
+ .shadow()
242
+ .find('selfie-capture')
243
+ .shadow()
244
+ .find('#start-image-capture')
245
+ .click();
246
+
247
+ cy.tick(8000);
248
+
249
+ cy.get('smart-camera-web')
250
+ .shadow()
251
+ .find('selfie-capture')
252
+ .shadow()
253
+ .should('not.be.visible');
254
+
255
+ cy.get('smart-camera-web')
256
+ .shadow()
257
+ .find('selfie-capture-review')
258
+ .should('be.visible');
259
+
260
+ cy.get('smart-camera-web')
261
+ .shadow()
262
+ .find('selfie-capture-review')
263
+ .shadow()
264
+ .find('#select-id-image')
265
+ .click();
266
+
267
+ cy.get('smart-camera-web')
268
+ .shadow()
269
+ .find('selfie-capture-review')
270
+ .shadow()
271
+ .should('not.be.visible');
272
+ });
273
+
274
+ it('should switch to request screen when "Rest"', () => {
275
+ cy.get('smart-camera-web').then((element) => {
276
+ element[0].reset();
277
+ });
278
+
279
+ cy.get('smart-camera-web')
280
+ .shadow()
281
+ .find('selfie-capture-instructions')
282
+ .shadow()
283
+ .find('#allow')
284
+ .click();
285
+
286
+ cy.get('smart-camera-web')
287
+ .shadow()
288
+ .find('selfie-capture-instructions')
289
+ .should('not.be.visible');
290
+
291
+ cy.get('smart-camera-web')
292
+ .shadow()
293
+ .find('selfie-capture')
294
+ .should('be.visible');
295
+
296
+ cy.get('smart-camera-web').then((element) => {
297
+ element[0].reset();
298
+ });
299
+
300
+ cy.get('smart-camera-web')
301
+ .shadow()
302
+ .find('selfie-capture')
303
+ .should('not.be.visible');
304
+ cy.get('smart-camera-web')
305
+ .shadow()
306
+ .find('selfie-capture-instructions')
307
+ .should('be.visible');
308
+ });
309
+ });
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "Using fixtures to represent data",
3
+ "email": "hello@cypress.io",
4
+ "body": "Fixtures are a great way to mock data for responses to routes"
5
+ }
@@ -0,0 +1,44 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
5
+ <style>
6
+ *,
7
+ *::before,
8
+ *::after {
9
+ box-sizing: border-box;
10
+ }
11
+
12
+ body {
13
+ max-width: 100%;
14
+ min-height: 100%;
15
+ }
16
+
17
+ smart-camera-web {
18
+ margin-left: auto;
19
+ margin-right: auto;
20
+ max-width: 40ch;
21
+ padding: 1rem;
22
+ width: auto;
23
+ }
24
+ </style>
25
+ </head>
26
+
27
+ <body>
28
+ <smart-camera-web
29
+ capture-id="back"
30
+ hide-attribution
31
+ disable-image-tests
32
+ document-capture-modes="camera,upload"
33
+ >
34
+ </smart-camera-web>
35
+
36
+ <script src="./js/components/smart-camera-web/src/SmartCameraWeb.js"></script>
37
+ <script>
38
+ const app = document.querySelector('smart-camera-web');
39
+ app.addEventListener('smart-camera-web.publish', async (e) => {
40
+ console.log(e.detail);
41
+ });
42
+ </script>
43
+ </body>
44
+ </html>