@@ -57,4 +57,104 @@ describe("Configuration validation test", () => {
57
57
it ( "Should not validate a function when none are defined" , ( ) => {
58
58
expect ( this . isDefinedFunction ( "qux" ) ) . toEqual ( false ) ;
59
59
} ) ;
60
+
61
+ describe ( "SQS trigger validation" , ( ) => {
62
+ it ( "Should validate a valid SQS trigger" , ( ) => {
63
+ const validTrigger = {
64
+ name : "my-sqs-trigger" ,
65
+ queue : "my-queue-name" ,
66
+ projectId : "12345678-1234-1234-1234-123456789012" ,
67
+ region : "fr-par" ,
68
+ } ;
69
+
70
+ expect ( ( ) =>
71
+ this . validateTriggers ( [ { sqs : validTrigger } ] )
72
+ ) . not . toThrow ( ) ;
73
+ } ) ;
74
+
75
+ it ( "Should validate SQS trigger without optional fields" , ( ) => {
76
+ const validTrigger = {
77
+ name : "my-sqs-trigger" ,
78
+ queue : "my-queue-name" ,
79
+ } ;
80
+
81
+ expect ( ( ) =>
82
+ this . validateTriggers ( [ { sqs : validTrigger } ] )
83
+ ) . not . toThrow ( ) ;
84
+ } ) ;
85
+
86
+ it ( "Should reject SQS trigger with invalid name" , ( ) => {
87
+ const invalidTrigger = {
88
+ name : "a" , // too short
89
+ queue : "my-queue-name" ,
90
+ } ;
91
+
92
+ const errors = this . validateTriggers ( [ { sqs : invalidTrigger } ] ) ;
93
+ expect ( errors ) . toHaveLength ( 1 ) ;
94
+ expect ( errors [ 0 ] ) . toContain ( 'Invalid trigger "a": name is invalid' ) ;
95
+ } ) ;
96
+
97
+ it ( "Should reject SQS trigger with invalid queue name" , ( ) => {
98
+ const invalidTrigger = {
99
+ name : "my-sqs-trigger" ,
100
+ queue : "a" , // too short
101
+ } ;
102
+
103
+ const errors = this . validateTriggers ( [ { sqs : invalidTrigger } ] ) ;
104
+ expect ( errors ) . toHaveLength ( 1 ) ;
105
+ expect ( errors [ 0 ] ) . toContain (
106
+ 'Invalid trigger "my-sqs-trigger": queue is invalid'
107
+ ) ;
108
+ } ) ;
109
+
110
+ it ( "Should reject SQS trigger with invalid projectId" , ( ) => {
111
+ const invalidTrigger = {
112
+ name : "my-sqs-trigger" ,
113
+ queue : "my-queue-name" ,
114
+ projectId : "invalid-project-id" ,
115
+ } ;
116
+
117
+ const errors = this . validateTriggers ( [ { sqs : invalidTrigger } ] ) ;
118
+ expect ( errors ) . toHaveLength ( 1 ) ;
119
+ expect ( errors [ 0 ] ) . toContain (
120
+ 'Invalid trigger "my-sqs-trigger": projectId is invalid'
121
+ ) ;
122
+ } ) ;
123
+
124
+ it ( "Should reject SQS trigger with invalid region" , ( ) => {
125
+ const invalidTrigger = {
126
+ name : "my-sqs-trigger" ,
127
+ queue : "my-queue-name" ,
128
+ region : "invalid-region" ,
129
+ } ;
130
+
131
+ const errors = this . validateTriggers ( [ { sqs : invalidTrigger } ] ) ;
132
+ expect ( errors ) . toHaveLength ( 1 ) ;
133
+ expect ( errors [ 0 ] ) . toContain (
134
+ 'Invalid trigger "my-sqs-trigger": region is unknown'
135
+ ) ;
136
+ } ) ;
137
+
138
+ it ( "Should reject SQS trigger without name" , ( ) => {
139
+ const invalidTrigger = {
140
+ queue : "my-queue-name" ,
141
+ } ;
142
+
143
+ const errors = this . validateTriggers ( [ { sqs : invalidTrigger } ] ) ;
144
+ expect ( errors ) . toHaveLength ( 1 ) ;
145
+ expect ( errors [ 0 ] ) . toContain ( ": name is invalid" ) ;
146
+ } ) ;
147
+
148
+ it ( "Should reject SQS trigger without queue" , ( ) => {
149
+ const invalidTrigger = {
150
+ name : "my-sqs-trigger" ,
151
+ } ;
152
+
153
+ const errors = this . validateTriggers ( [ { sqs : invalidTrigger } ] ) ;
154
+ expect ( errors ) . toHaveLength ( 1 ) ;
155
+ expect ( errors [ 0 ] ) . toContain (
156
+ 'Invalid trigger "my-sqs-trigger": queue is invalid'
157
+ ) ;
158
+ } ) ;
159
+ } ) ;
60
160
} ) ;
0 commit comments