@@ -11,44 +11,62 @@ import type { DataModelingStore } from '../../test/setup-store';
1111import { DataModelStorageServiceProvider } from '../provider' ;
1212import type { MongoDBDataModelDescription } from '../services/data-model-storage' ;
1313
14- describe ( 'SavedDiagramsList' , function ( ) {
15- const renderSavedDiagramsList = ( {
16- loadAll = ( ) => Promise . resolve ( [ ] ) ,
17- } : {
18- loadAll ?: ( ) => Promise < MongoDBDataModelDescription [ ] > ;
19- } = { } ) => {
20- const mockDataModelStorage = {
21- status : 'READY' ,
22- error : null ,
23- items : [ ] ,
24- save : ( ) => {
25- return Promise . resolve ( false ) ;
26- } ,
27- delete : ( ) => {
28- return Promise . resolve ( false ) ;
29- } ,
30- loadAll,
31- load : ( ) => {
32- return Promise . resolve ( null ) ;
33- } ,
34- } ;
35- return renderWithStore (
36- < DataModelStorageServiceProvider storage = { mockDataModelStorage } >
37- < SavedDiagramsList />
38- </ DataModelStorageServiceProvider > ,
39- {
40- services : {
41- dataModelStorage : mockDataModelStorage ,
42- } ,
43- }
44- ) ;
14+ const storageItems : MongoDBDataModelDescription [ ] = [
15+ {
16+ id : '1' ,
17+ name : 'One' ,
18+ edits : [ ] ,
19+ } ,
20+ {
21+ id : '2' ,
22+ name : 'Two' ,
23+ edits : [ ] ,
24+ } ,
25+ {
26+ id : '3' ,
27+ name : 'Three' ,
28+ edits : [ ] ,
29+ } ,
30+ ] ;
31+
32+ const renderSavedDiagramsList = ( {
33+ items = storageItems ,
34+ } : {
35+ items ?: MongoDBDataModelDescription [ ] ;
36+ } = { } ) => {
37+ const mockDataModelStorage = {
38+ status : 'READY' ,
39+ error : null ,
40+ items,
41+ save : ( ) => {
42+ return Promise . resolve ( false ) ;
43+ } ,
44+ delete : ( ) => {
45+ return Promise . resolve ( false ) ;
46+ } ,
47+ loadAll : ( ) => Promise . resolve ( items ) ,
48+ load : ( id : string ) => {
49+ return Promise . resolve ( items . find ( ( x ) => x . id === id ) ) ;
50+ } ,
4551 } ;
52+ return renderWithStore (
53+ < DataModelStorageServiceProvider storage = { mockDataModelStorage } >
54+ < SavedDiagramsList />
55+ </ DataModelStorageServiceProvider > ,
56+ {
57+ services : {
58+ dataModelStorage : mockDataModelStorage ,
59+ } ,
60+ }
61+ ) ;
62+ } ;
4663
64+ describe ( 'SavedDiagramsList' , function ( ) {
4765 context ( 'when there are no saved diagrams' , function ( ) {
4866 let store : DataModelingStore ;
4967
5068 beforeEach ( async function ( ) {
51- const result = renderSavedDiagramsList ( ) ;
69+ const result = renderSavedDiagramsList ( { items : [ ] } ) ;
5270 store = result . store ;
5371
5472 // wait till the empty list is loaded
@@ -78,15 +96,7 @@ describe('SavedDiagramsList', function () {
7896 let store : DataModelingStore ;
7997
8098 beforeEach ( async function ( ) {
81- const result = renderSavedDiagramsList ( {
82- loadAll : ( ) =>
83- Promise . resolve ( [
84- {
85- id : 'diagram-1' ,
86- name : 'Diagram 1' ,
87- } as MongoDBDataModelDescription ,
88- ] ) ,
89- } ) ;
99+ const result = renderSavedDiagramsList ( ) ;
90100 store = result . store ;
91101
92102 // wait till the list is loaded
@@ -95,8 +105,12 @@ describe('SavedDiagramsList', function () {
95105 } ) ;
96106 } ) ;
97107
98- it ( 'shows the list of diagrams' , function ( ) {
99- expect ( screen . getByText ( 'Diagram 1' ) ) . to . exist ;
108+ it ( 'shows the list of diagrams' , async function ( ) {
109+ await waitFor ( ( ) => {
110+ expect ( screen . getByText ( 'One' ) ) . to . exist ;
111+ expect ( screen . getByText ( 'Two' ) ) . to . exist ;
112+ expect ( screen . getByText ( 'Three' ) ) . to . exist ;
113+ } ) ;
100114 } ) ;
101115
102116 it ( 'allows to add another diagram' , function ( ) {
0 commit comments