@@ -4,6 +4,7 @@ describe('django-hstore-widget', () => {
44 it ( 'renders' , async ( ) => {
55 const page = await newE2EPage ( ) ;
66 await page . setContent ( '<django-hstore-widget></django-hstore-widget>' ) ;
7+ await page . waitForChanges ( ) ;
78
89 const element = await page . find ( 'django-hstore-widget' ) ;
910 expect ( element ) . toHaveAttribute ( 'hydrated' ) ;
@@ -12,6 +13,10 @@ describe('django-hstore-widget', () => {
1213 it ( 'json and field render' , async ( ) => {
1314 const page = await newE2EPage ( ) ;
1415 await page . setContent ( `<django-hstore-widget json='{"hello": "world"}'></django-hstore-widget>` ) ;
16+ await page . waitForChanges ( ) ;
17+
18+ // Wait for async componentDidLoad parsing
19+ await page . waitForChanges ( ) ;
1520
1621 const form_element = await page . findAll ( 'div#json_items' ) ;
1722 expect ( form_element . length ) . toBe ( 1 ) ;
@@ -20,6 +25,7 @@ describe('django-hstore-widget', () => {
2025 it ( 'error from django backend' , async ( ) => {
2126 const page = await newE2EPage ( ) ;
2227 await page . setContent ( `<django-hstore-widget json='{"hello": "wor"ld"}'></django-hstore-widget>` ) ;
28+ await page . waitForChanges ( ) ;
2329
2430 const element = await page . find ( 'div#mount_error' ) ;
2531 expect ( element ) . not . toBeNull ( ) ;
@@ -28,21 +34,25 @@ describe('django-hstore-widget', () => {
2834 it ( 'test input textbox component' , async ( ) => {
2935 const page = await newE2EPage ( ) ;
3036 await page . setContent ( `<django-hstore-widget json='{"hello": "world"}'></django-hstore-widget>` ) ;
37+ await page . waitForChanges ( ) ;
3138
32- const open_textbox_toggle = await page . find ( 'div#textarea_open_close_toggle' ) ;
39+ const open_textbox_toggle = await page . find ( 'div#textarea_open_close_toggle button' ) ;
40+ expect ( open_textbox_toggle ) . not . toBeNull ( ) ;
3341 await open_textbox_toggle . click ( ) ;
42+ await page . waitForChanges ( ) ;
3443
3544 const textbox_element = await page . find ( 'textarea' ) ;
3645 expect ( textbox_element ) . not . toBeNull ( ) ;
37- expect ( textbox_element ) . not . toHaveClasses ( [ 'hidden' , 'invisible' ] ) ;
46+ expect ( textbox_element ) . not . toHaveClass ( 'hidden' ) ;
3847
3948 await page . $eval ( 'textarea' , el => {
40- el . value = '' ;
49+ ( el as HTMLTextAreaElement ) . value = '' ;
4150 } ) ;
51+ await textbox_element . type ( `{"my":"World'"}` ) ;
52+ await page . waitForChanges ( ) ;
4253
43- await textbox_element . type ( `{"my":"World'}` ) ;
4454 const value = await textbox_element . getProperty ( 'value' ) ;
45- expect ( value ) . toBe ( `{"my":"World'}` ) ;
55+ expect ( value ) . toBe ( `{"my":"World'" }` ) ;
4656
4757 const textbox_error = await page . find ( '#textbox_error' ) ;
4858 expect ( textbox_error ) . not . toBeNull ( ) ;
@@ -51,9 +61,12 @@ describe('django-hstore-widget', () => {
5161 it ( 'test delete click' , async ( ) => {
5262 const page = await newE2EPage ( ) ;
5363 await page . setContent ( `<django-hstore-widget json='{"hello": "world"}'></django-hstore-widget>` ) ;
64+ await page . waitForChanges ( ) ;
5465
5566 const delete_button = await page . find ( 'div#delete-button' ) ;
67+ expect ( delete_button ) . not . toBeNull ( ) ;
5668 await delete_button . click ( ) ;
69+ await page . waitForChanges ( ) ;
5770
5871 const form_element = await page . findAll ( 'div#json_items' ) ;
5972 expect ( form_element . length ) . toBe ( 0 ) ;
@@ -62,9 +75,12 @@ describe('django-hstore-widget', () => {
6275 it ( 'test add click' , async ( ) => {
6376 const page = await newE2EPage ( ) ;
6477 await page . setContent ( `<django-hstore-widget json='{"hello": "world"}'></django-hstore-widget>` ) ;
78+ await page . waitForChanges ( ) ;
6579
66- const delete_button = await page . find ( 'button#add-button' ) ;
67- await delete_button . click ( ) ;
80+ const add_button = await page . find ( 'button#add-button' ) ;
81+ expect ( add_button ) . not . toBeNull ( ) ;
82+ await add_button . click ( ) ;
83+ await page . waitForChanges ( ) ;
6884
6985 const form_element = await page . findAll ( 'div#json_items' ) ;
7086 expect ( form_element . length ) . toBe ( 2 ) ;
@@ -73,9 +89,11 @@ describe('django-hstore-widget', () => {
7389 it ( "test all buttons should have type='button'" , async ( ) => {
7490 const page = await newE2EPage ( ) ;
7591 await page . setContent ( `<django-hstore-widget json='{"hello": "world"}'></django-hstore-widget>` ) ;
92+ await page . waitForChanges ( ) ;
7693
7794 const buttons = await page . findAll ( 'button' ) ;
78- expect ( buttons . length ) . not . toBeNull ( ) ;
95+ expect ( buttons . length ) . not . toBe ( 0 ) ;
96+
7997 for ( const button of buttons ) {
8098 const type = await button . getAttribute ( 'type' ) ;
8199 expect ( type ) . toBe ( 'button' ) ;
0 commit comments