package persistence

import (
	"testing"

	"github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/permissionstatev1"
)

func testPermissionStateAdvanceReceipt(
	t *testing.T,
	lineageBytes []byte,
	beforeRevision uint64,
	afterRevision uint64,
) permissionstatev1.AdvanceReceipt {
	t.Helper()
	lineage, err := permissionstatev1.LineageFromBytes(lineageBytes)
	if err != nil {
		t.Fatal(err)
	}
	before, err := permissionstatev1.NewVersion(lineage, beforeRevision)
	if err != nil {
		t.Fatal(err)
	}
	after, err := permissionstatev1.NewVersion(lineage, afterRevision)
	if err != nil {
		t.Fatal(err)
	}
	receipt, err := permissionstatev1.NewAdvanceReceipt(before, after)
	if err != nil {
		t.Fatal(err)
	}
	return receipt
}
