summary refs log tree commit diff stats
path: root/svc/init_test.go
diff options
context:
space:
mode:
authorBen Morrison <ben@gbmor.dev>2019-06-11 23:07:30 -0400
committerBen Morrison <ben@gbmor.dev>2019-06-11 23:34:33 -0400
commitbc6811abf19a8e7ab0fd463f966a874b5982ca2c (patch)
treed4e9326d03cc5860582ff33372192d2a6d3d9390 /svc/init_test.go
parent3681615abf46112646c009cf17f29d07c2755c11 (diff)
downloadgetwtxt-bc6811abf19a8e7ab0fd463f966a874b5982ca2c.tar.gz
cache.go tests finished
Diffstat (limited to 'svc/init_test.go')
-rw-r--r--svc/init_test.go40
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()
+}