package store_test

import (
	"testing"

	"bit.admedia.com/scm/ad/adpilot-indexing-commit-intel.com/internal/store"
)

func TestAnalysisStoreWasProcessed(t *testing.T) {
	jobs := store.NewAnalysisStore()
	jobs.SaveJob(store.AnalysisJob{
		JobID:   "job_1",
		EventID: "evt_1",
		Status:  store.JobStatusRunning,
	})
	if jobs.WasProcessed("evt_1") {
		t.Fatal("expected not processed while running")
	}

	jobs.MarkCompleted("job_1", store.AnalysisResult{AnalysisID: "analysis_1"})
	if !jobs.WasProcessed("evt_1") {
		t.Fatal("expected processed after completion")
	}
}

func TestAnalysisStoreGetJobAndResult(t *testing.T) {
	jobs := store.NewAnalysisStore()
	jobs.SaveJob(store.AnalysisJob{JobID: "job_1", EventID: "evt_1", Status: store.JobStatusRunning})
	jobs.MarkCompleted("job_1", store.AnalysisResult{
		AnalysisID: "analysis_1",
		Summary:    "done",
	})

	job, ok := jobs.GetJob("job_1")
	if !ok || job.Status != store.JobStatusCompleted {
		t.Fatalf("job: %#v ok=%v", job, ok)
	}

	result, ok := jobs.GetResult("analysis_1")
	if !ok || result.Summary != "done" {
		t.Fatalf("result: %#v ok=%v", result, ok)
	}
}
