Skip to content
quarry Artifact [396cb38d13]
Login

Artifact [396cb38d13]

Artifact 396cb38d135b9385ddcd71a97fd24158ca90a8067a469a3f6756eeb64348912c:


package oltp

import (
	"path/filepath"
	"testing"
)

func TestGateBypassRoundTrip(t *testing.T) {
	db, err := Open(filepath.Join(t.TempDir(), "o.db"))
	if err != nil {
		t.Fatal(err)
	}
	defer db.Close()
	if err := db.RecordForgeAccept("alpha", "m1"); err != nil {
		t.Fatal(err)
	}
	if ok, _ := db.ForgeAccepted("alpha", "m1"); !ok {
		t.Fatal("a forge accept was forgotten")
	}
	if ok, _ := db.ForgeAccepted("alpha", "rogue"); ok {
		t.Fatal("a rogue check-in read as forge-accepted")
	}
	if _, ok := db.GateWatch("alpha", "trunk"); ok {
		t.Fatal("a watch existed before anyone set it")
	}
	if err := db.SetGateWatch("alpha", "trunk", "t1"); err != nil {
		t.Fatal(err)
	}
	if tip, ok := db.GateWatch("alpha", "trunk"); !ok || tip != "t1" {
		t.Fatalf("watch = %q, %v", tip, ok)
	}
	if err := db.AddGateBypass("alpha", "trunk", "rogue"); err != nil {
		t.Fatal(err)
	}
	if err := db.AddGateBypass("alpha", "trunk", "rogue"); err != nil {
		t.Fatal(err) // twice is one finding
	}
	got, err := db.GateBypasses("alpha", 10)
	if err != nil || len(got) != 1 || got[0].Checkin != "rogue" {
		t.Fatalf("bypasses = %v, %v", got, err)
	}
}