@@ -292,6 +292,28 @@ func TestExpandStrict(t *testing.T) {
292292 output : "default" ,
293293 wantErr : nil ,
294294 },
295+ // missing with a transformation operator should still error.
296+ // Regression coverage for fluxcd/flux2#5836.
297+ {params : map [string ]string {}, input : "${#missing}" , wantErr : errVarNotSet },
298+ {params : map [string ]string {}, input : "${missing^}" , wantErr : errVarNotSet },
299+ {params : map [string ]string {}, input : "${missing^^}" , wantErr : errVarNotSet },
300+ {params : map [string ]string {}, input : "${missing,}" , wantErr : errVarNotSet },
301+ {params : map [string ]string {}, input : "${missing,,}" , wantErr : errVarNotSet },
302+ {params : map [string ]string {}, input : "${missing:0}" , wantErr : errVarNotSet },
303+ {params : map [string ]string {}, input : "${missing:0:10}" , wantErr : errVarNotSet },
304+ {params : map [string ]string {}, input : "${missing/pattern/replacement}" , wantErr : errVarNotSet },
305+ {params : map [string ]string {}, input : "${missing//pattern/replacement}" , wantErr : errVarNotSet },
306+ {params : map [string ]string {}, input : "${missing/#pattern/replacement}" , wantErr : errVarNotSet },
307+ {params : map [string ]string {}, input : "${missing/%pattern/replacement}" , wantErr : errVarNotSet },
308+ {params : map [string ]string {}, input : "${missing#pattern}" , wantErr : errVarNotSet },
309+ {params : map [string ]string {}, input : "${missing##pattern}" , wantErr : errVarNotSet },
310+ {params : map [string ]string {}, input : "${missing%pattern}" , wantErr : errVarNotSet },
311+ {params : map [string ]string {}, input : "${missing%%pattern}" , wantErr : errVarNotSet },
312+ // Default-providing operators must still succeed when the var is
313+ // missing — exclusion must not regress these cases.
314+ {params : map [string ]string {}, input : "${missing:-fallback}" , output : "fallback" },
315+ {params : map [string ]string {}, input : "${missing:=assigned}" , output : "assigned" },
316+ {params : map [string ]string {}, input : "${missing=assigned}" , output : "assigned" },
295317 }
296318
297319 for _ , expr := range expressions {
0 commit comments