@@ -10,28 +10,34 @@ import { PRIVATE_PICKLIST_CATEGORY, PUBLIC_PICKLIST_CATEGORY } from './constants
1010
1111import { PicklistEditModal , PicklistEditModalProps } from './PicklistEditModal' ;
1212import { Picklist } from './models' ;
13+ import { waitFor } from '@testing-library/dom' ;
1314
1415describe ( 'PicklistEditModal' , ( ) => {
15- const queryModel = makeTestQueryModel ( new SchemaQuery ( 'test' , 'query' ) ) ;
16-
1716 function defaultProps ( ) : PicklistEditModalProps {
1817 return {
1918 onCancel : jest . fn ( ) ,
2019 onFinish : jest . fn ( ) ,
2120 } ;
2221 }
2322
24- function validateText ( expectedTitle : string , expectedFinishText : string ) : void {
23+ async function waitForLoaded ( ) {
24+ await waitFor ( ( ) => {
25+ expect ( document . querySelector ( '.fa-pulse' ) ) . not . toBeInTheDocument ( ) ;
26+ } ) ;
27+ }
28+
29+ async function validateText ( expectedTitle : string , expectedFinishText : string ) : Promise < void > {
30+ await waitForLoaded ( ) ;
2531 const title = document . querySelector ( '.modal-title' ) ;
2632 expect ( title . textContent ) . toBe ( expectedTitle ) ;
2733 const buttons = document . querySelectorAll ( '.modal-footer .btn' ) ;
2834 expect ( buttons ) . toHaveLength ( 2 ) ;
2935 expect ( buttons [ 1 ] . textContent ) . toBe ( expectedFinishText ) ;
3036 }
3137
32- test ( 'create empty picklist' , ( ) => {
33- renderWithAppContext ( < PicklistEditModal onCancel = { jest . fn ( ) } onFinish = { jest . fn ( ) } /> ) ;
34- validateText ( 'Create an Empty Picklist' , 'Create Picklist' ) ;
38+ test ( 'create empty picklist' , async ( ) => {
39+ renderWithAppContext ( < PicklistEditModal { ... defaultProps ( ) } /> ) ;
40+ await validateText ( 'Create an Empty Picklist' , 'Create Picklist' ) ;
3541
3642 const labels = document . querySelectorAll ( 'label' ) ;
3743 expect ( labels ) . toHaveLength ( 3 ) ;
@@ -45,46 +51,24 @@ describe('PicklistEditModal', () => {
4551 expect ( inputs [ 1 ] . checked ) . toBe ( false ) ;
4652 } ) ;
4753
48- test ( 'create picklist from multiple selections' , ( ) => {
49- renderWithAppContext (
50- < PicklistEditModal
51- { ...defaultProps ( ) }
52- queryModel = { queryModel . mutate ( { selections : new Set ( [ '1' , '2' ] ) } ) }
53- />
54- ) ;
55- validateText ( 'Create a New Picklist with the 2 Selected Samples' , 'Create Picklist' ) ;
56- } ) ;
57-
58- test ( 'create picklist from one selection' , ( ) => {
59- renderWithAppContext (
60- < PicklistEditModal { ...defaultProps ( ) } queryModel = { queryModel . mutate ( { selections : new Set ( [ '1' ] ) } ) } />
61- ) ;
62- validateText ( 'Create a New Picklist with the 1 Selected Sample' , 'Create Picklist' ) ;
63- } ) ;
64-
65- test ( 'create empty picklist from sampleIds' , ( ) => {
66- renderWithAppContext ( < PicklistEditModal { ...defaultProps ( ) } sampleIds = { [ ] } /> ) ;
67- validateText ( 'Create an Empty Picklist' , 'Create Picklist' ) ;
68- } ) ;
69-
70- test ( 'create picklist from one sampleId' , ( ) => {
71- renderWithAppContext ( < PicklistEditModal { ...defaultProps ( ) } sampleIds = { [ '1' ] } /> ) ;
72- validateText ( 'Create a New Picklist with This Sample' , 'Create Picklist' ) ;
54+ test ( 'create picklist from multiple selections' , async ( ) => {
55+ renderWithAppContext ( < PicklistEditModal { ...defaultProps ( ) } selectedRowIds = { [ '1' , '2' ] } /> ) ;
56+ await validateText ( 'Create a New Picklist with the 2 Selected Samples' , 'Create Picklist' ) ;
7357 } ) ;
7458
75- test ( 'create picklist from multiple sampleIds' , ( ) => {
76- renderWithAppContext ( < PicklistEditModal { ...defaultProps ( ) } sampleIds = { [ '1' , '2 '] } /> ) ;
77- validateText ( 'Create a New Picklist with These Samples ' , 'Create Picklist' ) ;
59+ test ( 'create picklist from one selection' , async ( ) => {
60+ renderWithAppContext ( < PicklistEditModal { ...defaultProps ( ) } selectedRowIds = { [ '1' ] } /> ) ;
61+ await validateText ( 'Create a New Picklist with This Sample ' , 'Create Picklist' ) ;
7862 } ) ;
7963
80- test ( 'Update private picklist' , ( ) => {
64+ test ( 'Update private picklist' , async ( ) => {
8165 const existingList = new Picklist ( {
8266 Category : PRIVATE_PICKLIST_CATEGORY ,
8367 name : 'Existing list' ,
8468 Description : 'My test description' ,
8569 } ) ;
8670 renderWithAppContext ( < PicklistEditModal { ...defaultProps ( ) } picklist = { existingList } /> ) ;
87- validateText ( 'Update Picklist Data' , 'Update Picklist' ) ;
71+ await validateText ( 'Update Picklist Data' , 'Update Picklist' ) ;
8872
8973 const labels = document . querySelectorAll ( 'label' ) ;
9074 expect ( labels ) . toHaveLength ( 3 ) ;
@@ -101,13 +85,14 @@ describe('PicklistEditModal', () => {
10185 expect ( textarea . value ) . toBe ( existingList . Description ) ;
10286 } ) ;
10387
104- test ( 'Update public picklist' , ( ) => {
88+ test ( 'Update public picklist' , async ( ) => {
10589 const existingList = new Picklist ( {
10690 Category : PUBLIC_PICKLIST_CATEGORY ,
10791 name : 'Existing list' ,
10892 Description : 'My test description' ,
10993 } ) ;
11094 renderWithAppContext ( < PicklistEditModal { ...defaultProps ( ) } picklist = { existingList } /> ) ;
95+ await waitForLoaded ( ) ;
11196 const inputs = document . querySelectorAll ( 'input' ) ;
11297 expect ( inputs ) . toHaveLength ( 2 ) ;
11398 expect ( inputs [ 1 ] . checked ) . toBe ( true ) ;
0 commit comments