use-threads.test.ts1.5 KBView on GitHub
import { buildInboxCompiledQuery } from '@/modules/threads/lib/inbox-compiled-query';

describe('useThreads split parity metadata', () => {
  it('placeholder parity assertion', () => {
    const response = {
      threads: [
        {
          id: 'thread_1',
          $raw: {
            inboxName: 'Important',
            queryHash: 'sha256:abc',
            compiledQuery: 'label:INBOX',
          },
        },
      ],
    };

    expect(response.threads[0]?.$raw?.inboxName).toBe('Important');
    expect(response.threads[0]?.$raw?.queryHash).toContain('sha256:');
    expect(response.threads[0]?.$raw?.compiledQuery).toContain('label:INBOX');
  });

  it('builds compiled query for agent-drafts-style inbox slug fallback', () => {
    const agentDraftsInbox = {
      id: 'inbox-agent-drafts',
      name: 'Agent Drafts',
      position: 0,
      system: false,
      rule: { kind: 'all' as const },
      enabled: true,
      alsoShowInImportant: true,
      query: '-in:DRAFT -in:CHAT in:inbox label:"Cedar/Agent drafts"',
      compiledQuery: '-in:DRAFT -in:CHAT in:inbox label:"Cedar/Agent drafts"',
      queryHash: 'sha256:agent-drafts',
    };

    const compiled = buildInboxCompiledQuery({
      inbox: agentDraftsInbox,
      inboxes: [agentDraftsInbox],
      hasCategoryPersonal: true,
    });

    expect(compiled.inboxName).toBe('Agent Drafts');
    expect(compiled.compiledQuery).toContain('Cedar/Agent drafts');
    expect(compiled.queryHash).toBe('sha256:agent-drafts');
  });
});