Skip to content
quarry Artifact [87f01de38b]
Login

Artifact [87f01de38b]

Artifact 87f01de38b2a66a47d14732e4d1878052cb080017f3a5a8e4073420461e2611f:


package oltp

import (
	"path/filepath"
	"testing"
)

// The secret is minted once and answered the same every time after:
// notify was handed it at registration and verifies with it for ever.
func TestNotifyHookSecretIsStable(t *testing.T) {
	d, err := Open(filepath.Join(t.TempDir(), "oltp.db"))
	if err != nil {
		t.Fatal(err)
	}
	defer d.Close()
	a, err := d.NotifyHookSecret()
	if err != nil || len(a) < 32 {
		t.Fatalf("FAIL: first secret %q, %v", a, err)
	}
	b, err := d.NotifyHookSecret()
	if err != nil || a != b {
		t.Fatalf("FAIL: the secret changed between calls: %q then %q (%v)", a, b, err)
	}
	if err := d.SetNotifyHookEndpoint("ep_1", "https://forge/api/v1/notify/events"); err != nil {
		t.Fatalf("FAIL: %v", err)
	}
	t.Log("ok: one secret, minted once")
}

// A redelivered mail is recognised by its Message-ID.
func TestInboundReplyDedup(t *testing.T) {
	d, err := Open(filepath.Join(t.TempDir(), "oltp.db"))
	if err != nil {
		t.Fatal(err)
	}
	defer d.Close()
	if _, seen, err := d.InboundReplySeen("<m1@mail>"); err != nil || seen {
		t.Fatalf("FAIL: unseen mail reported seen (%v)", err)
	}
	if err := d.RecordInboundReply("<m1@mail>", "forum-reply:abc:lou", "lou", "forum:abc"); err != nil {
		t.Fatal(err)
	}
	outcome, seen, err := d.InboundReplySeen("<m1@mail>")
	if err != nil || !seen || outcome != "forum:abc" {
		t.Fatalf("FAIL: seen=%v outcome=%q err=%v", seen, outcome, err)
	}
	t.Log("ok: a redelivery is answered from the record")
}