@@ -129,6 +129,158 @@ describe('Pubsub Functions', () => {
129129 } ) ;
130130 } ) ;
131131 } ) ;
132+ describe ( '#schedule' , ( ) => {
133+ it ( 'should return a trigger with schedule' , ( ) => {
134+ let result = pubsub . schedule ( 'every 5 minutes' ) . onRun ( context => null ) ;
135+ expect ( result . __trigger . schedule ) . to . deep . equal ( {
136+ schedule : 'every 5 minutes' ,
137+ } ) ;
138+ } ) ;
139+ it ( 'should return a trigger with schedule and timeZone when one is chosen' , ( ) => {
140+ let result = pubsub
141+ . schedule ( 'every 5 minutes' )
142+ . timeZone ( 'America/New_York' )
143+ . onRun ( context => null ) ;
144+ expect ( result . __trigger . schedule ) . to . deep . equal ( {
145+ schedule : 'every 5 minutes' ,
146+ timeZone : 'America/New_York' ,
147+ } ) ;
148+ } ) ;
149+ it ( 'should return a trigger with schedule and retry config when called with retryConfig' , ( ) => {
150+ let retryConfig = {
151+ retryCount : 3 ,
152+ maxRetryDuration : '10 minutes' ,
153+ minBackoffDuration : '10 minutes' ,
154+ maxBackoffDuration : '10 minutes' ,
155+ maxDoublings : 5 ,
156+ } ;
157+ let result = pubsub
158+ . schedule ( 'every 5 minutes' )
159+ . retryConfig ( retryConfig )
160+ . onRun ( ( ) => null ) ;
161+ expect ( result . __trigger . schedule ) . to . deep . equal ( {
162+ schedule : 'every 5 minutes' ,
163+ retryConfig : retryConfig ,
164+ } ) ;
165+ expect ( result . __trigger . labels ) . to . deep . equal ( {
166+ 'deployment-scheduled' : 'true' ,
167+ } ) ;
168+ } ) ;
169+ it ( 'should return a trigger with schedule, timeZone and retry config when called with retryConfig and timeout' , ( ) => {
170+ let retryConfig = {
171+ retryCount : 3 ,
172+ maxRetryDuration : '10 minutes' ,
173+ minBackoffDuration : '10 minutes' ,
174+ maxBackoffDuration : '10 minutes' ,
175+ maxDoublings : 5 ,
176+ } ;
177+ let result = pubsub
178+ . schedule ( 'every 5 minutes' )
179+ . timeZone ( 'America/New_York' )
180+ . retryConfig ( retryConfig )
181+ . onRun ( ( ) => null ) ;
182+ expect ( result . __trigger . schedule ) . to . deep . equal ( {
183+ schedule : 'every 5 minutes' ,
184+ retryConfig : retryConfig ,
185+ timeZone : 'America/New_York' ,
186+ } ) ;
187+ expect ( result . __trigger . labels ) . to . deep . equal ( {
188+ 'deployment-scheduled' : 'true' ,
189+ } ) ;
190+ } ) ;
191+ it ( 'should return an appropriate trigger when called with region and options' , ( ) => {
192+ let result = functions
193+ . region ( 'us-east1' )
194+ . runWith ( {
195+ timeoutSeconds : 90 ,
196+ memory : '256MB' ,
197+ } )
198+ . pubsub . schedule ( 'every 5 minutes' )
199+ . onRun ( ( ) => null ) ;
200+ expect ( result . __trigger . schedule ) . to . deep . equal ( {
201+ schedule : 'every 5 minutes' ,
202+ } ) ;
203+ expect ( result . __trigger . regions ) . to . deep . equal ( [ 'us-east1' ] ) ;
204+ expect ( result . __trigger . availableMemoryMb ) . to . deep . equal ( 256 ) ;
205+ expect ( result . __trigger . timeout ) . to . deep . equal ( '90s' ) ;
206+ } ) ;
207+ it ( 'should return an appropriate trigger when called with region, timeZone, and options' , ( ) => {
208+ let result = functions
209+ . region ( 'us-east1' )
210+ . runWith ( {
211+ timeoutSeconds : 90 ,
212+ memory : '256MB' ,
213+ } )
214+ . pubsub . schedule ( 'every 5 minutes' )
215+ . timeZone ( 'America/New_York' )
216+ . onRun ( ( ) => null ) ;
217+ expect ( result . __trigger . schedule ) . to . deep . equal ( {
218+ schedule : 'every 5 minutes' ,
219+ timeZone : 'America/New_York' ,
220+ } ) ;
221+ expect ( result . __trigger . regions ) . to . deep . equal ( [ 'us-east1' ] ) ;
222+ expect ( result . __trigger . availableMemoryMb ) . to . deep . equal ( 256 ) ;
223+ expect ( result . __trigger . timeout ) . to . deep . equal ( '90s' ) ;
224+ } ) ;
225+ it ( 'should return an appropriate trigger when called with region, options and retryConfig' , ( ) => {
226+ let retryConfig = {
227+ retryCount : 3 ,
228+ maxRetryDuration : '10 minutes' ,
229+ minBackoffDuration : '10 minutes' ,
230+ maxBackoffDuration : '10 minutes' ,
231+ maxDoublings : 5 ,
232+ } ;
233+ let result = functions
234+ . region ( 'us-east1' )
235+ . runWith ( {
236+ timeoutSeconds : 90 ,
237+ memory : '256MB' ,
238+ } )
239+ . pubsub . schedule ( 'every 5 minutes' )
240+ . retryConfig ( retryConfig )
241+ . onRun ( ( ) => null ) ;
242+ expect ( result . __trigger . schedule ) . to . deep . equal ( {
243+ schedule : 'every 5 minutes' ,
244+ retryConfig : retryConfig ,
245+ } ) ;
246+ expect ( result . __trigger . labels ) . to . deep . equal ( {
247+ 'deployment-scheduled' : 'true' ,
248+ } ) ;
249+ expect ( result . __trigger . regions ) . to . deep . equal ( [ 'us-east1' ] ) ;
250+ expect ( result . __trigger . availableMemoryMb ) . to . deep . equal ( 256 ) ;
251+ expect ( result . __trigger . timeout ) . to . deep . equal ( '90s' ) ;
252+ } ) ;
253+ it ( 'should return an appropriate trigger when called with region, options, retryConfig, and timeZone' , ( ) => {
254+ let retryConfig = {
255+ retryCount : 3 ,
256+ maxRetryDuration : '10 minutes' ,
257+ minBackoffDuration : '10 minutes' ,
258+ maxBackoffDuration : '10 minutes' ,
259+ maxDoublings : 5 ,
260+ } ;
261+ let result = functions
262+ . region ( 'us-east1' )
263+ . runWith ( {
264+ timeoutSeconds : 90 ,
265+ memory : '256MB' ,
266+ } )
267+ . pubsub . schedule ( 'every 5 minutes' )
268+ . timeZone ( 'America/New_York' )
269+ . retryConfig ( retryConfig )
270+ . onRun ( ( ) => null ) ;
271+ expect ( result . __trigger . schedule ) . to . deep . equal ( {
272+ schedule : 'every 5 minutes' ,
273+ timeZone : 'America/New_York' ,
274+ retryConfig : retryConfig ,
275+ } ) ;
276+ expect ( result . __trigger . labels ) . to . deep . equal ( {
277+ 'deployment-scheduled' : 'true' ,
278+ } ) ;
279+ expect ( result . __trigger . regions ) . to . deep . equal ( [ 'us-east1' ] ) ;
280+ expect ( result . __trigger . availableMemoryMb ) . to . deep . equal ( 256 ) ;
281+ expect ( result . __trigger . timeout ) . to . deep . equal ( '90s' ) ;
282+ } ) ;
283+ } ) ;
132284 } ) ;
133285
134286 describe ( 'handler namespace' , ( ) => {
0 commit comments