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

import { getTableChildColumnLabel, getTableChildHeaderLabel } from '../tableChildLabel';

describe('table child column labels', () => {
  it('keeps the Chinese table prefix while using only the child English name', () => {
    expect(getTableChildColumnLabel('编号申请明细\nNumber Request Details', '编号规则\nNumbering Rule')).toBe('编号申请明细-编号规则\nNumbering Rule');
  });

  it('renders the parent title separately and removes a legacy English prefix', () => {
    expect(getTableChildHeaderLabel('编号申请明细\nNumber Request Details', '编号申请明细-编号规则\nNumber Request Details - Numbering Rule')).toBe(
      '编号规则\nNumbering Rule',
    );
  });

  it('accepts literal escaped newlines and leaves unrelated English intact', () => {
    expect(getTableChildColumnLabel(String.raw`编号申请明细\nNumber Request Details`, String.raw`编号规则\nNumbering Rule`)).toBe(
      '编号申请明细-编号规则\nNumbering Rule',
    );
    expect(getTableChildHeaderLabel('编号申请明细\nNumber Request Details', '编号申请明细-编号规则\nNumbering Rule')).toBe('编号规则\nNumbering Rule');
  });

  it('uses the field translation when a legacy table prefix differs from the current table name', () => {
    expect(
      getTableChildHeaderLabel(
        '特申请对以下文件进行撤销\nRequest to Revoke the Following Documents',
        '撤销明细-文件编号\nRevocation Details - Document Number',
        '文件编号\nDocument Number',
      ),
    ).toBe('文件编号\nDocument Number');
  });
});
