- docs/backend: admin controllers, forms, lists and filters, relation manager, users and permissions, settings, partials and widgets, admin SPA - docs/services: storage, outbound HTTP, realtime, Web Push, search, parity testing and the Frontend and AJAX (not provided) page - Examples for cabana (with testdata/docs YAML), fetchguard, lighthouse and its centrifugo driver, flare, beachcomber and typesense, tide; lighthouse and beachcomber TestDocs* regions run on their Postgres harnesses - concept map rows link their guide pages and the not-provided rows the Frontend and AJAX page; index lists Backend, Database and Services - TestDocsRequiredPages asserts the D-08 section order
48 lines
1.3 KiB
Go
48 lines
1.3 KiB
Go
package beachcomber
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"git.golem15.com/golem15/summercms/modules/backpack"
|
|
"git.golem15.com/golem15/summercms/modules/compass"
|
|
"git.golem15.com/golem15/summercms/modules/lagoon"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// DocsApp returns an app with the given config settings on a fresh migrated
|
|
// database of this package's Postgres harness, with the database published,
|
|
// for the database-backed docs examples in example_test.go. It skips under
|
|
// -short and fails when the harness has no database, like the package's
|
|
// other database tests.
|
|
func DocsApp(t *testing.T, settings map[string]any) (*backpack.App, *gorm.DB) {
|
|
t.Helper()
|
|
db, dsn := migratedDB(t)
|
|
cfg, err := compass.Open(compass.Options{Dir: t.TempDir(), Env: "testing", Environ: []string{}})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := cfg.Set("database.dsn", dsn); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
for k, v := range settings {
|
|
if err := cfg.Set(k, v); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
app := backpack.New(cfg)
|
|
gdb, err := lagoon.Use(t.Context(), db)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := lagoon.Publish(app, db, gdb); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
return app, gdb
|
|
}
|
|
|
|
// DocsUseEngine replaces the engine of svc, for docs examples whose toy
|
|
// engine must not join the global engine registry.
|
|
func DocsUseEngine(svc *Service, e Engine) {
|
|
svc.engine = e
|
|
}
|