@@ -57,4 +57,104 @@ describe("Configuration validation test", () => {
5757 it ( "Should not validate a function when none are defined" , ( ) => {
5858 expect ( this . isDefinedFunction ( "qux" ) ) . toEqual ( false ) ;
5959 } ) ;
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+ } ) ;
60160} ) ;
0 commit comments