package review

import (
	"os"
	"strings"
	"testing"
)

func TestReviewContextTaskTargetHashIncludesCanonicalTaskScope(t *testing.T) {
	first := reviewContextTaskTargetHash("tsk_1", "mac_1", "/repo", "main", "feature")
	same := reviewContextTaskTargetHash("tsk_1", "mac_1", "/repo", "main", "feature")
	other := reviewContextTaskTargetHash("tsk_2", "mac_1", "/repo", "main", "feature")
	if first != same {
		t.Fatalf("same task target hash changed: %s != %s", first, same)
	}
	if first == other {
		t.Fatalf("different task scopes must not share a target hash: %s", first)
	}
}

func TestReviewTaskIDResolverUsesTaskBoardWorkspaceID(t *testing.T) {
	source, err := os.ReadFile("reviews.go")
	if err != nil {
		t.Fatal(err)
	}
	text := string(source)
	if !strings.Contains(text, "WHERE board.workspace_id = $1 AND task.id = $2") {
		t.Fatal("task review resolver must fence task IDs through task_boards.workspace_id")
	}
	if strings.Contains(text, "board.workspace_ref") {
		t.Fatal("task_boards has no workspace_ref column")
	}
}
