diff options
author | Ben Morrison <ben@gbmor.dev> | 2019-06-11 23:07:30 -0400 |
---|---|---|
committer | Ben Morrison <ben@gbmor.dev> | 2019-06-11 23:34:33 -0400 |
commit | bc6811abf19a8e7ab0fd463f966a874b5982ca2c (patch) | |
tree | d4e9326d03cc5860582ff33372192d2a6d3d9390 /svc/init_test.go | |
parent | 3681615abf46112646c009cf17f29d07c2755c11 (diff) | |
download | getwtxt-bc6811abf19a8e7ab0fd463f966a874b5982ca2c.tar.gz |
cache.go tests finished
Diffstat (limited to 'svc/init_test.go')
-rw-r--r-- | svc/init_test.go | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/svc/init_test.go b/svc/init_test.go index 8b68839..7ddd563 100644 --- a/svc/init_test.go +++ b/svc/init_test.go @@ -16,6 +16,7 @@ var ( testport string initTestOnce sync.Once initDBOnce sync.Once + initPersOnce sync.Once ) func initTestConf() { @@ -38,6 +39,12 @@ func initTestDB() { }) } +func initTestPers() { + initPersOnce.Do(func() { + initPersistence() + }) +} + func logToNull() { hush, err := os.Open("/dev/null") if err != nil { @@ -47,17 +54,20 @@ func logToNull() { } func testConfig() { - viper.SetConfigName("getwtxt") viper.SetConfigType("yml") - viper.AddConfigPath("..") + viper.AddConfigPath("../") + viper.SetDefault("BehindProxy", true) + viper.SetDefault("UseTLS", false) + viper.SetDefault("TLSCert", "/etc/ssl/getwtxt.pem") + viper.SetDefault("TLSKey", "/etc/ssl/private/getwtxt.pem") viper.SetDefault("ListenPort", 9001) viper.SetDefault("DatabasePath", "getwtxt.db") viper.SetDefault("AssetsDirectory", "assets") viper.SetDefault("DatabaseType", "leveldb") - viper.SetDefault("ReCacheInterval", "1h") - viper.SetDefault("DatabasePushInterval", "5m") + viper.SetDefault("ReCacheInterval", "9m") + viper.SetDefault("DatabasePushInterval", "4m") viper.SetDefault("Instance.SiteName", "getwtxt") viper.SetDefault("Instance.OwnerName", "Anonymous Microblogger") viper.SetDefault("Instance.Email", "nobody@knows") @@ -69,15 +79,10 @@ func testConfig() { confObj.Port = viper.GetInt("ListenPort") confObj.AssetsDir = "../" + viper.GetString("AssetsDirectory") - confObj.DBType = strings.ToLower(viper.GetString("DatabaseType")) confObj.DBPath = viper.GetString("DatabasePath") - log.Printf("Using %v database: %v\n", confObj.DBType, confObj.DBPath) - confObj.CacheInterval = viper.GetDuration("StatusFetchInterval") - log.Printf("User status fetch interval: %v\n", confObj.CacheInterval) confObj.DBInterval = viper.GetDuration("DatabasePushInterval") - log.Printf("Database push interval: %v\n", confObj.DBInterval) confObj.Instance.Vers = Vers confObj.Instance.Name = viper.GetString("Instance.SiteName") @@ -87,9 +92,26 @@ func testConfig() { confObj.Instance.Desc = viper.GetString("Instance.Description") } +// Creates a fresh mock registry, with a single +// user and their statuses, for testing. func mockRegistry() { twtxtCache = registry.NewIndex() statuses, _, _ := registry.GetTwtxt("https://gbmor.dev/twtxt.txt") parsed, _ := registry.ParseUserTwtxt(statuses, "gbmor", "https://gbmor.dev/twtxt.txt") _ = twtxtCache.AddUser("gbmor", "https://gbmor.dev/twtxt.txt", "1", net.ParseIP("127.0.0.1"), parsed) } + +// Empties the mock registry's user of statuses +// for functions that test status modifications +func killStatuses() { + twtxtCache.Mu.Lock() + user := twtxtCache.Users["https://gbmor.dev/twtxt.txt"] + user.Mu.Lock() + + user.Status = registry.NewTimeMap() + user.RLen = "0" + twtxtCache.Users["https://gbmor.dev/twtxt.txt"] = user + + user.Mu.Unlock() + twtxtCache.Mu.Unlock() +} |