package soql

import "testing"

func TestParseOnlyAdaptersRejectUnresolvedCalendarLiterals(t *testing.T) {
	for _, literal := range []string{"TODAY", "THIS_YEAR", "LAST_N_DAYS:30"} {
		raw := "SELECT Id FROM Item WHERE Due = " + literal
		if _, err := ParseSOQL(raw); err == nil {
			t.Fatalf("unresolved %s crossed parse-only seam", literal)
		}
		if _, err := ParseSOQLWith(raw, ParseOpts{AllowSemiJoin: true}); err == nil {
			t.Fatalf("unresolved %s crossed semi-join parse seam", literal)
		}
		if _, err := ParsePredicateFragment("Due = " + literal); err == nil {
			t.Fatalf("unresolved %s crossed predicate seam", literal)
		}
	}
	if _, err := ParseSOQL("SELECT Id FROM Item WHERE Due = 2026-09-08"); err != nil {
		t.Fatal(err)
	}
	if _, err := ParsePredicateFragment("Name = 'TODAY'"); err != nil {
		t.Fatal(err)
	}
}
