mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-11-04 16:40:21 +00:00
59 lines
1.3 KiB
Go
59 lines
1.3 KiB
Go
package singleton
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/nezhahq/nezha/model"
|
|
"github.com/nezhahq/nezha/pkg/tsdb"
|
|
)
|
|
|
|
func TestInitTSDBContinuesWhenDiskIsFull(t *testing.T) {
|
|
originalConf := Conf
|
|
originalDB := DB
|
|
originalShared := TSDBShared
|
|
originalOpen := openTSDB
|
|
t.Cleanup(func() {
|
|
Conf = originalConf
|
|
DB = originalDB
|
|
TSDBShared = originalShared
|
|
openTSDB = originalOpen
|
|
})
|
|
|
|
Conf = &ConfigClass{Config: &model.Config{
|
|
TSDB: model.TSDBConf{DataPath: "/full/tsdb"},
|
|
}}
|
|
DB = nil
|
|
TSDBShared = nil
|
|
openTSDB = func(*tsdb.Config) (*tsdb.TSDB, error) {
|
|
return nil, fmt.Errorf("open failed: %w", tsdb.ErrDiskFull)
|
|
}
|
|
|
|
require.NoError(t, InitTSDB())
|
|
require.Nil(t, TSDBShared)
|
|
}
|
|
|
|
func TestInitTSDBStillReturnsNonDiskErrors(t *testing.T) {
|
|
originalConf := Conf
|
|
originalShared := TSDBShared
|
|
originalOpen := openTSDB
|
|
t.Cleanup(func() {
|
|
Conf = originalConf
|
|
TSDBShared = originalShared
|
|
openTSDB = originalOpen
|
|
})
|
|
|
|
Conf = &ConfigClass{Config: &model.Config{
|
|
TSDB: model.TSDBConf{DataPath: "/broken/tsdb"},
|
|
}}
|
|
TSDBShared = nil
|
|
openTSDB = func(*tsdb.Config) (*tsdb.TSDB, error) {
|
|
return nil, fmt.Errorf("permission denied")
|
|
}
|
|
|
|
require.ErrorContains(t, InitTSDB(), "permission denied")
|
|
require.Nil(t, TSDBShared)
|
|
}
|