25 lines
687 B
Go
25 lines
687 B
Go
package provider
|
|
|
|
import (
|
|
"orchestra/internal/domain"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
type sink struct{ events []domain.Event }
|
|
|
|
func (s *sink) Append(e domain.Event) error { s.events = append(s.events, e); return nil }
|
|
func TestJSONLIngest(t *testing.T) {
|
|
s := &sink{}
|
|
n, err := (JSONL{}).Ingest(strings.NewReader("{\"source\":\"local\",\"external_id\":\"1\",\"project\":\"demo\"}\n"), s)
|
|
if err != nil || n != 1 || len(s.events) != 1 {
|
|
t.Fatalf("n=%d events=%d err=%v", n, len(s.events), err)
|
|
}
|
|
}
|
|
func TestJSONLRejectsMalformedLine(t *testing.T) {
|
|
n, err := (JSONL{}).Ingest(strings.NewReader("not-json\n"), &sink{})
|
|
if err == nil || n != 0 {
|
|
t.Fatalf("n=%d err=%v", n, err)
|
|
}
|
|
}
|