Expand Gotlin language and tooling
This commit is contained in:
parent
8f4f858d86
commit
de1262b4cf
41 changed files with 6059 additions and 379 deletions
62
internal/lang/external_struct_test.go
Normal file
62
internal/lang/external_struct_test.go
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
package lang
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestGenerateExternalGoStructConstruction(t *testing.T) {
|
||||
prog, err := Parse(`package demo
|
||||
import platform "example/platform"
|
||||
fun create(issuer: String, audience: String, jwksUrl: String): *platform.Authorizer {
|
||||
return platform.Authorizer(issuer = issuer, audience = audience, jwksUrl = jwksUrl)
|
||||
}`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
out, err := GenerateGo(prog)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
want := `&platform.Authorizer{Issuer: issuer, Audience: audience, JWKSURL: jwksUrl}`
|
||||
if !strings.Contains(string(out), want) {
|
||||
t.Fatalf("missing %q:\n%s", want, out)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGenerateEmbeddedValue(t *testing.T) {
|
||||
prog, err := Parse(`package demo
|
||||
import embed
|
||||
@embed("assets/*") val assets: embed.FS
|
||||
fun main() { println(assets) }`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
out, err := GenerateGo(prog)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for _, want := range []string{`"embed"`, `//go:embed assets/*`, `var assets embed.FS`} {
|
||||
if !strings.Contains(string(out), want) {
|
||||
t.Fatalf("missing %q:\n%s", want, out)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestGenerateEmbeddedStringAddsBlankImport(t *testing.T) {
|
||||
prog, err := Parse(`package demo
|
||||
@embed("schema.sql") val schema: String
|
||||
fun main() { println(schema) }`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
out, err := GenerateGo(prog)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for _, want := range []string{`_ "embed"`, `//go:embed schema.sql`, `var schema string`} {
|
||||
if !strings.Contains(string(out), want) {
|
||||
t.Fatalf("missing %q:\n%s", want, out)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue