package db_test import ( "context" "database/sql" "testing" "github.com/navidrome/navidrome/db" "github.com/navidrome/navidrome/log" "github.com/navidrome/navidrome/tests" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" ) func TestDB(t *testing.T) { tests.Init(t, false) log.SetLevel(log.LevelFatal) RegisterFailHandler(Fail) RunSpecs(t, "DB Suite") } var _ = Describe("IsSchemaEmpty", func() { var database *sql.DB var ctx context.Context BeforeEach(func() { ctx = context.Background() path := "file::memory:" database, _ = sql.Open(db.Dialect, path) }) It("returns false if the goose metadata table is found", func() { _, err := database.Exec("create table goose_db_version (id primary key);") Expect(err).ToNot(HaveOccurred()) Expect(db.IsSchemaEmpty(ctx, database)).To(BeFalse()) }) It("returns true if the schema is brand new", func() { Expect(db.IsSchemaEmpty(ctx, database)).To(BeTrue()) }) })