11# Comprehensive integration test for worker_route migration
22# This file tests ALL Terraform patterns and edge cases
3- # Note: Testing routes without script_name to avoid requiring actual worker scripts
3+ # Includes script_name traversal references to validate v4->v5 attribute rewrites
44
55# ========================================
66# Variables
@@ -200,11 +200,71 @@ resource "cloudflare_workers_route" "complex_interpolation" {
200200 pattern = " ${ local . name_prefix } -${ replace (" test.domain" , " ." , " -" )} .cf-tf-test.com/*"
201201}
202202
203+ # ##############################################################################
204+ # Pattern 12: Worker script dependencies for route references
205+ # ##############################################################################
206+
207+ resource "cloudflare_workers_script" "segment_proxy" {
208+ account_id = var. cloudflare_account_id
209+ content = " addEventListener('fetch', event => { event.respondWith(new Response('ok')); });"
210+ script_name = " ${ local . name_prefix } -segment-proxy"
211+ }
212+
213+
214+ resource "cloudflare_workers_script" "segment_proxy_indexed" {
215+ count = 1
216+ account_id = var. cloudflare_account_id
217+ content = " addEventListener('fetch', event => { event.respondWith(new Response('ok')); });"
218+ script_name = " ${ local . name_prefix } -segment-proxy-${ count . index } "
219+ }
220+
221+ resource "cloudflare_workers_script" "segment_proxy_each" {
222+ for_each = toset ([" alpha" ])
223+ account_id = var. cloudflare_account_id
224+ content = " addEventListener('fetch', event => { event.respondWith(new Response('ok')); });"
225+ script_name = " ${ local . name_prefix } -segment-proxy-${ each . key } "
226+ }
227+
228+ # ##############################################################################
229+ # Pattern 12: script_name reference rewrites
230+ # ##############################################################################
231+
232+ resource "cloudflare_workers_route" "script_ref_plural" {
233+ zone_id = local. zone_id
234+ pattern = " ${ local . name_prefix } -script-plural.cf-tf-test.com/*"
235+ script = cloudflare_workers_script. segment_proxy . id
236+ }
237+
238+ resource "cloudflare_workers_route" "script_ref_singular" {
239+ zone_id = local. zone_id
240+ pattern = " ${ local . name_prefix } -script-singular.cf-tf-test.com/*"
241+ script = cloudflare_workers_script. legacy_proxy . id
242+ }
243+
244+ resource "cloudflare_workers_route" "script_ref_indexed" {
245+ zone_id = local. zone_id
246+ pattern = " ${ local . name_prefix } -script-indexed.cf-tf-test.com/*"
247+ script = cloudflare_workers_script. segment_proxy_indexed [0 ]. id
248+ }
249+
250+ resource "cloudflare_workers_route" "script_ref_each_key" {
251+ zone_id = local. zone_id
252+ pattern = " ${ local . name_prefix } -script-each.cf-tf-test.com/*"
253+ script = cloudflare_workers_script. segment_proxy_each [" alpha" ]. id
254+ }
255+
256+ resource "cloudflare_workers_route" "script_ref_dot_index" {
257+ zone_id = local. zone_id
258+ pattern = " ${ local . name_prefix } -script-dotidx.cf-tf-test.com/*"
259+ script = cloudflare_workers_script. segment_proxy_indexed . 0 . id
260+ }
261+
203262# ##############################################################################
204263# Summary: Test Coverage
205264# ##############################################################################
206265# Total resources: 25+ instances across all patterns
207266# - Routes without script_name (catch-all/fallback): 25+ instances
267+ # - script_name references with worker_script/workers_script traversals
208268# - for_each with maps: 2 instances (api_routes)
209269# - for_each with sets: 2 instances (admin_routes)
210270# - count-based: 3 instances (numbered)
@@ -213,3 +273,14 @@ resource "cloudflare_workers_route" "complex_interpolation" {
213273# - Special patterns: wildcard, exact paths, query params, special chars
214274# - Environment configs: 3 instances (prod/staging/dev)
215275# ##############################################################################
276+
277+ resource "cloudflare_workers_script" "legacy_proxy" {
278+ account_id = var. cloudflare_account_id
279+ content = " addEventListener('fetch', event => { event.respondWith(new Response('ok')); });"
280+ script_name = " ${ local . name_prefix } -legacy-proxy"
281+ }
282+
283+ moved {
284+ from = cloudflare_worker_script. legacy_proxy
285+ to = cloudflare_workers_script. legacy_proxy
286+ }
0 commit comments