foreman_snapshot_management 1.7.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/Rakefile +7 -2
  4. data/app/controllers/api/v2/snapshots_controller.rb +22 -6
  5. data/app/models/foreman_snapshot_management/proxmox_extensions.rb +1 -1
  6. data/app/models/foreman_snapshot_management/snapshot.rb +4 -0
  7. data/app/views/api/v2/snapshots/base.json.rabl +2 -0
  8. data/app/views/foreman_snapshot_management/snapshots/_index.html.erb +12 -80
  9. data/app/views/hosts/_snapshots_tab.html.erb +8 -0
  10. data/lib/foreman_snapshot_management/engine.rb +22 -21
  11. data/lib/foreman_snapshot_management/version.rb +1 -1
  12. data/lib/tasks/foreman_snapshot_management_tasks.rake +2 -2
  13. data/locale/de/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  14. data/locale/de/foreman_snapshot_management.po +52 -19
  15. data/locale/en/LC_MESSAGES/foreman_snapshot_management.mo +0 -0
  16. data/locale/en/foreman_snapshot_management.po +44 -11
  17. data/locale/foreman_snapshot_management.pot +87 -25
  18. data/package.json +46 -0
  19. data/test/controllers/api/v2/snapshots_test.rb +232 -109
  20. data/test/controllers/foreman_snapshot_management/snapshots_controller_test.rb +1 -1
  21. data/test/factories/proxmox_factory.rb +1 -1
  22. data/webpack/components/SnapshotManagement/SnapshotManagement.js +84 -0
  23. data/webpack/components/SnapshotManagement/SnapshotManagementActions.js +212 -0
  24. data/webpack/components/SnapshotManagement/SnapshotManagementConstants.js +9 -0
  25. data/webpack/components/SnapshotManagement/SnapshotManagementReducer.js +100 -0
  26. data/webpack/components/SnapshotManagement/SnapshotManagementSelectors.js +8 -0
  27. data/webpack/components/SnapshotManagement/__tests__/SnapshotManagementActions.test.js +123 -0
  28. data/webpack/components/SnapshotManagement/__tests__/SnapshotManagementReducer.test.js +157 -0
  29. data/webpack/components/SnapshotManagement/__tests__/__snapshots__/SnapshotManagementActions.test.js.snap +314 -0
  30. data/webpack/components/SnapshotManagement/__tests__/__snapshots__/SnapshotManagementReducer.test.js.snap +214 -0
  31. data/webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotForm.js +118 -0
  32. data/webpack/components/SnapshotManagement/components/SnapshotForm/SnapshotFormConstants.js +5 -0
  33. data/webpack/components/SnapshotManagement/components/SnapshotForm/__tests__/SnapshotForm.test.js +26 -0
  34. data/webpack/components/SnapshotManagement/components/SnapshotForm/__tests__/__snapshots__/SnapshotForm.test.js.snap +476 -0
  35. data/webpack/components/SnapshotManagement/components/SnapshotForm/index.js +19 -0
  36. data/webpack/components/SnapshotManagement/components/SnapshotForm/snapshotForm.scss +3 -0
  37. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/SnapshotFormModal.js +37 -0
  38. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/SnapshotFormModalConstants.js +1 -0
  39. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/__tests__/SnapshotFormModal.test.js +19 -0
  40. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/__tests__/__snapshots__/SnapshotFormModal.test.js.snap +19 -0
  41. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/index.js +12 -0
  42. data/webpack/components/SnapshotManagement/components/SnapshotFormModal/useSnapshotFormModal.js +7 -0
  43. data/webpack/components/SnapshotManagement/components/SnapshotList/SnapshotList.js +314 -0
  44. data/webpack/components/SnapshotManagement/components/SnapshotList/SnapshotListHelper.js +70 -0
  45. data/webpack/components/SnapshotManagement/components/SnapshotList/__tests__/SnapshotList.test.js +88 -0
  46. data/webpack/components/SnapshotManagement/components/SnapshotList/__tests__/__snapshots__/SnapshotList.test.js.snap +1081 -0
  47. data/webpack/components/SnapshotManagement/components/SnapshotList/snapshotList.scss +13 -0
  48. data/webpack/components/SnapshotManagement/index.js +33 -0
  49. data/webpack/components/SnapshotManagement/snapshotManagement.scss +5 -0
  50. data/webpack/global_index.js +7 -0
  51. data/webpack/global_test_setup.js +11 -0
  52. data/webpack/index.js +8 -0
  53. data/webpack/reducers.js +7 -0
  54. data/webpack/test_setup.js +17 -0
  55. metadata +39 -33
