import { readFileSync } from 'node:fs';
import { describe, expect, it } from 'vitest';
describe('Result DB timeslot scope', () => {
it('forwards the active scan runs and applies them to facets and result rows', () => {
const appSource = readFileSync('src/app/App.tsx', 'utf8');
const browserSource = readFileSync('src/features/results-browser/ResultsBrowser.tsx', 'utf8');
const domainSource = readFileSync('src/domain/unified-result.ts', 'utf8');
const serverSource = readFileSync('server/assessor-http-server.ts', 'utf8');
const postgresSource = readFileSync('server/postgres/postgres-assessor-repository.ts', 'utf8');
expect(appSource).toContain('scanRunIds={app.activeScanRunIds}');
expect(appSource).toContain('assessmentIds={app.activeAssessmentIds}');
expect(browserSource).toContain("backendStatus !== 'connected' || !projectId || !scanRunIds?.length");
expect(browserSource).toContain('
No timeslot selected
');
expect(browserSource).toContain('assessmentIds');
expect(browserSource).toContain('queryUnifiedResultFacets(scopedQuery)');
expect(browserSource).toContain('queryUnifiedResults({ ...scopedQuery, offset: 0, limit })');
expect(browserSource).toContain('while (loadAll && items.length < firstPage.total)');
expect(browserSource).toContain('limit: MAX_QUERY_PAGE_SIZE');
expect(browserSource).toContain('>Load more');
expect(browserSource).toContain('>Load all');
expect(browserSource).toContain('DEFAULT_RESULT_DB_FILTERS: UnifiedResultQuery = { deviation: true }');
expect(browserSource).toContain('onReset={() => updateFilters({ ...DEFAULT_RESULT_DB_FILTERS })}');
expect(browserSource).toContain("'Export JSONL'");
expect(browserSource).toContain('queryAllUnifiedResults');
expect(browserSource).toContain('buildUnifiedResultJsonl(scopedQuery, results, generatedAt)');
expect(browserSource).toContain("item.sourceKind === 'environment-observation'");
expect(browserSource).toContain("item.sourceKind === 'policy-observation'");
expect(browserSource).toContain('item.policyValues');
expect(browserSource).toContain('item.environmentNormalizedValue');
expect(browserSource).toContain('item.environmentOriginalValue');
expect(domainSource).toContain("query.scanRunIds.includes(item.scanRunId)");
expect(domainSource).toContain("sourceKind: 'environment-observation'");
expect(domainSource).toContain("sourceKind: 'policy-observation'");
expect(domainSource).toContain('environmentProperty: observation.property');
expect(serverSource).toContain("scanRunIds: many('scanRunIds')");
expect(serverSource).toContain("assessmentIds: many('assessmentIds')");
expect(serverSource).toContain("environmentProperty: many('environmentProperty')");
expect(postgresSource).toContain("r.id = ANY(?::text[])");
expect(postgresSource).toContain('FROM assessor_environment_observations o');
expect(appSource).toContain('dataset && hasClientTimeslotScope &&