Blob


1 package mailmux
3 import (
4 "errors"
5 "net"
6 "os"
7 "testing"
8 )
10 const (
11 testUsername = "test@example.com"
12 testPassword = "dummy"
13 )
15 func newTestServer() *Server {
16 tmpdb, err := os.CreateTemp("", "")
17 if err != nil {
18 panic(err)
19 }
20 aliasdb, err := OpenAliasDB(tmpdb.Name(), "/usr/share/dict/words")
21 if err != nil {
22 panic(err)
23 }
24 userdb, err := OpenUserDB(tmpdb.Name(), os.TempDir())
25 if err != nil {
26 panic(err)
27 }
28 if err := userdb.Change(testUsername, Password(testPassword)); err != nil {
29 panic(err)
30 }
31 return &Server{
32 Aliases: aliasdb,
33 Users: userdb,
34 }
35 }
37 func TestBasicList(t *testing.T) {
38 srv := newTestServer()
39 ln, err := net.Listen("unix", "/tmp/test.sock")
40 if err != nil {
41 t.Fatal(err)
42 }
43 defer ln.Close()
44 go func() {
45 err := srv.Serve(ln)
46 if err != nil && !errors.Is(err, net.ErrClosed) {
47 t.Fatal(err)
48 }
49 }()
50 client, err := Dial("unix", "/tmp/test.sock")
51 if err != nil {
52 t.Fatal(err)
53 }
54 err = client.Auth("test@example.com", "dummy")
55 if err != nil {
56 t.Fatal(err)
57 }
58 _, err = client.NewAlias()
59 if err != nil {
60 t.Error(err)
61 }
62 _, err = client.Aliases()
63 if err != nil {
64 t.Log(err)
65 }
66 }