# Test that a basic get go works using golden files to verify output

# All the things
cue get go --local
cmp blah_go_gen.cue all.cue.golden

# Use an alternative package name
cue get go --local -p other
cmp blah_go_gen.cue other.cue.golden

-- go.mod --
module mod.com/blah
-- blah.go --
package main

type S struct {
	Name string
	T
}

type T struct {
	Age int
}

const (
	LongStringConst = "This is a really long string. Why are we using a long string? Because that way it ensures we are using go/constant.Value.ExactString() instead of go/constant.Value.String()"
	IntConst        = "test"
)
-- all.cue.golden --
// Code generated by cue get go. DO NOT EDIT.

//cue:generate cue get go mod.com/blah

package main

#S: {
	Name: string
	T:    #T
}

#T: Age: int

#LongStringConst: "This is a really long string. Why are we using a long string? Because that way it ensures we are using go/constant.Value.ExactString() instead of go/constant.Value.String()"
#IntConst:        "test"
-- other.cue.golden --
// Code generated by cue get go. DO NOT EDIT.

//cue:generate cue get go mod.com/blah

package other

#S: {
	Name: string
	T:    #T
}

#T: Age: int

#LongStringConst: "This is a really long string. Why are we using a long string? Because that way it ensures we are using go/constant.Value.ExactString() instead of go/constant.Value.String()"
#IntConst:        "test"
