import { beforeEach, describe, expect, it, vi } from 'vitest';

const mocked = vi.hoisted(() => ({
  query: vi.fn(),
  end: vi.fn(),
}));

vi.mock('../../db', () => ({ default: { query: mocked.query, end: mocked.end } }));

async function loadWorker() {
  vi.resetModules();
  return import('../pi-sibling-scanner');
}

describe('pi-sibling-scanner', () => {
  beforeEach(() => {
    vi.clearAllMocks();
    delete process.env.PI_SIBLING_SUPPRESSION_ENABLED;
  });

  it('exits cleanly when suppression flag is off', async () => {
    process.env.PI_SIBLING_SUPPRESSION_ENABLED = 'false';
    const { runSiblingSuppressionWorker } = await loadWorker();

    const result = await runSiblingSuppressionWorker({ query: mocked.query });

    expect(result).toEqual({ skipped: true, suppressed: 0 });
    expect(mocked.query).not.toHaveBeenCalled();
  });
});
