package service

import (
	"errors"
	"testing"

	"github.com/pingcap/agent-git-service/internal/db"
	"github.com/pingcap/agent-git-service/internal/service/internal/repositorymutation"
)

func TestRepositoryMutationPreconditionMapsToConflict(t *testing.T) {
	err := repositoryMutationError(repositorymutation.ErrRepositoryMutationConflict)
	if !errors.Is(err, ErrConflict) {
		t.Fatalf("repositoryMutationError(precondition) = %v, want ErrConflict", err)
	}
}

func TestUpdateRepositoryRefFailsClosedWithoutPrivateOwner(t *testing.T) {
	for _, service := range []*Service{nil, {}} {
		err := service.UpdateRepositoryRef(t.Context(), db.Repository{}, "refs/heads/main", "1111111111111111111111111111111111111111", true)
		if !errors.Is(err, ErrRepositoryMigrationConflict) {
			t.Fatalf("UpdateRepositoryRef = %v, want ErrRepositoryMigrationConflict", err)
		}
	}
}