@@ -0,0 +1,88 @@
1
+ import {
2
+ testComponentSnapshotsWithFixtures,
3
+ // shallowRenderComponentWithFixtures,
4
+ } from 'react-redux-test-utils';
5
+ // import configureStore from 'redux-mock-store';
6
+
7
+ import SnapshotList from '../SnapshotList';
8
+
9
+ // const mockStore = configureStore([]);
10
+
11
+ const funcDummies = {
12
+ loadSnapshots: hostId => null,
13
+ deleteAction: hostId => null,
14
+ rollbackAction: hostId => null,
15
+ updateAction: hostId => null,
16
+ };
17
+ const host = {
18
+ id: 42,
19
+ name: 'deep.thought',
20
+ };
21
+ const testSnapshots = [
22
+ {
23
+ id: 'snapshot-15776',
24
+ name: 'test',
25
+ description: '123 testSnapshot',
26
+ created_at: '2021-01-19 15:03:47 UTC',
27
+ },
28
+ {
29
+ id: 'snapshot-17285',
30
+ name: 'Hello',
31
+ description: 'World\nHow are you?',
32
+ created_at: '2021-04-28 10:22:06 UTC',
33
+ },
34
+ ];
35
+ const fixtures = {
36
+ 'without optional Props': { host, ...funcDummies },
37
+ loading: { host, isLoading: true, ...funcDummies },
38
+ working: { host, isWorking: true, ...funcDummies },
39
+ error: {
40
+ host,
41
+ hasError: true,
42
+ error: { message: 'TEST' },
43
+ ...funcDummies,
44
+ },
45
+ 'snapshot list': { host, snapshots: testSnapshots, ...funcDummies },
46
+ 'without any permissions': {
47
+ host,
48
+ snapshots: testSnapshots,
49
+ canUpdate: false,
50
+ canRevert: false,
51
+ canDelete: false,
52
+ ...funcDummies,
53
+ },
54
+ 'without delete permission': {
55
+ host,
56
+ snapshots: testSnapshots,
57
+ canUpdate: true,
58
+ canRevert: true,
59
+ canDelete: false,
60
+ ...funcDummies,
61
+ },
62
+ 'without editableSnapshotName capability': {
63
+ host,
64
+ snapshots: testSnapshots,
65
+ capabilities: { editableSnapshotName: false },
66
+ ...funcDummies,
67
+ },
68
+ };
69
+
70
+ describe('SnapshotList', () => {
71
+ /*
72
+ let store;
73
+ let component;
74
+
75
+ beforeEach(() => {
76
+ store = mockStore({
77
+ myState: 'sample text',
78
+ });
79
+ component = renderer.create(
80
+ <Provider store={store}>
81
+ <SnapshotList />
82
+ </Provider>
83
+ );
84
+ });
85
+ */
86
+ describe('renders', () =>
87
+ testComponentSnapshotsWithFixtures(SnapshotList, fixtures));
88
+ });
@@ -0,0 +1,1081 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`SnapshotList renders error 1`] = `
4
+ <div>
5
+ <Table
6
+ bodyMessage={
7
+ <Loading
8
+ iconSize="xl"
9
+ showText={true}
10
+ textSize="sm"
11
+ />
12
+ }
13
+ caption="Snapshot List"
14
+ columns={
15
+ Array [
16
+ Object {
17
+ "cell": Object {
18
+ "formatters": Array [
19
+ [Function],
20
+ ],
21
+ "props": Object {},
22
+ },
23
+ "header": Object {
24
+ "formatters": Array [
25
+ [Function],
26
+ ],
27
+ "label": "Snapshot",
28
+ "props": Object {},
29
+ },
30
+ "property": "name",
31
+ },
32
+ Object {
33
+ "cell": Object {
34
+ "formatters": Array [
35
+ [Function],
36
+ ],
37
+ "props": Object {},
38
+ },
39
+ "header": Object {
40
+ "formatters": Array [
41
+ [Function],
42
+ ],
43
+ "label": "Description",
44
+ "props": Object {},
45
+ },
46
+ "property": "description",
47
+ },
48
+ ]
49
+ }
50
+ components={
51
+ Object {
52
+ "body": Object {
53
+ "cell": [Function],
54
+ "row": [Function],
55
+ },
56
+ }
57
+ }
58
+ inlineEdit={true}
59
+ rows={Array []}
60
+ >
61
+ <Header
62
+ key="header"
63
+ />
64
+ <TableBody
65
+ columns={
66
+ Array [
67
+ Object {
68
+ "cell": Object {
69
+ "formatters": Array [
70
+ [Function],
71
+ ],
72
+ "props": Object {},
73
+ },
74
+ "header": Object {
75
+ "formatters": Array [
76
+ [Function],
77
+ ],
78
+ "label": "Snapshot",
79
+ "props": Object {},
80
+ },
81
+ "property": "name",
82
+ },
83
+ Object {
84
+ "cell": Object {
85
+ "formatters": Array [
86
+ [Function],
87
+ ],
88
+ "props": Object {},
89
+ },
90
+ "header": Object {
91
+ "formatters": Array [
92
+ [Function],
93
+ ],
94
+ "label": "Description",
95
+ "props": Object {},
96
+ },
97
+ "property": "description",
98
+ },
99
+ ]
100
+ }
101
+ key="body"
102
+ message={
103
+ <Loading
104
+ iconSize="xl"
105
+ showText={true}
106
+ textSize="sm"
107
+ />
108
+ }
109
+ onRow={[Function]}
110
+ rowKey="id"
111
+ rows={Array []}
112
+ />
113
+ </Table>
114
+ </div>
115
+ `;
116
+
117
+ exports[`SnapshotList renders loading 1`] = `
118
+ <div>
119
+ <Table
120
+ bodyMessage={
121
+ <Loading
122
+ iconSize="xl"
123
+ showText={true}
124
+ textSize="sm"
125
+ />
126
+ }
127
+ caption="Snapshot List"
128
+ columns={
129
+ Array [
130
+ Object {
131
+ "cell": Object {
132
+ "formatters": Array [
133
+ [Function],
134
+ ],
135
+ "props": Object {},
136
+ },
137
+ "header": Object {
138
+ "formatters": Array [
139
+ [Function],
140
+ ],
141
+ "label": "Snapshot",
142
+ "props": Object {},
143
+ },
144
+ "property": "name",
145
+ },
146
+ Object {
147
+ "cell": Object {
148
+ "formatters": Array [
149
+ [Function],
150
+ ],
151
+ "props": Object {},
152
+ },
153
+ "header": Object {
154
+ "formatters": Array [
155
+ [Function],
156
+ ],
157
+ "label": "Description",
158
+ "props": Object {},
159
+ },
160
+ "property": "description",
161
+ },
162
+ ]
163
+ }
164
+ components={
165
+ Object {
166
+ "body": Object {
167
+ "cell": [Function],
168
+ "row": [Function],
169
+ },
170
+ }
171
+ }
172
+ inlineEdit={true}
173
+ rows={Array []}
174
+ >
175
+ <Header
176
+ key="header"
177
+ />
178
+ <TableBody
179
+ columns={
180
+ Array [
181
+ Object {
182
+ "cell": Object {
183
+ "formatters": Array [
184
+ [Function],
185
+ ],
186
+ "props": Object {},
187
+ },
188
+ "header": Object {
189
+ "formatters": Array [
190
+ [Function],
191
+ ],
192
+ "label": "Snapshot",
193
+ "props": Object {},
194
+ },
195
+ "property": "name",
196
+ },
197
+ Object {
198
+ "cell": Object {
199
+ "formatters": Array [
200
+ [Function],
201
+ ],
202
+ "props": Object {},
203
+ },
204
+ "header": Object {
205
+ "formatters": Array [
206
+ [Function],
207
+ ],
208
+ "label": "Description",
209
+ "props": Object {},
210
+ },
211
+ "property": "description",
212
+ },
213
+ ]
214
+ }
215
+ key="body"
216
+ message={
217
+ <Loading
218
+ iconSize="xl"
219
+ showText={true}
220
+ textSize="sm"
221
+ />
222
+ }
223
+ onRow={[Function]}
224
+ rowKey="id"
225
+ rows={Array []}
226
+ />
227
+ </Table>
228
+ </div>
229
+ `;
230
+
231
+ exports[`SnapshotList renders snapshot list 1`] = `
232
+ <div>
233
+ <Table
234
+ bodyMessage={
235
+ <Loading
236
+ iconSize="xl"
237
+ showText={true}
238
+ textSize="sm"
239
+ />
240
+ }
241
+ caption="Snapshot List"
242
+ columns={
243
+ Array [
244
+ Object {
245
+ "cell": Object {
246
+ "formatters": Array [
247
+ [Function],
248
+ ],
249
+ "props": Object {},
250
+ },
251
+ "header": Object {
252
+ "formatters": Array [
253
+ [Function],
254
+ ],
255
+ "label": "Snapshot",
256
+ "props": Object {},
257
+ },
258
+ "property": "name",
259
+ },
260
+ Object {
261
+ "cell": Object {
262
+ "formatters": Array [
263
+ [Function],
264
+ ],
265
+ "props": Object {},
266
+ },
267
+ "header": Object {
268
+ "formatters": Array [
269
+ [Function],
270
+ ],
271
+ "label": "Description",
272
+ "props": Object {},
273
+ },
274
+ "property": "description",
275
+ },
276
+ ]
277
+ }
278
+ components={
279
+ Object {
280
+ "body": Object {
281
+ "cell": [Function],
282
+ "row": [Function],
283
+ },
284
+ }
285
+ }
286
+ inlineEdit={true}
287
+ rows={
288
+ Array [
289
+ Object {
290
+ "created_at": "2021-01-19 15:03:47 UTC",
291
+ "description": "123 testSnapshot",
292
+ "id": "snapshot-15776",
293
+ "name": "test",
294
+ },
295
+ Object {
296
+ "created_at": "2021-04-28 10:22:06 UTC",
297
+ "description": "World
298
+ How are you?",
299
+ "id": "snapshot-17285",
300
+ "name": "Hello",
301
+ },
302
+ ]
303
+ }
304
+ >
305
+ <Header
306
+ key="header"
307
+ />
308
+ <TableBody
309
+ columns={
310
+ Array [
311
+ Object {
312
+ "cell": Object {
313
+ "formatters": Array [
314
+ [Function],
315
+ ],
316
+ "props": Object {},
317
+ },
318
+ "header": Object {
319
+ "formatters": Array [
320
+ [Function],
321
+ ],
322
+ "label": "Snapshot",
323
+ "props": Object {},
324
+ },
325
+ "property": "name",
326
+ },
327
+ Object {
328
+ "cell": Object {
329
+ "formatters": Array [
330
+ [Function],
331
+ ],
332
+ "props": Object {},
333
+ },
334
+ "header": Object {
335
+ "formatters": Array [
336
+ [Function],
337
+ ],
338
+ "label": "Description",
339
+ "props": Object {},
340
+ },
341
+ "property": "description",
342
+ },
343
+ ]
344
+ }
345
+ key="body"
346
+ message={
347
+ <Loading
348
+ iconSize="xl"
349
+ showText={true}
350
+ textSize="sm"
351
+ />
352
+ }
353
+ onRow={[Function]}
354
+ rowKey="id"
355
+ rows={
356
+ Array [
357
+ Object {
358
+ "created_at": "2021-01-19 15:03:47 UTC",
359
+ "description": "123 testSnapshot",
360
+ "id": "snapshot-15776",
361
+ "name": "test",
362
+ },
363
+ Object {
364
+ "created_at": "2021-04-28 10:22:06 UTC",
365
+ "description": "World
366
+ How are you?",
367
+ "id": "snapshot-17285",
368
+ "name": "Hello",
369
+ },
370
+ ]
371
+ }
372
+ />
373
+ </Table>
374
+ </div>
375
+ `;
376
+
377
+ exports[`SnapshotList renders without any permissions 1`] = `
378
+ <div>
379
+ <Table
380
+ bodyMessage={
381
+ <Loading
382
+ iconSize="xl"
383
+ showText={true}
384
+ textSize="sm"
385
+ />
386
+ }
387
+ caption="Snapshot List"
388
+ columns={
389
+ Array [
390
+ Object {
391
+ "cell": Object {
392
+ "formatters": Array [
393
+ [Function],
394
+ ],
395
+ "props": Object {},
396
+ },
397
+ "header": Object {
398
+ "formatters": Array [
399
+ [Function],
400
+ ],
401
+ "label": "Snapshot",
402
+ "props": Object {},
403
+ },
404
+ "property": "name",
405
+ },
406
+ Object {
407
+ "cell": Object {
408
+ "formatters": Array [
409
+ [Function],
410
+ ],
411
+ "props": Object {},
412
+ },
413
+ "header": Object {
414
+ "formatters": Array [
415
+ [Function],
416
+ ],
417
+ "label": "Description",
418
+ "props": Object {},
419
+ },
420
+ "property": "description",
421
+ },
422
+ ]
423
+ }
424
+ components={
425
+ Object {
426
+ "body": Object {
427
+ "cell": [Function],
428
+ "row": [Function],
429
+ },
430
+ }
431
+ }
432
+ inlineEdit={true}
433
+ rows={
434
+ Array [
435
+ Object {
436
+ "created_at": "2021-01-19 15:03:47 UTC",
437
+ "description": "123 testSnapshot",
438
+ "id": "snapshot-15776",
439
+ "name": "test",
440
+ },
441
+ Object {
442
+ "created_at": "2021-04-28 10:22:06 UTC",
443
+ "description": "World
444
+ How are you?",
445
+ "id": "snapshot-17285",
446
+ "name": "Hello",
447
+ },
448
+ ]
449
+ }
450
+ >
451
+ <Header
452
+ key="header"
453
+ />
454
+ <TableBody
455
+ columns={
456
+ Array [
457
+ Object {
458
+ "cell": Object {
459
+ "formatters": Array [
460
+ [Function],
461
+ ],
462
+ "props": Object {},
463
+ },
464
+ "header": Object {
465
+ "formatters": Array [
466
+ [Function],
467
+ ],
468
+ "label": "Snapshot",
469
+ "props": Object {},
470
+ },
471
+ "property": "name",
472
+ },
473
+ Object {
474
+ "cell": Object {
475
+ "formatters": Array [
476
+ [Function],
477
+ ],
478
+ "props": Object {},
479
+ },
480
+ "header": Object {
481
+ "formatters": Array [
482
+ [Function],
483
+ ],
484
+ "label": "Description",
485
+ "props": Object {},
486
+ },
487
+ "property": "description",
488
+ },
489
+ ]
490
+ }
491
+ key="body"
492
+ message={
493
+ <Loading
494
+ iconSize="xl"
495
+ showText={true}
496
+ textSize="sm"
497
+ />
498
+ }
499
+ onRow={[Function]}
500
+ rowKey="id"
501
+ rows={
502
+ Array [
503
+ Object {
504
+ "created_at": "2021-01-19 15:03:47 UTC",
505
+ "description": "123 testSnapshot",
506
+ "id": "snapshot-15776",
507
+ "name": "test",
508
+ },
509
+ Object {
510
+ "created_at": "2021-04-28 10:22:06 UTC",
511
+ "description": "World
512
+ How are you?",
513
+ "id": "snapshot-17285",
514
+ "name": "Hello",
515
+ },
516
+ ]
517
+ }
518
+ />
519
+ </Table>
520
+ </div>
521
+ `;
522
+
523
+ exports[`SnapshotList renders without delete permission 1`] = `
524
+ <div>
525
+ <Table
526
+ bodyMessage={
527
+ <Loading
528
+ iconSize="xl"
529
+ showText={true}
530
+ textSize="sm"
531
+ />
532
+ }
533
+ caption="Snapshot List"
534
+ columns={
535
+ Array [
536
+ Object {
537
+ "cell": Object {
538
+ "formatters": Array [
539
+ [Function],
540
+ [Function],
541
+ ],
542
+ "props": Object {},
543
+ },
544
+ "header": Object {
545
+ "formatters": Array [
546
+ [Function],
547
+ ],
548
+ "label": "Snapshot",
549
+ "props": Object {},
550
+ },
551
+ "property": "name",
552
+ },
553
+ Object {
554
+ "cell": Object {
555
+ "formatters": Array [
556
+ [Function],
557
+ [Function],
558
+ ],
559
+ "props": Object {},
560
+ },
561
+ "header": Object {
562
+ "formatters": Array [
563
+ [Function],
564
+ ],
565
+ "label": "Description",
566
+ "props": Object {},
567
+ },
568
+ "property": "description",
569
+ },
570
+ Object {
571
+ "cell": Object {
572
+ "formatters": Array [
573
+ [Function],
574
+ ],
575
+ "props": Object {},
576
+ },
577
+ "header": Object {
578
+ "formatters": Array [
579
+ [Function],
580
+ ],
581
+ "label": "Action",
582
+ "props": Object {
583
+ "className": "action-buttons",
584
+ },
585
+ },
586
+ "property": "",
587
+ },
588
+ ]
589
+ }
590
+ components={
591
+ Object {
592
+ "body": Object {
593
+ "cell": [Function],
594
+ "row": [Function],
595
+ },
596
+ }
597
+ }
598
+ inlineEdit={true}
599
+ rows={
600
+ Array [
601
+ Object {
602
+ "created_at": "2021-01-19 15:03:47 UTC",
603
+ "description": "123 testSnapshot",
604
+ "id": "snapshot-15776",
605
+ "name": "test",
606
+ },
607
+ Object {
608
+ "created_at": "2021-04-28 10:22:06 UTC",
609
+ "description": "World
610
+ How are you?",
611
+ "id": "snapshot-17285",
612
+ "name": "Hello",
613
+ },
614
+ ]
615
+ }
616
+ >
617
+ <Header
618
+ key="header"
619
+ />
620
+ <TableBody
621
+ columns={
622
+ Array [
623
+ Object {
624
+ "cell": Object {
625
+ "formatters": Array [
626
+ [Function],
627
+ [Function],
628
+ ],
629
+ "props": Object {},
630
+ },
631
+ "header": Object {
632
+ "formatters": Array [
633
+ [Function],
634
+ ],
635
+ "label": "Snapshot",
636
+ "props": Object {},
637
+ },
638
+ "property": "name",
639
+ },
640
+ Object {
641
+ "cell": Object {
642
+ "formatters": Array [
643
+ [Function],
644
+ [Function],
645
+ ],
646
+ "props": Object {},
647
+ },
648
+ "header": Object {
649
+ "formatters": Array [
650
+ [Function],
651
+ ],
652
+ "label": "Description",
653
+ "props": Object {},
654
+ },
655
+ "property": "description",
656
+ },
657
+ Object {
658
+ "cell": Object {
659
+ "formatters": Array [
660
+ [Function],
661
+ ],
662
+ "props": Object {},
663
+ },
664
+ "header": Object {
665
+ "formatters": Array [
666
+ [Function],
667
+ ],
668
+ "label": "Action",
669
+ "props": Object {
670
+ "className": "action-buttons",
671
+ },
672
+ },
673
+ "property": "",
674
+ },
675
+ ]
676
+ }
677
+ key="body"
678
+ message={
679
+ <Loading
680
+ iconSize="xl"
681
+ showText={true}
682
+ textSize="sm"
683
+ />
684
+ }
685
+ onRow={[Function]}
686
+ rowKey="id"
687
+ rows={
688
+ Array [
689
+ Object {
690
+ "created_at": "2021-01-19 15:03:47 UTC",
691
+ "description": "123 testSnapshot",
692
+ "id": "snapshot-15776",
693
+ "name": "test",
694
+ },
695
+ Object {
696
+ "created_at": "2021-04-28 10:22:06 UTC",
697
+ "description": "World
698
+ How are you?",
699
+ "id": "snapshot-17285",
700
+ "name": "Hello",
701
+ },
702
+ ]
703
+ }
704
+ />
705
+ </Table>
706
+ </div>
707
+ `;
708
+
709
+ exports[`SnapshotList renders without editableSnapshotName capability 1`] = `
710
+ <div>
711
+ <Table
712
+ bodyMessage={
713
+ <Loading
714
+ iconSize="xl"
715
+ showText={true}
716
+ textSize="sm"
717
+ />
718
+ }
719
+ caption="Snapshot List"
720
+ columns={
721
+ Array [
722
+ Object {
723
+ "cell": Object {
724
+ "formatters": Array [
725
+ [Function],
726
+ ],
727
+ "props": Object {},
728
+ },
729
+ "header": Object {
730
+ "formatters": Array [
731
+ [Function],
732
+ ],
733
+ "label": "Snapshot",
734
+ "props": Object {},
735
+ },
736
+ "property": "name",
737
+ },
738
+ Object {
739
+ "cell": Object {
740
+ "formatters": Array [
741
+ [Function],
742
+ ],
743
+ "props": Object {},
744
+ },
745
+ "header": Object {
746
+ "formatters": Array [
747
+ [Function],
748
+ ],
749
+ "label": "Description",
750
+ "props": Object {},
751
+ },
752
+ "property": "description",
753
+ },
754
+ ]
755
+ }
756
+ components={
757
+ Object {
758
+ "body": Object {
759
+ "cell": [Function],
760
+ "row": [Function],
761
+ },
762
+ }
763
+ }
764
+ inlineEdit={true}
765
+ rows={
766
+ Array [
767
+ Object {
768
+ "created_at": "2021-01-19 15:03:47 UTC",
769
+ "description": "123 testSnapshot",
770
+ "id": "snapshot-15776",
771
+ "name": "test",
772
+ },
773
+ Object {
774
+ "created_at": "2021-04-28 10:22:06 UTC",
775
+ "description": "World
776
+ How are you?",
777
+ "id": "snapshot-17285",
778
+ "name": "Hello",
779
+ },
780
+ ]
781
+ }
782
+ >
783
+ <Header
784
+ key="header"
785
+ />
786
+ <TableBody
787
+ columns={
788
+ Array [
789
+ Object {
790
+ "cell": Object {
791
+ "formatters": Array [
792
+ [Function],
793
+ ],
794
+ "props": Object {},
795
+ },
796
+ "header": Object {
797
+ "formatters": Array [
798
+ [Function],
799
+ ],
800
+ "label": "Snapshot",
801
+ "props": Object {},
802
+ },
803
+ "property": "name",
804
+ },
805
+ Object {
806
+ "cell": Object {
807
+ "formatters": Array [
808
+ [Function],
809
+ ],
810
+ "props": Object {},
811
+ },
812
+ "header": Object {
813
+ "formatters": Array [
814
+ [Function],
815
+ ],
816
+ "label": "Description",
817
+ "props": Object {},
818
+ },
819
+ "property": "description",
820
+ },
821
+ ]
822
+ }
823
+ key="body"
824
+ message={
825
+ <Loading
826
+ iconSize="xl"
827
+ showText={true}
828
+ textSize="sm"
829
+ />
830
+ }
831
+ onRow={[Function]}
832
+ rowKey="id"
833
+ rows={
834
+ Array [
835
+ Object {
836
+ "created_at": "2021-01-19 15:03:47 UTC",
837
+ "description": "123 testSnapshot",
838
+ "id": "snapshot-15776",
839
+ "name": "test",
840
+ },
841
+ Object {
842
+ "created_at": "2021-04-28 10:22:06 UTC",
843
+ "description": "World
844
+ How are you?",
845
+ "id": "snapshot-17285",
846
+ "name": "Hello",
847
+ },
848
+ ]
849
+ }
850
+ />
851
+ </Table>
852
+ </div>
853
+ `;
854
+
855
+ exports[`SnapshotList renders without optional Props 1`] = `
856
+ <div>
857
+ <Table
858
+ bodyMessage={
859
+ <Loading
860
+ iconSize="xl"
861
+ showText={true}
862
+ textSize="sm"
863
+ />
864
+ }
865
+ caption="Snapshot List"
866
+ columns={
867
+ Array [
868
+ Object {
869
+ "cell": Object {
870
+ "formatters": Array [
871
+ [Function],
872
+ ],
873
+ "props": Object {},
874
+ },
875
+ "header": Object {
876
+ "formatters": Array [
877
+ [Function],
878
+ ],
879
+ "label": "Snapshot",
880
+ "props": Object {},
881
+ },
882
+ "property": "name",
883
+ },
884
+ Object {
885
+ "cell": Object {
886
+ "formatters": Array [
887
+ [Function],
888
+ ],
889
+ "props": Object {},
890
+ },
891
+ "header": Object {
892
+ "formatters": Array [
893
+ [Function],
894
+ ],
895
+ "label": "Description",
896
+ "props": Object {},
897
+ },
898
+ "property": "description",
899
+ },
900
+ ]
901
+ }
902
+ components={
903
+ Object {
904
+ "body": Object {
905
+ "cell": [Function],
906
+ "row": [Function],
907
+ },
908
+ }
909
+ }
910
+ inlineEdit={true}
911
+ rows={Array []}
912
+ >
913
+ <Header
914
+ key="header"
915
+ />
916
+ <TableBody
917
+ columns={
918
+ Array [
919
+ Object {
920
+ "cell": Object {
921
+ "formatters": Array [
922
+ [Function],
923
+ ],
924
+ "props": Object {},
925
+ },
926
+ "header": Object {
927
+ "formatters": Array [
928
+ [Function],
929
+ ],
930
+ "label": "Snapshot",
931
+ "props": Object {},
932
+ },
933
+ "property": "name",
934
+ },
935
+ Object {
936
+ "cell": Object {
937
+ "formatters": Array [
938
+ [Function],
939
+ ],
940
+ "props": Object {},
941
+ },
942
+ "header": Object {
943
+ "formatters": Array [
944
+ [Function],
945
+ ],
946
+ "label": "Description",
947
+ "props": Object {},
948
+ },
949
+ "property": "description",
950
+ },
951
+ ]
952
+ }
953
+ key="body"
954
+ message={
955
+ <Loading
956
+ iconSize="xl"
957
+ showText={true}
958
+ textSize="sm"
959
+ />
960
+ }
961
+ onRow={[Function]}
962
+ rowKey="id"
963
+ rows={Array []}
964
+ />
965
+ </Table>
966
+ </div>
967
+ `;
968
+
969
+ exports[`SnapshotList renders working 1`] = `
970
+ <div>
971
+ <Table
972
+ bodyMessage={
973
+ <Loading
974
+ iconSize="xl"
975
+ showText={true}
976
+ textSize="sm"
977
+ />
978
+ }
979
+ caption="Snapshot List"
980
+ columns={
981
+ Array [
982
+ Object {
983
+ "cell": Object {
984
+ "formatters": Array [
985
+ [Function],
986
+ ],
987
+ "props": Object {},
988
+ },
989
+ "header": Object {
990
+ "formatters": Array [
991
+ [Function],
992
+ ],
993
+ "label": "Snapshot",
994
+ "props": Object {},
995
+ },
996
+ "property": "name",
997
+ },
998
+ Object {
999
+ "cell": Object {
1000
+ "formatters": Array [
1001
+ [Function],
1002
+ ],
1003
+ "props": Object {},
1004
+ },
1005
+ "header": Object {
1006
+ "formatters": Array [
1007
+ [Function],
1008
+ ],
1009
+ "label": "Description",
1010
+ "props": Object {},
1011
+ },
1012
+ "property": "description",
1013
+ },
1014
+ ]
1015
+ }
1016
+ components={
1017
+ Object {
1018
+ "body": Object {
1019
+ "cell": [Function],
1020
+ "row": [Function],
1021
+ },
1022
+ }
1023
+ }
1024
+ inlineEdit={true}
1025
+ rows={Array []}
1026
+ >
1027
+ <Header
1028
+ key="header"
1029
+ />
1030
+ <TableBody
1031
+ columns={
1032
+ Array [
1033
+ Object {
1034
+ "cell": Object {
1035
+ "formatters": Array [
1036
+ [Function],
1037
+ ],
1038
+ "props": Object {},
1039
+ },
1040
+ "header": Object {
1041
+ "formatters": Array [
1042
+ [Function],
1043
+ ],
1044
+ "label": "Snapshot",
1045
+ "props": Object {},
1046
+ },
1047
+ "property": "name",
1048
+ },
1049
+ Object {
1050
+ "cell": Object {
1051
+ "formatters": Array [
1052
+ [Function],
1053
+ ],
1054
+ "props": Object {},
1055
+ },
1056
+ "header": Object {
1057
+ "formatters": Array [
1058
+ [Function],
1059
+ ],
1060
+ "label": "Description",
1061
+ "props": Object {},
1062
+ },
1063
+ "property": "description",
1064
+ },
1065
+ ]
1066
+ }
1067
+ key="body"
1068
+ message={
1069
+ <Loading
1070
+ iconSize="xl"
1071
+ showText={true}
1072
+ textSize="sm"
1073
+ />
1074
+ }
1075
+ onRow={[Function]}
1076
+ rowKey="id"
1077
+ rows={Array []}
1078
+ />
1079
+ </Table>
1080
+ </div>
1081
+ `;