@@ -24,7 +24,7 @@ const triggerOperatorToLabel = {
2424} ;
2525
2626const setupTriggerEditorFromSource = ( trigger ) => {
27- cy . get ( '#triggerSource' ) . scrollIntoView ( ) . paste ( JSON . stringify ( trigger ) ) ;
27+ cy . pasteJsonIntoEditor ( { json_object : trigger } ) ;
2828 cy . wait ( 1500 ) ;
2929} ;
3030
@@ -81,33 +81,31 @@ const checkTriggerEditorUIValues = (trigger) => {
8181 . contains ( 'Any interface' )
8282 . should ( 'be.selected' ) ;
8383 } else {
84- cy . get ( '#triggerInterfaceName' )
85- . scrollIntoView ( )
86- . should ( 'be.visible' )
87- . contains ( iface )
88- . should ( 'be.selected' ) ;
89- cy . get ( '#triggerInterfaceMajor' )
90- . scrollIntoView ( )
91- . should ( 'be.visible' )
92- . contains ( simpleTrigger . interface_major )
93- . should ( 'be.selected' ) ;
94- cy . get ( '#triggerPath' )
84+ cy . window ( ) . then ( ( win ) => {
85+ if ( win . monaco && win . monaco . editor ) {
86+ const editor = win . monaco . editor . getModels ( ) [ 0 ] ;
87+ const editorContent = editor . getValue ( ) ;
88+ const editorJson = JSON . parse ( editorContent ) ;
89+ expect ( editorJson . simple_triggers [ 0 ] . interface_name ) . to . equal ( iface ) ;
90+ expect ( editorJson . simple_triggers [ 0 ] . interface_major ) . to . equal ( simpleTrigger . interface_major ) ;
91+ expect ( editorJson . simple_triggers [ 0 ] . match_path ) . to . equal ( simpleTrigger . match_path ) ;
92+ } else {
93+ throw new Error ( 'Monaco Editor instance is not available' ) ;
94+ }
95+ } ) ;
96+ }
97+ if ( simpleTrigger . value_match_operator ) {
98+ cy . get ( '#triggerOperator' )
99+ . scrollIntoView ( )
100+ . should ( 'be.visible' )
101+ . contains ( triggerOperatorToLabel [ simpleTrigger . value_match_operator ] )
102+ . should ( 'be.selected' ) ;
103+ }
104+ if ( simpleTrigger . known_value != null ) {
105+ cy . get ( '#triggerKnownValue' )
95106 . scrollIntoView ( )
96107 . should ( 'be.visible' )
97- . and ( 'have.value' , simpleTrigger . match_path ) ;
98- if ( simpleTrigger . value_match_operator ) {
99- cy . get ( '#triggerOperator' )
100- . scrollIntoView ( )
101- . should ( 'be.visible' )
102- . contains ( triggerOperatorToLabel [ simpleTrigger . value_match_operator ] )
103- . should ( 'be.selected' ) ;
104- }
105- if ( simpleTrigger . known_value != null ) {
106- cy . get ( '#triggerKnownValue' )
107- . scrollIntoView ( )
108- . should ( 'be.visible' )
109- . and ( 'have.value' , simpleTrigger . known_value ) ;
110- }
108+ . and ( 'have.value' , simpleTrigger . known_value ) ;
111109 }
112110 }
113111
@@ -636,14 +634,16 @@ describe('Trigger builder tests', () => {
636634 } ) ;
637635 cy . get ( 'table tr' ) . contains ( 'X-Custom-Header' ) ;
638636 cy . get ( 'table tr' ) . contains ( 'Header value' ) ;
639- cy . get ( '#triggerSource' )
640- . invoke ( 'val' )
641- . should ( ( triggerSource ) => {
642- const trigger = JSON . parse ( triggerSource ) ;
637+ cy . window ( ) . then ( ( win ) => {
638+ if ( win . monaco && win . monaco . editor ) {
639+ const editor = win . monaco . editor . getModels ( ) [ 0 ] ;
640+ const editorContent = editor . getValue ( ) ;
641+ const trigger = JSON . parse ( editorContent ) ;
643642 expect ( trigger . action . http_static_headers ) . to . deep . eq ( {
644643 'X-Custom-Header' : 'Header value' ,
645644 } ) ;
646- } ) ;
645+ }
646+ } ) ;
647647
648648 // Edit http header
649649 cy . get ( 'table tr' ) . contains ( 'X-Custom-Header' ) . parents ( 'tr' ) . get ( 'i.fa-pencil-alt' ) . click ( ) ;
@@ -655,14 +655,16 @@ describe('Trigger builder tests', () => {
655655 cy . get ( 'button' ) . contains ( 'Update' ) . click ( ) ;
656656 } ) ;
657657 cy . get ( 'table tr' ) . contains ( 'Header new value' ) ;
658- cy . get ( '#triggerSource' )
659- . invoke ( 'val' )
660- . should ( ( triggerSource ) => {
661- const trigger = JSON . parse ( triggerSource ) ;
658+ cy . window ( ) . then ( ( win ) => {
659+ if ( win . monaco && win . monaco . editor ) {
660+ const editor = win . monaco . editor . getModels ( ) [ 0 ] ;
661+ const editorContent = editor . getValue ( ) ;
662+ const trigger = JSON . parse ( editorContent ) ;
662663 expect ( trigger . action . http_static_headers ) . to . deep . eq ( {
663664 'X-Custom-Header' : 'Header new value' ,
664665 } ) ;
665- } ) ;
666+ }
667+ } ) ;
666668
667669 // Delete http header
668670 cy . get ( 'table tr' ) . contains ( 'X-Custom-Header' ) . parents ( 'tr' ) . get ( 'i.fa-eraser' ) . click ( ) ;
@@ -671,13 +673,15 @@ describe('Trigger builder tests', () => {
671673 cy . get ( '.modal-body' ) . contains ( 'Delete custom header "X-Custom-Header"?' ) ;
672674 cy . get ( 'button' ) . contains ( 'Delete' ) . click ( ) ;
673675 } ) ;
674- cy . contains ( 'X-Custom-Header' ) . should ( 'not.exist' ) ;
675- cy . get ( '#triggerSource' )
676- . invoke ( 'val' )
677- . should ( ( triggerSource ) => {
678- const trigger = JSON . parse ( triggerSource ) ;
676+ cy . contains ( 'X-Custom-Header' ) . should ( 'not.exist' ) ;
677+ cy . window ( ) . then ( ( win ) => {
678+ if ( win . monaco && win . monaco . editor ) {
679+ const editor = win . monaco . editor . getModels ( ) [ 0 ] ;
680+ const editorContent = editor . getValue ( ) ;
681+ const trigger = JSON . parse ( editorContent ) ;
679682 expect ( trigger . action . http_static_headers || { } ) . to . deep . eq ( { } ) ;
680- } ) ;
683+ }
684+ } ) ;
681685 } ) ;
682686
683687 it ( 'can add, edit, remove AMQP headers' , ( ) => {
@@ -697,14 +701,16 @@ describe('Trigger builder tests', () => {
697701 } ) ;
698702 cy . get ( 'table tr' ) . contains ( 'X-Custom-Header' ) ;
699703 cy . get ( 'table tr' ) . contains ( 'Header value' ) ;
700- cy . get ( '#triggerSource' )
701- . invoke ( 'val' )
702- . should ( ( triggerSource ) => {
703- const trigger = JSON . parse ( triggerSource ) ;
704+ cy . window ( ) . then ( ( win ) => {
705+ if ( win . monaco && win . monaco . editor ) {
706+ const editor = win . monaco . editor . getModels ( ) [ 0 ] ;
707+ const editorContent = editor . getValue ( ) ;
708+ const trigger = JSON . parse ( editorContent ) ;
704709 expect ( trigger . action . amqp_static_headers ) . to . deep . eq ( {
705710 'X-Custom-Header' : 'Header value' ,
706711 } ) ;
707- } ) ;
712+ }
713+ } ) ;
708714
709715 // Edit amqp header
710716 cy . get ( 'table tr' ) . contains ( 'X-Custom-Header' ) . parents ( 'tr' ) . get ( 'i.fa-pencil-alt' ) . click ( ) ;
@@ -716,14 +722,16 @@ describe('Trigger builder tests', () => {
716722 cy . get ( 'button' ) . contains ( 'Update' ) . click ( ) ;
717723 } ) ;
718724 cy . get ( 'table tr' ) . contains ( 'Header new value' ) ;
719- cy . get ( '#triggerSource' )
720- . invoke ( 'val' )
721- . should ( ( triggerSource ) => {
722- const trigger = JSON . parse ( triggerSource ) ;
725+ cy . window ( ) . then ( ( win ) => {
726+ if ( win . monaco && win . monaco . editor ) {
727+ const editor = win . monaco . editor . getModels ( ) [ 0 ] ;
728+ const editorContent = editor . getValue ( ) ;
729+ const trigger = JSON . parse ( editorContent ) ;
723730 expect ( trigger . action . amqp_static_headers ) . to . deep . eq ( {
724731 'X-Custom-Header' : 'Header new value' ,
725732 } ) ;
726- } ) ;
733+ }
734+ } ) ;
727735
728736 // Delete amqp header
729737 cy . get ( 'table tr' ) . contains ( 'X-Custom-Header' ) . parents ( 'tr' ) . get ( 'i.fa-eraser' ) . click ( ) ;
@@ -733,12 +741,14 @@ describe('Trigger builder tests', () => {
733741 cy . get ( 'button' ) . contains ( 'Delete' ) . click ( ) ;
734742 } ) ;
735743 cy . contains ( 'X-Custom-Header' ) . should ( 'not.exist' ) ;
736- cy . get ( '#triggerSource' )
737- . invoke ( 'val' )
738- . should ( ( triggerSource ) => {
739- const trigger = JSON . parse ( triggerSource ) ;
744+ cy . window ( ) . then ( ( win ) => {
745+ if ( win . monaco && win . monaco . editor ) {
746+ const editor = win . monaco . editor . getModels ( ) [ 0 ] ;
747+ const editorContent = editor . getValue ( ) ;
748+ const trigger = JSON . parse ( editorContent ) ;
740749 expect ( trigger . action . amqp_static_headers || { } ) . to . deep . eq ( { } ) ;
741- } ) ;
750+ }
751+ } ) ;
742752 } ) ;
743753
744754 it ( 'correctly loads trigger from its source' , ( ) => {
@@ -781,7 +791,6 @@ describe('Trigger builder tests', () => {
781791 it ( 'correctly shows trigger data in the Editor UI' , function ( ) {
782792 const encodedTriggerName = encodeURIComponent ( this . test_trigger . data . name ) ;
783793 cy . visit ( `/triggers/${ encodedTriggerName } /edit` ) ;
784- cy . wait ( 1000 ) ;
785794 cy . location ( 'pathname' ) . should ( 'eq' , `/triggers/${ encodedTriggerName } /edit` ) ;
786795 checkTriggerEditorUIValues ( this . test_trigger . data ) ;
787796 } ) ;
0 commit comments