chore: trim spaces for x-caddy, diff Caddy configs when comparing service specs

This commit is contained in:
Pasha Sviderski
2025-08-13 19:27:40 +10:00
parent 12c07812a2
commit dd7bc6c982
5 changed files with 101 additions and 11 deletions
+3 -1
View File
@@ -84,9 +84,11 @@ func transformServicesCaddyExtension(project *types.Project) (*types.Project, er
}
caddy.Config = string(content)
service.Extensions[CaddyExtensionKey] = caddy
}
caddy.Config = strings.TrimSpace(caddy.Config)
service.Extensions[CaddyExtensionKey] = caddy
return service, nil
})
}
+38 -4
View File
@@ -27,8 +27,25 @@ services:
`,
wantConfig: `example.com {
reverse_proxy web:80
}
}`,
},
{
name: "x-caddy as string with extra spaces",
composeYAML: `
services:
web:
image: nginx
x-caddy: |+
example.com {
reverse_proxy web:80
}
`,
wantConfig: `example.com {
reverse_proxy web:80
}`,
},
{
name: "x-caddy as object with config field",
@@ -44,8 +61,26 @@ services:
`,
wantConfig: `example.com {
reverse_proxy web:80
}
}`,
},
{
name: "x-caddy as object with config field and extra spaces",
composeYAML: `
services:
web:
image: nginx
x-caddy:
config: |+
example.com {
reverse_proxy web:80
}
`,
wantConfig: `example.com {
reverse_proxy web:80
}`,
},
{
name: "x-caddy with path to Caddyfile",
@@ -57,8 +92,7 @@ services:
`,
wantConfig: `test.example.com {
reverse_proxy test:8000
}
`,
}`,
},
{
name: "x-caddy with empty object",
+43 -6
View File
@@ -264,8 +264,7 @@ func TestServiceSpecFromCompose(t *testing.T) {
Caddy: &api.CaddySpec{
Config: `test-caddy-config.example.com {
reverse_proxy {{ upstreams 80 }}
}
`,
}`,
},
},
},
@@ -315,8 +314,27 @@ services:
want: &api.CaddySpec{
Config: `example.com {
reverse_proxy web:80
}
}`,
},
},
{
name: "x-caddy as string with extra spaces",
composeYAML: `
services:
web:
image: nginx
x-caddy: |+
example.com {
reverse_proxy web:80
}
`,
want: &api.CaddySpec{
Config: `example.com {
reverse_proxy web:80
}`,
},
},
{
@@ -334,8 +352,28 @@ services:
want: &api.CaddySpec{
Config: `example.com {
reverse_proxy web:80
}
}`,
},
},
{
name: "x-caddy as object with config field and extra spaces",
composeYAML: `
services:
web:
image: nginx
x-caddy:
config: |+
example.com {
reverse_proxy web:80
}
`,
want: &api.CaddySpec{
Config: `example.com {
reverse_proxy web:80
}`,
},
},
{
@@ -349,8 +387,7 @@ services:
want: &api.CaddySpec{
Config: `test.example.com {
reverse_proxy test:8000
}
`,
}`,
},
},
{