Compare commits

..

4 commits

Author SHA1 Message Date
c73dfc0d3a 🚚 Rename project 2024-10-28 13:48:22 -05:00
8a069859ea ♻️ Rename constancts to not be uppercase 2024-10-28 11:50:18 -05:00
c703a26c10 Load store from config name 2024-09-15 12:37:42 -05:00
25ed67b2e9 🔥 Delete temp files in testing code 2024-09-15 12:02:22 -05:00
16 changed files with 72 additions and 56 deletions

View file

@ -75,6 +75,6 @@ tasks:
sources: sources:
- '**/*.go' - '**/*.go'
generates: generates:
- build/lenore - build/combluotion
cmds: cmds:
- go build -o build/lenore cmd/lenore/main.go - go build -o build/combluotion cmd/combluotion/main.go

8
app.go
View file

@ -1,13 +1,13 @@
package lenore package combluotion
import ( import (
"errors" "errors"
"fmt" "fmt"
"time" "time"
"codeberg.org/danjones000/lenore/config" "codeberg.org/danjones000/combluotion/config"
_ "codeberg.org/danjones000/lenore/imports" _ "codeberg.org/danjones000/combluotion/imports"
"codeberg.org/danjones000/lenore/store" "codeberg.org/danjones000/combluotion/store"
vocab "github.com/go-ap/activitypub" vocab "github.com/go-ap/activitypub"
"github.com/go-ap/client" "github.com/go-ap/client"
boxap "github.com/go-ap/fedbox/activitypub" boxap "github.com/go-ap/fedbox/activitypub"

View file

@ -1,11 +1,11 @@
package lenore package combluotion
import ( import (
"fmt" "fmt"
"testing" "testing"
"codeberg.org/danjones000/lenore/config" "codeberg.org/danjones000/combluotion/config"
"codeberg.org/danjones000/lenore/internal/testmocks" "codeberg.org/danjones000/combluotion/internal/testmocks"
vocab "github.com/go-ap/activitypub" vocab "github.com/go-ap/activitypub"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
@ -22,7 +22,7 @@ func TestDefaultEnvironment(t *testing.T) {
a, er := NewApp("0.0.0", c, testmocks.GetStore()) a, er := NewApp("0.0.0", c, testmocks.GetStore())
assert.NoError(t, er) assert.NoError(t, er)
if assert.NotNil(t, a) { if assert.NotNil(t, a) {
assert.Equal(t, config.DEV, a.Environment()) assert.Equal(t, config.Dev, a.Environment())
} }
} }
@ -31,11 +31,11 @@ func TestGivenEnvironment(t *testing.T) {
given config.Env given config.Env
exp config.Env exp config.Env
}{ }{
{config.DEV, config.DEV}, {config.Dev, config.Dev},
{config.PROD, config.PROD}, {config.Prod, config.Prod},
{config.QA, config.QA}, {config.Qa, config.Qa},
{config.Env("foo"), config.DEV}, {config.Env("foo"), config.Dev},
{config.Env("✨"), config.DEV}, {config.Env("✨"), config.Dev},
} }
for _, c := range cases { for _, c := range cases {

View file

@ -6,20 +6,22 @@ import (
"fmt" "fmt"
"os" "os"
"codeberg.org/danjones000/lenore" "codeberg.org/danjones000/combluotion"
"codeberg.org/danjones000/lenore/config" "codeberg.org/danjones000/combluotion/config"
"codeberg.org/danjones000/lenore/store" "codeberg.org/danjones000/combluotion/store"
) )
func main() { func main() {
conf, err := config.LoadFromToml(getTomlFile()) f := getTomlFile()
defer os.Remove(f)
conf, err := config.LoadFromToml(f)
quitErr(err) quitErr(err)
fmt.Printf("%+v\n", conf) fmt.Printf("%+v\n", conf)
db, err := store.MakeStore(conf.Conn.Store, conf) db, err := store.MakeStore(conf.Conn.Store, conf)
quitErr(err) quitErr(err)
app, err := lenore.NewApp(config.Version, conf, db) app, err := combluotion.NewApp(config.Version, conf, db)
quitErr(err) quitErr(err)
fmt.Println(app) fmt.Println(app)
@ -28,6 +30,7 @@ func main() {
fmt.Println(string(out)) fmt.Println(string(out))
fmt.Println(serv.ID) fmt.Println(serv.ID)
} }
func quitErr(err error) { func quitErr(err error) {
if err != nil { if err != nil {
panic(err) panic(err)
@ -36,9 +39,7 @@ func quitErr(err error) {
func getTomlFile() string { func getTomlFile() string {
tmp, err := os.CreateTemp("", "*.toml") tmp, err := os.CreateTemp("", "*.toml")
if err != nil { quitErr(err)
panic(err)
}
defer tmp.Close() defer tmp.Close()
p := tmp.Name() p := tmp.Name()

View file

@ -8,12 +8,12 @@ import (
func TestEnvDefaultsToDev(t *testing.T) { func TestEnvDefaultsToDev(t *testing.T) {
c := Config{} c := Config{}
assert.Equal(t, DEV, c.Environment()) assert.Equal(t, Dev, c.Environment())
} }
func TestInvalidEnvReturnsDev(t *testing.T) { func TestInvalidEnvReturnsDev(t *testing.T) {
c := Config{Env: Env("foobar")} c := Config{Env: Env("foobar")}
assert.Equal(t, DEV, c.Environment()) assert.Equal(t, Dev, c.Environment())
} }
func TestValidEnvReturnsCorrect(t *testing.T) { func TestValidEnvReturnsCorrect(t *testing.T) {

View file

@ -3,24 +3,24 @@ package config
type Env string type Env string
const ( const (
DEV Env = "dev" Dev Env = "dev"
PROD Env = "prod" Prod Env = "prod"
QA Env = "qa" Qa Env = "qa"
TEST Env = "test" Test Env = "test"
) )
var Envs = [...]Env{ var Envs = [...]Env{
DEV, Dev,
PROD, Prod,
QA, Qa,
TEST, Test,
} }
func ValidEnvOrDev(e Env) Env { func ValidEnvOrDev(e Env) Env {
if ValidEnv(e) { if ValidEnv(e) {
return e return e
} }
return DEV return Dev
} }
func ValidEnv(env Env) bool { func ValidEnv(env Env) bool {

View file

@ -21,10 +21,10 @@ func TestValidEnv(t *testing.T) {
e Env e Env
exp bool exp bool
}{ }{
{DEV, true}, {Dev, true},
{PROD, true}, {Prod, true},
{QA, true}, {Qa, true},
{TEST, true}, {Test, true},
{Env("foobar"), false}, {Env("foobar"), false},
{Env(""), false}, {Env(""), false},
{Env("✨"), false}, {Env("✨"), false},
@ -42,13 +42,13 @@ func TestValidEnvOrDev(t *testing.T) {
give Env give Env
exp Env exp Env
}{ }{
{DEV, DEV}, {Dev, Dev},
{PROD, PROD}, {Prod, Prod},
{QA, QA}, {Qa, Qa},
{TEST, TEST}, {Test, Test},
{Env("foobar"), DEV}, {Env("foobar"), Dev},
{Env(""), DEV}, {Env(""), Dev},
{Env("✨"), DEV}, {Env("✨"), Dev},
} }
for _, c := range cases { for _, c := range cases {

View file

@ -15,6 +15,7 @@ func TestLoadTomlMissing(t *testing.T) {
func TestLoadTomlGood(t *testing.T) { func TestLoadTomlGood(t *testing.T) {
tmp, _ := os.CreateTemp("", "*.toml") tmp, _ := os.CreateTemp("", "*.toml")
defer os.Remove(tmp.Name())
defer tmp.Close() defer tmp.Close()
fmt.Fprintln(tmp, `name = "Cool"`) fmt.Fprintln(tmp, `name = "Cool"`)
fmt.Fprintln(tmp, "[conn]") fmt.Fprintln(tmp, "[conn]")

View file

@ -1,9 +1,9 @@
package config package config
const ( const (
AppName string = "lenore" AppName string = "combluotion"
Version string = "0.0.1" Version string = "0.0.1"
Url string = "https://codeberg.org/danjones000/lenore" Url string = "https://codeberg.org/danjones000/combluotion"
DevUrl string = "https://codeberg.org/danjones000" DevUrl string = "https://codeberg.org/danjones000"
Email string = "danjones@goodevilgenius.org" Email string = "danjones@goodevilgenius.org"
UserAgent string = AppName + "/" + Version + " (" + Url + "; " + Email + ")" UserAgent string = AppName + "/" + Version + " (" + Url + "; " + Email + ")"

2
go.mod
View file

@ -1,4 +1,4 @@
module codeberg.org/danjones000/lenore module codeberg.org/danjones000/combluotion
go 1.23.1 go 1.23.1

View file

@ -1,5 +1,5 @@
package imports package imports
import ( import (
_ "codeberg.org/danjones000/lenore/store/sqlite" _ "codeberg.org/danjones000/combluotion/store/sqlite"
) )

View file

@ -1,7 +1,7 @@
package testmocks package testmocks
import ( import (
"codeberg.org/danjones000/lenore/config" "codeberg.org/danjones000/combluotion/config"
vocab "github.com/go-ap/activitypub" vocab "github.com/go-ap/activitypub"
"github.com/go-ap/filters" "github.com/go-ap/filters"
) )

View file

@ -4,7 +4,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"codeberg.org/danjones000/lenore/config" "codeberg.org/danjones000/combluotion/config"
) )
var ErrNoFactory = errors.New("unknown factory") var ErrNoFactory = errors.New("unknown factory")
@ -26,6 +26,10 @@ func GetFactory(name string) StoreFactory {
} }
func MakeStore(name string, conf config.Config) (Store, error) { func MakeStore(name string, conf config.Config) (Store, error) {
if name == "" {
name = conf.Conn.Store
}
f, ok := factories[name] f, ok := factories[name]
if !ok { if !ok {
return nil, fmt.Errorf("%w: %s", ErrNoFactory, name) return nil, fmt.Errorf("%w: %s", ErrNoFactory, name)

View file

@ -3,8 +3,8 @@ package store
import ( import (
"testing" "testing"
"codeberg.org/danjones000/lenore/config" "codeberg.org/danjones000/combluotion/config"
"codeberg.org/danjones000/lenore/internal/testmocks" "codeberg.org/danjones000/combluotion/internal/testmocks"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
@ -45,3 +45,13 @@ func TestMakeStoreNoError(t *testing.T) {
assert.NotNil(t, s) assert.NotNil(t, s)
assert.NoError(t, e) assert.NoError(t, e)
} }
func TestMakeStoreNoName(t *testing.T) {
AddFactory("mock", f)
defer delete(factories, "mock")
s, e := MakeStore("", config.Config{
Conn: config.ConnSettings{Store: "mock"},
})
assert.NotNil(t, s)
assert.NoError(t, e)
}

View file

@ -1,8 +1,8 @@
package sqlite package sqlite
import ( import (
"codeberg.org/danjones000/lenore/config" "codeberg.org/danjones000/combluotion/config"
"codeberg.org/danjones000/lenore/store" "codeberg.org/danjones000/combluotion/store"
"github.com/go-ap/storage-sqlite" "github.com/go-ap/storage-sqlite"
) )

View file

@ -1,7 +1,7 @@
package store package store
import ( import (
"codeberg.org/danjones000/lenore/config" "codeberg.org/danjones000/combluotion/config"
st "github.com/go-ap/fedbox/storage" st "github.com/go-ap/fedbox/storage"
proc "github.com/go-ap/processing" proc "github.com/go-ap/processing"
"github.com/openshift/osin" "github.com/openshift/osin"