Files
omni-tools/src/pages/tools/csv/csv-to-yaml/csv-to-yaml.service.test.ts
2025-04-06 01:47:10 +02:00

49 lines
1.6 KiB
TypeScript

import { describe, it, expect } from 'vitest';
import { main } from './service';
import { InitialValuesType } from './types';
// filepath: c:\CODE\omni-tools\src\pages\tools\csv\csv-to-yaml\csv-to-yaml.service.test.ts
describe('main', () => {
const defaultOptions: InitialValuesType = {
csvSeparator: ',',
quoteCharacter: '"',
commentCharacter: '#',
emptyLines: false,
headerRow: true,
spaces: 2
};
it('should return empty string for empty input', () => {
const result = main('', defaultOptions);
expect(result).toEqual('');
});
it('should return this if header is set to false', () => {
const options = { ...defaultOptions, headerRow: false };
const result = main('John,30\nEmma,50', options);
expect(result).toEqual('-\n - John\n - 30\n-\n - Emma\n - 50');
});
it('should return this header is set to true', () => {
const options = { ...defaultOptions };
const result = main('Name,Age\nJohn,30\nEmma,50', options);
expect(result).toEqual(
'-\n Name: John\n Age: 30\n-\n Name: Emma\n Age: 50'
);
});
it('should return this header is set to true and comment flag set', () => {
const options = { ...defaultOptions, commentcharacter: '#' };
const result = main('Name,Age\nJohn,30\n#Emma,50', options);
expect(result).toEqual('-\n Name: John\n Age: 30');
});
it('should return this header is set to true and spaces is set to 3', () => {
const options = { ...defaultOptions, spaces: 3 };
const result = main('Name,Age\nJohn,30\nEmma,50', options);
expect(result).toEqual(
'-\n Name: John\n Age: 30\n-\n Name: Emma\n Age: 50'
);
});
});