import assert from 'node:assert/strict';
import { describe, it } from 'node:test';
import { normalizeFeedbackStat } from '../src/service/api/feedback-normalize';

describe('normalizeFeedbackStat', () => {
  it('maps backend type/status count arrays to code-keyed records', () => {
    const result = normalizeFeedbackStat({
      total: 128,
      typeCounts: [
        { type: 1, count: 52 },
        { type: 2, count: 31 },
        { type: 3, count: 45 }
      ],
      statusCounts: [
        { status: 1, count: 40 },
        { status: 2, count: 33 },
        { status: 3, count: 50 },
        { status: 4, count: 5 }
      ]
    });

    assert.deepEqual(result, {
      total: 128,
      typeCounts: {
        '1': 52,
        '2': 31,
        '3': 45
      },
      statusCounts: {
        '1': 40,
        '2': 33,
        '3': 50,
        '4': 5
      }
    });
  });

  it('keeps zero-count dictionary codes visible to the facet panel', () => {
    const result = normalizeFeedbackStat({
      total: 0,
      typeCounts: [{ type: '1', count: 0 }],
      statusCounts: [{ status: '4', count: 0 }]
    });

    assert.deepEqual(result.typeCounts, { '1': 0 });
    assert.deepEqual(result.statusCounts, { '4': 0 });
  });
});
