Skip to content

Commit

Permalink
Generate golden files for the Go converter jenny
Browse files Browse the repository at this point in the history
  • Loading branch information
K-Phoen committed Oct 1, 2024
1 parent 10ea9a3 commit a9636d3
Show file tree
Hide file tree
Showing 24 changed files with 1,092 additions and 0 deletions.
45 changes: 45 additions & 0 deletions internal/jennies/golang/converter_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package golang

import (
"testing"

"github.com/grafana/cog/internal/languages"
"github.com/grafana/cog/internal/testutils"
"github.com/stretchr/testify/require"
)

func TestConverter_Generate(t *testing.T) {
test := testutils.GoldenFilesTestSuite[languages.Context]{
TestDataRoot: "../../../testdata/jennies/builders",
Name: "GoConverter",
Skip: map[string]string{
"anonymous_struct": "anonymous structs are eliminated with compiler passes",
"builder_delegation_in_disjunction": "disjunctions are eliminated with compiler passes",
"dashboard_panel": "this test if for Java generics for dashboard.Panel",
},
}

config := Config{
PackageRoot: "github.com/grafana/cog/generated",
}
language := New(config)
jenny := Converter{
Config: config,
NullableConfig: language.NullableKinds(),
Tmpl: initTemplates([]string{}),
}

test.Run(t, func(tc *testutils.Test[languages.Context]) {
var err error
req := require.New(tc)

context := tc.UnmarshalJSONInput(testutils.BuildersContextInputFile)
context, err = languages.GenerateBuilderNilChecks(language, context)
req.NoError(err)

files, err := jenny.Generate(context)
req.NoError(err)

tc.WriteFiles(files)
})
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package sandbox



import (
cog "github.com/grafana/cog/generated/cog"
)

func SomeStructConverter(input *SomeStruct) string {
calls := []string{
`sandbox.NewSomeStructBuilder()`,
}
var buffer strings.Builder
if input.Tags != nil && len(input.Tags) >= 1 {for _, item := range input.Tags {

buffer.WriteString(`Tags(`)
arg0 :=fmt.Sprintf("%#v", item)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}}

return strings.Join(calls, ".\t\n")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package basic_struct



import (
cog "github.com/grafana/cog/generated/cog"
)

func SomeStructConverter(input *SomeStruct) string {
calls := []string{
`basic_struct.NewSomeStructBuilder()`,
}
var buffer strings.Builder

{
buffer.WriteString(`Id(`)
arg0 :=fmt.Sprintf("%#v", input.Id)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()
}

if input.Uid != "" {

buffer.WriteString(`Uid(`)
arg0 :=fmt.Sprintf("%#v", input.Uid)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}
if input.Tags != nil && len(input.Tags) >= 1 {

buffer.WriteString(`Tags(`)
tmparg0 := []string{}
for _, arg1 := range input.Tags {
tmptagsarg1 :=fmt.Sprintf("%#v", arg1)
tmparg0 = append(tmparg0, tmptagsarg1)
}
arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}

{
buffer.WriteString(`LiveNow(`)
arg0 :=fmt.Sprintf("%#v", input.LiveNow)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()
}


return strings.Join(calls, ".\t\n")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package basic_struct_defaults



import (
cog "github.com/grafana/cog/generated/cog"
)

func SomeStructConverter(input *SomeStruct) string {
calls := []string{
`basic_struct_defaults.NewSomeStructBuilder()`,
}
var buffer strings.Builder
if input.Id != 42 {

buffer.WriteString(`Id(`)
arg0 :=fmt.Sprintf("%#v", input.Id)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}
if input.Uid != "" && input.Uid != "default-uid" {

buffer.WriteString(`Uid(`)
arg0 :=fmt.Sprintf("%#v", input.Uid)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}
if input.Tags != nil && len(input.Tags) >= 1 {

buffer.WriteString(`Tags(`)
tmparg0 := []string{}
for _, arg1 := range input.Tags {
tmptagsarg1 :=fmt.Sprintf("%#v", arg1)
tmparg0 = append(tmparg0, tmptagsarg1)
}
arg0 := "[]string{" + strings.Join(tmparg0, ",\n") + "}"
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}
if input.LiveNow != true {

buffer.WriteString(`LiveNow(`)
arg0 :=fmt.Sprintf("%#v", input.LiveNow)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}

return strings.Join(calls, ".\t\n")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
package builder_delegation



import (
cog "github.com/grafana/cog/generated/cog"
)

func DashboardConverter(input *Dashboard) string {
calls := []string{
`builder_delegation.NewDashboardBuilder()`,
}
var buffer strings.Builder

{
buffer.WriteString(`Id(`)
arg0 :=fmt.Sprintf("%#v", input.Id)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()
}

if input.Title != "" {

buffer.WriteString(`Title(`)
arg0 :=fmt.Sprintf("%#v", input.Title)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}
if input.Links != nil && len(input.Links) >= 1 {

buffer.WriteString(`Links(`)
tmparg0 := []string{}
for _, arg1 := range input.Links {
tmplinksarg1 := DashboardLinkConverter(&arg1)
tmparg0 = append(tmparg0, tmplinksarg1)
}
arg0 := "[]cog.Builder[builder_delegation.DashboardLink]{" + strings.Join(tmparg0, ",\n") + "}"
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}
if input.LinksOfLinks != nil && len(input.LinksOfLinks) >= 1 {

buffer.WriteString(`LinksOfLinks(`)
tmparg0 := []string{}
for _, arg1 := range input.LinksOfLinks {
tmptmplinksOfLinksarg1 := []string{}
for _, arg1Value := range arg1 {
tmparg1arg1Value := DashboardLinkConverter(&arg1Value)
tmptmplinksOfLinksarg1 = append(tmptmplinksOfLinksarg1, tmparg1arg1Value)
}
tmplinksOfLinksarg1 := "[]cog.Builder[builder_delegation.DashboardLink]{" + strings.Join(tmptmplinksOfLinksarg1, ",\n") + "}"
tmparg0 = append(tmparg0, tmplinksOfLinksarg1)
}
arg0 := "[][]cog.Builder[builder_delegation.DashboardLink]{" + strings.Join(tmparg0, ",\n") + "}"
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}

{
buffer.WriteString(`SingleLink(`)
arg0 := DashboardLinkConverter(&input.SingleLink)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()
}


return strings.Join(calls, ".\t\n")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package builder_delegation



import (
cog "github.com/grafana/cog/generated/cog"
)

func DashboardLinkConverter(input *DashboardLink) string {
calls := []string{
`builder_delegation.NewDashboardLinkBuilder()`,
}
var buffer strings.Builder
if input.Title != "" {

buffer.WriteString(`Title(`)
arg0 :=fmt.Sprintf("%#v", input.Title)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}
if input.Url != "" {

buffer.WriteString(`Url(`)
arg0 :=fmt.Sprintf("%#v", input.Url)
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}

return strings.Join(calls, ".\t\n")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package composable_slot



import (
cog "github.com/grafana/cog/generated/cog"
)

func LokiBuilderConverter(input *Dashboard) string {
calls := []string{
`composable_slot.NewLokiBuilderBuilder()`,
}
var buffer strings.Builder

{
buffer.WriteString(`Target(`)
arg0 := cog.ConvertDataqueryToCode(input.Target, )
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()
}

if input.Targets != nil && len(input.Targets) >= 1 {

buffer.WriteString(`Targets(`)
tmparg0 := []string{}
for _, arg1 := range input.Targets {
tmptargetsarg1 := cog.ConvertDataqueryToCode(arg1, )
tmparg0 = append(tmparg0, tmptargetsarg1)
}
arg0 := "[]cog.Builder[variants.Dataquery]{" + strings.Join(tmparg0, ",\n") + "}"
buffer.WriteString(arg0)

buffer.WriteString(")")

calls = append(calls, buffer.String())
buffer.Reset()

}

return strings.Join(calls, ".\t\n")
}
Loading

0 comments on commit a9636d3

Please sign in to comment.