import { describe, expect, it } from 'vitest' import { parseCampaignHiddenColumns, resolveCampaignColumnVisibility, resolveVisibleColumns, serializeCampaignHiddenColumns, toggleHiddenColumn, } from '@/lib/campaignColumnVisibility' describe('parseCampaignHiddenColumns', () => { it('reads one list and several lists', () => { expect(parseCampaignHiddenColumns('municipios:kind~trend')).toEqual({ municipios: ['kind', 'trend'], }) expect(parseCampaignHiddenColumns('municipios:kind|liderancas:organizations')).toEqual({ municipios: ['kind'], liderancas: ['organizations'], }) }) it('keeps an absent list distinct from an explicitly empty list', () => { expect(parseCampaignHiddenColumns(undefined)).toEqual({}) expect(parseCampaignHiddenColumns('')).toEqual({}) expect(parseCampaignHiddenColumns('municipios:__none__')).toEqual({ municipios: [] }) }) it('ignores malformed entries instead of guessing', () => { expect(parseCampaignHiddenColumns('garbage')).toEqual({}) expect(parseCampaignHiddenColumns(':kind')).toEqual({}) expect(parseCampaignHiddenColumns('municipios:')).toEqual({}) }) it('drops unknown lists and column ids that are not identifiers', () => { expect(parseCampaignHiddenColumns('desconhecida:email|municipios:kind')).toEqual({ municipios: ['kind'], }) expect(parseCampaignHiddenColumns('municipios:kind~