Skip to content
quarry Artifact [7f7136db23]
Login

Artifact [7f7136db23]

Artifact 7f7136db23a070dada204fa036f30202296d58d50e8fcb477d39b2cef124aa9c:


package index

import (
	"testing"
	"time"
)

// A size refusal is remembered with its version, time and size, and a
// later refusal replaces it.
func TestATreeRefusalIsRemembered(t *testing.T) {
	ix := openIndex(t)
	if _, _, _, ok, err := ix.TreeRefusal(); err != nil || ok {
		t.Fatalf("FAIL: a fresh index reports a refusal: ok=%v err=%v", ok, err)
	}
	at := time.Date(2026, 10, 24, 13, 42, 57, 0, time.UTC)
	if err := ix.TreeRefused("20b649909ac5", 768455335, at); err != nil {
		t.Fatal(err)
	}
	v, gotAt, bytes, ok, err := ix.TreeRefusal()
	if err != nil || !ok || v != "20b649909ac5" || !gotAt.Equal(at) || bytes != 768455335 {
		t.Fatalf("FAIL: refusal reads %q %s %d ok=%v err=%v", v, gotAt, bytes, ok, err)
	}
	if err := ix.TreeRefused("next", 800<<20, at.Add(time.Hour)); err != nil {
		t.Fatal(err)
	}
	if v, _, _, _, _ := ix.TreeRefusal(); v != "next" {
		t.Errorf("FAIL: a later refusal did not replace the first: %q", v)
	}
}