util.test.ts•1.33 kB
import { describe, expect, test } from 'vitest';
import { parseList } from './util.js';
describe('parseList', () => {
test('should parse comma-delimited list', () => {
const result = parseList('item1,item2,item3');
expect(result).toEqual(['item1', 'item2', 'item3']);
});
test('should handle spaces around items', () => {
const result = parseList('item1, item2 , item3');
expect(result).toEqual(['item1', 'item2', 'item3']);
});
test('should filter out empty items', () => {
const result = parseList('item1,,item2,');
expect(result).toEqual(['item1', 'item2']);
});
test('should handle custom delimiter', () => {
const result = parseList('item1|item2|item3', '|');
expect(result).toEqual(['item1', 'item2', 'item3']);
});
test('should handle single item', () => {
const result = parseList('item1');
expect(result).toEqual(['item1']);
});
test('should handle empty string', () => {
const result = parseList('');
expect(result).toEqual([]);
});
test('should handle string with only delimiters', () => {
const result = parseList(',,,');
expect(result).toEqual([]);
});
test('should handle semicolon delimiter', () => {
const result = parseList('item1; item2; item3', ';');
expect(result).toEqual(['item1', 'item2', 'item3']);
});
});