package agent

import (
	"errors"
	"testing"
)

func TestMarkNameConflictPreservesCauseAndClassification(t *testing.T) {
	cause := errors.New("name already exists")
	err := MarkNameConflict(cause)
	if !errors.Is(err, cause) {
		t.Fatalf("MarkNameConflict() = %v, want original cause", err)
	}
	if !errors.Is(err, ErrNameConflict) {
		t.Fatalf("MarkNameConflict() = %v, want ErrNameConflict", err)
	}
	if err.Error() != cause.Error() {
		t.Fatalf("MarkNameConflict().Error() = %q, want %q", err.Error(), cause.Error())
	}
	if MarkNameConflict(nil) != nil {
		t.Fatal("MarkNameConflict(nil) must remain nil")
	}
	if got := MarkNameConflict(err); got != err {
		t.Fatalf("MarkNameConflict() must not wrap an existing classification twice")
	}
}
