mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-28 05:46:36 +08:00
74ddf97b36
Initialize missing Country and City databases from embedded assets and use FyraLabs releases for periodic updates.
39 lines
911 B
Go
39 lines
911 B
Go
package geoipdata
|
|
|
|
import (
|
|
"io/fs"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/oschwald/maxminddb-golang"
|
|
)
|
|
|
|
func TestEmbeddedDatabasesAreValid(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
filename string
|
|
databaseTypePart string
|
|
}{
|
|
{name: "Country", filename: DefaultMMDBName, databaseTypePart: "Country"},
|
|
{name: "City", filename: DefaultCityMMDBName, databaseTypePart: "City"},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
t.Run(test.name, func(t *testing.T) {
|
|
data, err := fs.ReadFile(FS, test.filename)
|
|
if err != nil {
|
|
t.Fatalf("read embedded database: %v", err)
|
|
}
|
|
reader, err := maxminddb.FromBytes(data)
|
|
if err != nil {
|
|
t.Fatalf("open embedded database: %v", err)
|
|
}
|
|
defer reader.Close()
|
|
|
|
if !strings.Contains(reader.Metadata.DatabaseType, test.databaseTypePart) {
|
|
t.Fatalf("unexpected database type %q", reader.Metadata.DatabaseType)
|
|
}
|
|
})
|
|
}
|
|
}
|