Skip to content

Commit

Permalink
dont use go raw string literal when emitting generated code
Browse files Browse the repository at this point in the history
Then users can't use "`" in their strings. If we format with %#v it should escape everything as needed.
  • Loading branch information
alexzielenski committed Jan 26, 2024
1 parent 5607890 commit ae3dc94
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 15 deletions.
6 changes: 3 additions & 3 deletions pkg/generators/openapi.go
Original file line number Diff line number Diff line change
Expand Up @@ -640,14 +640,14 @@ func (g openAPITypeWriter) emitExtensions(extensions []extension, unions []union
for _, rule := range celRules {
g.Do("map[string]interface{}{\n", nil)

g.Do("\"rule\": `$.$`,\n", rule.Rule)
g.Do("\"rule\": $.$,\n", fmt.Sprintf("%#v", rule.Rule))

if len(rule.Message) > 0 {
g.Do("\"message\": `$.$`,\n", rule.Message)
g.Do("\"message\": $.$,\n", fmt.Sprintf("%#v", rule.Message))
}

if len(rule.MessageExpression) > 0 {
g.Do("\"messageExpression\": `$.$`,\n", rule.MessageExpression)
g.Do("\"messageExpression\": $.$,\n", fmt.Sprintf("%#v", rule.MessageExpression))
}

if rule.OptionalOldSelf != nil && *rule.OptionalOldSelf {
Expand Down
24 changes: 12 additions & 12 deletions pkg/generators/openapi_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2061,12 +2061,12 @@ func TestCELMarkerComments(t *testing.T) {
Extensions: spec.Extensions{
"x-kubernetes-validations": []interface{}{
map[string]interface{}{
"rule": ` + "`self.length() > 0`" + `,
"message": ` + "`string message`" + `,
"rule": "self.length() > 0",
"message": "string message",
},
map[string]interface{}{
"rule": ` + "`self.length() % 2 == 0`" + `,
"messageExpression": ` + "`self + ' hello'`" + `,
"rule": "self.length() % 2 == 0",
"messageExpression": "self + ' hello'",
"optionalOldSelf": ptr.To[bool](true),
},
},
Expand All @@ -2084,8 +2084,8 @@ func TestCELMarkerComments(t *testing.T) {
Extensions: spec.Extensions{
"x-kubernetes-validations": []interface{}{
map[string]interface{}{
"rule": ` + "`self == oldSelf`" + `,
"message": ` + "`message1`" + `,
"rule": "self == oldSelf",
"message": "message1",
},
},
},
Expand Down Expand Up @@ -2141,12 +2141,12 @@ func TestMultilineCELMarkerComments(t *testing.T) {
Extensions: spec.Extensions{
"x-kubernetes-validations": []interface{}{
map[string]interface{}{
"rule": ` + "`self.length() > 0`" + `,
"message": ` + "`string message`" + `,
"rule": "self.length() > 0",
"message": "string message",
},
map[string]interface{}{
"rule": ` + "` !oldSelf.hasValue() || self.length() % 2 == 0\n ? self.field == \"even\"\n : self.field == \"odd\"`" + `,
"messageExpression": ` + "`field must be whether the length of the string is even or odd`" + `,
"rule": "!oldSelf.hasValue() || self.length() % 2 == 0\n? self.field == \"even\"\n: self.field == \"odd\"",
"messageExpression": "field must be whether the length of the string is even or odd",
"optionalOldSelf": ptr.To[bool](true),
},
},
Expand All @@ -2164,8 +2164,8 @@ func TestMultilineCELMarkerComments(t *testing.T) {
Extensions: spec.Extensions{
"x-kubernetes-validations": []interface{}{
map[string]interface{}{
"rule": ` + "`self == oldSelf`" + `,
"message": ` + "`message1`" + `,
"rule": "self == oldSelf",
"message": "message1",
},
},
},
Expand Down

0 comments on commit ae3dc94

Please sign in to comment.