two/internal/dispatcher/agent/helpers_test.go
GnomeZworc 78363194bf
f-37: add test for error state #37
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
2026-08-13 23:13:25 +02:00

46 lines
1.1 KiB
Go

package dispatcher
import (
"io"
"log/slog"
"testing"
configuration "git.g3e.fr/syonad/two/internal/config/agent"
"git.g3e.fr/syonad/two/pkg/db/kv"
"git.g3e.fr/syonad/two/pkg/worker"
"github.com/dgraph-io/badger/v4"
)
func newTestDispatcher(t *testing.T) (*Dispatcher, *badger.DB) {
t.Helper()
db := kv.InitDB(kv.Config{Path: t.TempDir()}, false)
t.Cleanup(func() { db.Close() })
q := worker.New(100)
q.Start(2)
cfg := &configuration.Config{DefaultInterface: "br-default"}
cfg.Interfaces = map[string]string{"vms": "br-vms"}
logger := slog.New(slog.NewTextHandler(io.Discard, nil))
return New(q, db, cfg, logger), db
}
// mockCmd implémente Command sans aucune dépendance système.
type mockCmd struct {
key string
prepareFn func(*badger.DB, *configuration.Config) error
executeFn func(*badger.DB, *configuration.Config) error
}
func (m mockCmd) Key() string {
if m.key == "" {
return "vpc/mock"
}
return m.key
}
func (m mockCmd) Prepare(db *badger.DB, cfg *configuration.Config) error {
return m.prepareFn(db, cfg)
}
func (m mockCmd) Execute(db *badger.DB, cfg *configuration.Config) error {
return m.executeFn(db, cfg)
}