shiori/internal/testutil/shiori.go
Felipe Martin a60dbf3dc5
Run legacy API and new API at the same time. (#648)
* config: backwards comptabile dir

* remove duplicated frontend

* frontend: move assets to assets folder

* legacy routes handler in gin

* templates and asset in different embed

* new routes

* frontend routes serve old views

* added DTO for account object

* api auth calls legacy handler

* frontend: handle new error messages

* frontend: update urls

* frontend: login using new api

* updated frontend tests

* chore: remove debug route

* create shiori/gopher user if no owner is present

* server as default command

* serve -> server

* refactored database logic, allow database url

* removed unused configuration

* storage docs

* refactor cli to use cfg and deps

* check errors only in server

* log fatal instead of os exit

* dont default data directory to current dir

* fixed sqlite path

* trigger build on prs

* avoid releasing if lint/test fails

* pull request condition

* event -> event_name

* Get correct pull request number

* added workflow to delete dangling tags

* fix: nil error checking

* set gin mode first

* set gin mode before initialization

* fix logger

* allow version bump from custom ref

* Updated matrix link to workspace
2023-07-19 18:25:41 +02:00

37 lines
1,018 B
Go

package testutil
import (
"context"
"os"
"testing"
"github.com/go-shiori/shiori/internal/config"
"github.com/go-shiori/shiori/internal/database"
"github.com/go-shiori/shiori/internal/domains"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/require"
)
func GetTestConfigurationAndDependencies(t *testing.T, ctx context.Context, logger *logrus.Logger) (*config.Config, *config.Dependencies) {
tmp, err := os.CreateTemp("", "")
require.NoError(t, err)
cfg := config.ParseServerConfiguration(ctx, logger)
cfg.Http.SecretKey = "test"
tempDir, err := os.MkdirTemp("", "")
require.NoError(t, err)
db, err := database.OpenSQLiteDatabase(ctx, tmp.Name())
require.NoError(t, err)
require.NoError(t, db.Migrate())
cfg.Storage.DataDir = tempDir
deps := config.NewDependencies(logger, db, cfg)
deps.Database = db
deps.Domains.Auth = domains.NewAccountsDomain(logger, cfg.Http.SecretKey, db)
deps.Domains.Archiver = domains.NewArchiverDomain(logger, cfg.Storage.DataDir)
return cfg, deps
}