Loading...
Loading...
Compare original and translation side by side
maincmd/appmodelsqlsqlitepostgresmigrations/testdata/fixtures/sqltestsqlitetestpostgrestests3s3testllmllmtesthttphtmlmaincmd/appmodelsqlsqlitepostgresmigrations/testdata/fixtures/sqltestsqlitetestpostgrestests3s3testllmllmtesthttphtmluserGetterpackage http
import (
"net/http"
"github.com/go-chi/chi/v5"
"maragu.dev/httph"
"model"
)
type UserResponse struct {
Name string
}
type userGetter interface {
GetUser(ctx context.Context, id model.ID) (model.User, error)
}
func User(r chi.Router, db userGetter) {
r.Get("/user", httph.JSONHandler(func(w http.ResponseWriter, r *http.Request, _ any) (UserResponse, error) {
id := r.URL.Query().Get("id")
user, err := db.GetUser(r.Context(), model.ID(id))
if err != nil {
return UserResponse{}, httph.HTTPError{Code: http.StatusInternalServerError, Err: errors.New("error getting user")}
}
return UserResponse{Name: user.Name}, nil
}))
}
userGetterpackage http
import (
"net/http"
"github.com/go-chi/chi/v5"
"maragu.dev/httph"
"model"
)
type UserResponse struct {
Name string
}
type userGetter interface {
GetUser(ctx context.Context, id model.ID) (model.User, error)
}
func User(r chi.Router, db userGetter) {
r.Get("/user", httph.JSONHandler(func(w http.ResponseWriter, r *http.Request, _ any) (UserResponse, error) {
id := r.URL.Query().Get("id")
user, err := db.GetUser(r.Context(), model.ID(id))
if err != nil {
return UserResponse{}, httph.HTTPError{Code: http.StatusInternalServerError, Err: errors.New("error getting user")}
}
return UserResponse{Name: user.Name}, nil
}))
}
package example
type Thing struct {}
func (t *Thing) DoSomething() (bool, error) {
return true, nil
}package example_test
import (
"testing"
"maragu.dev/is"
"example"
)
func TestThing_DoSomething(t *testing.T) {
t.Run("should do something and return a nil error", func(t *testing.T) {
thing := &example.Thing{}
ok, err := thing.DoSomething()
is.NotError(t, err)
is.True(t, ok)
})
}package example
import "errors"
type Thing struct {}
var ErrChairNotSupported = errors.New("chairs not supported")
func (t *Thing) DoSomething(with string) error {
if with == "chair" {
return ErrChairNotSupported
}
return nil
}package example_test
import (
"testing"
"maragu.dev/is"
"example"
)
func TestThing_DoSomething(t *testing.T) {
tests := []struct {
name string
input string
expected error
}{
{name: "should do something with the table and return a nil error", input: "table", expected: nil},
{name: "should do something with the chair and return an ErrChairNotSupported", input: "chair", expected: example.ErrChairNotSupported},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
thing := &example.Thing{}
err := thing.DoSomething(test.input)
if test.expected != nil {
is.Error(t, test.expected, err)
} else {
is.NotError(t, err)
}
})
}
}maragu.dev/isis.Trueis.Equalis.Nilis.NotNilis.EqualSliceis.NotErroris.Errorpostgrestest.NewDatabase(t)sqlitetest.NewDatabase(t)sqlite/testdata/fixturespostgres/testdata/fixturessqlitetest.NewDatabase(t, sqlitetest.WithFixtures("fixture one", "fixture two"))testing.T.Helper()t.Context()context.Background()ctxpackage example
type Thing struct {}
func (t *Thing) DoSomething() (bool, error) {
return true, nil
}package example_test
import (
"testing"
"maragu.dev/is"
"example"
)
func TestThing_DoSomething(t *testing.T) {
t.Run("should do something and return a nil error", func(t *testing.T) {
thing := &example.Thing{}
ok, err := thing.DoSomething()
is.NotError(t, err)
is.True(t, ok)
})
}package example
import "errors"
type Thing struct {}
var ErrChairNotSupported = errors.New("chairs not supported")
func (t *Thing) DoSomething(with string) error {
if with == "chair" {
return ErrChairNotSupported
}
return nil
}package example_test
import (
"testing"
"maragu.dev/is"
"example"
)
func TestThing_DoSomething(t *testing.T) {
tests := []struct {
name string
input string
expected error
}{
{name: "should do something with the table and return a nil error", input: "table", expected: nil},
{name: "should do something with the chair and return an ErrChairNotSupported", input: "chair", expected: example.ErrChairNotSupported},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
thing := &example.Thing{}
err := thing.DoSomething(test.input)
if test.expected != nil {
is.Error(t, test.expected, err)
} else {
is.NotError(t, err)
}
})
}
}maragu.dev/isis.Trueis.Equalis.Nilis.NotNilis.EqualSliceis.NotErroris.Errorpostgrestest.NewDatabase(t)sqlitetest.NewDatabase(t)sqlite/testdata/fixturespostgres/testdata/fixturessqlitetest.NewDatabase(t, sqlitetest.WithFixtures("fixture one", "fixture two"))testing.T.Helper()t.Context()context.Background()ctxreqresDatabase.H.SelectDatabase.H.ExecDatabase.H.GetDatabase.H.InTxanyinterface{}sql.ErrNoRowsmaragu.dev/glue/sql.ErrNoRowscursor-pointerstrftime('%Y-%m-%dT%H:%M:%fZ')maragu.dev/glue/model.Timemodel.Timetime.Timefmt.Sprintstrconvnew()reqresDatabase.H.SelectDatabase.H.ExecDatabase.H.GetDatabase.H.InTxanyinterface{}maragu.dev/glue/sql.ErrNoRowssql.ErrNoRowscursor-pointerstrftime('%Y-%m-%dT%H:%M:%fZ')maragu.dev/glue/model.Timemodel.Timetime.Timefmt.Sprintstrconvnew()make testgo test -shuffle on ./...go test -shuffle on ./path/to/packagego test ./path/to/package -run TestNamemake lintgolangci-lint runmake evalgo test -shuffle on -run TestEval ./...make fmtpsqlsqlite3make testgo test -shuffle on ./...go test -shuffle on ./path/to/packagego test ./path/to/package -run TestNamemake lintgolangci-lint runmake evalgo test -shuffle on -run TestEval ./...make fmtpsqlsqlite3go docgo doc net/httpgo doc maragu.dev/gaigo doc maragu.dev/gai.ChatCompleterChatCompletergo docgo doc net/httpgo doc maragu.dev/gaigo doc maragu.dev/gai.ChatCompleterChatCompleterapp.logapp.log