From 863f7d05fa77fce580117417f131a291435479f2 Mon Sep 17 00:00:00 2001 From: Chesterkxng Date: Tue, 1 Apr 2025 16:01:39 +0000 Subject: [PATCH] fix examples --- .../swap-csv-columns.service.test.ts | 204 +++++++++--------- 1 file changed, 104 insertions(+), 100 deletions(-) diff --git a/src/pages/tools/csv/swap-csv-columns/swap-csv-columns.service.test.ts b/src/pages/tools/csv/swap-csv-columns/swap-csv-columns.service.test.ts index 303bff9..308ac93 100644 --- a/src/pages/tools/csv/swap-csv-columns/swap-csv-columns.service.test.ts +++ b/src/pages/tools/csv/swap-csv-columns/swap-csv-columns.service.test.ts @@ -1,137 +1,141 @@ import { describe, it, expect } from 'vitest'; +import { InitialValuesType } from './types'; import { csvColumnsSwap } from './service'; + describe('csvColumnsSwap', () => { it('should swap columns by position', () => { const input = 'A,B,C\n1,2,3\n4,5,6'; - const result = csvColumnsSwap( - input, - true, // fromPositionStatus - '1', // fromPosition - true, // toPositionStatus - '3', // toPosition - '', // fromHeader - '', // toHeader - true, // dataCompletion - '', // customFiller - false, // deleteComment - '#', // commentCharacter - true // emptyLines - ); + + const options: InitialValuesType = { + fromPositionStatus: true, // fromPositionStatus + fromPosition: '1', // fromPosition + toPositionStatus: true, // toPositionStatus + toPosition: '3', // toPosition + fromHeader: '', // fromHeader + toHeader: '', // toHeader + emptyValuesFilling: true, // dataCompletion + customFiller: '', // customFiller + deleteComment: false, // deleteComment + commentCharacter: '#', // commentCharacter + emptyLines: true // emptyLines + }; + + const result = csvColumnsSwap(input, options); expect(result).toBe('C,B,A\n3,2,1\n6,5,4'); }); it('should swap columns by header', () => { const input = 'A,B,C\n1,2,3\n4,5,6'; - const result = csvColumnsSwap( - input, - false, // fromPositionStatus - '', // fromPosition - false, // toPositionStatus - '', // toPosition - 'A', // fromHeader - 'C', // toHeader - true, // dataCompletion - '', // customFiller - false, // deleteComment - '#', // commentCharacter - true // emptyLines - ); + const options: InitialValuesType = { + fromPositionStatus: false, // fromPositionStatus + fromPosition: '', // fromPosition + toPositionStatus: false, // toPositionStatus + toPosition: '', // toPosition + fromHeader: 'A', // fromHeader + toHeader: 'C', // toHeader + emptyValuesFilling: true, // dataCompletion + customFiller: '', // customFiller + deleteComment: false, // deleteComment + commentCharacter: '#', // commentCharacter + emptyLines: true // emptyLines + }; + const result = csvColumnsSwap(input, options); expect(result).toBe('C,B,A\n3,2,1\n6,5,4'); }); it('should fill missing values with custom filler', () => { const input = 'A,B,C\n1,2\n4'; - const result = csvColumnsSwap( - input, - true, // fromPositionStatus - '1', // fromPosition - true, // toPositionStatus - '3', // toPosition - '', // fromHeader - '', // toHeader - false, // dataCompletion - 'X', // customFiller - false, // deleteComment - '#', // commentCharacter - true // emptyLines - ); + const options: InitialValuesType = { + fromPositionStatus: true, // fromPositionStatus + fromPosition: '1', // fromPosition + toPositionStatus: true, // toPositionStatus + toPosition: '3', // toPosition + fromHeader: '', // fromHeader + toHeader: '', // toHeader + emptyValuesFilling: false, // dataCompletion + customFiller: 'X', // customFiller + deleteComment: false, // deleteComment + commentCharacter: '#', // commentCharacter + emptyLines: true // emptyLines + }; + const result = csvColumnsSwap(input, options); expect(result).toBe('C,B,A\nX,2,1\nX,X,4'); }); it('should skip filling missing values', () => { const input = 'A,B,C\n1,2\n4'; - const result = csvColumnsSwap( - input, - true, // fromPositionStatus - '1', // fromPosition - true, // toPositionStatus - '3', // toPosition - '', // fromHeader - '', // toHeader - true, // dataCompletion - '', // customFiller - false, // deleteComment - '#', // commentCharacter - true // emptyLines - ); + const options: InitialValuesType = { + fromPositionStatus: true, // fromPositionStatus + fromPosition: '1', // fromPosition + toPositionStatus: true, // toPositionStatus + toPosition: '3', // toPosition + fromHeader: '', // fromHeader + toHeader: '', // toHeader + emptyValuesFilling: true, // dataCompletion + customFiller: '', // customFiller + deleteComment: false, // deleteComment + commentCharacter: '#', // commentCharacter + emptyLines: true // emptyLines + }; + const result = csvColumnsSwap(input, options); expect(result).toBe('C,B,A\n,2,1\n,,4'); }); it('should throw an error for invalid column positions', () => { const input = 'A,B,C\n1,2,3\n4,5,6'; - expect(() => - csvColumnsSwap( - input, - true, // fromPositionStatus - '0', // fromPosition - true, // toPositionStatus - '3', // toPosition - '', // fromHeader - '', // toHeader - true, // dataCompletion - '', // customFiller - false, // deleteComment - '#', // commentCharacter - true // emptyLines - ) - ).toThrow('Invalid column positions. Check headers or positions.'); + const options: InitialValuesType = { + fromPositionStatus: true, // fromPositionStatus + fromPosition: '0', // fromPosition + toPositionStatus: true, // toPositionStatus + toPosition: '3', // toPosition + fromHeader: '', // fromHeader + toHeader: '', // toHeader + emptyValuesFilling: true, // dataCompletion + customFiller: '', // customFiller + deleteComment: false, // deleteComment + commentCharacter: '#', // commentCharacter + emptyLines: true // emptyLines + }; + expect(() => csvColumnsSwap(input, options)).toThrow( + 'Invalid column positions. Check headers or positions.' + ); }); it('should handle empty input gracefully', () => { const input = ''; - const result = csvColumnsSwap( - input, - true, // fromPositionStatus - '1', // fromPosition - true, // toPositionStatus - '3', // toPosition - '', // fromHeader - '', // toHeader - true, // dataCompletion - '', // customFiller - false, // deleteComment - '#', // commentCharacter - true // emptyLines - ); + const options: InitialValuesType = { + fromPositionStatus: true, // fromPositionStatus + fromPosition: '1', // fromPosition + toPositionStatus: true, // toPositionStatus + toPosition: '3', // toPosition + fromHeader: '', // fromHeader + toHeader: '', // toHeader + emptyValuesFilling: true, // dataCompletion + customFiller: '', // customFiller + deleteComment: false, // deleteComment + commentCharacter: '#', // commentCharacter + emptyLines: true // emptyLines + }; + const result = csvColumnsSwap(input, options); expect(result).toBe(''); }); it('should remove comments if deleteComment is true', () => { const input = '# Comment\nA,B,C\n1,2,3\n4,5,6'; - const result = csvColumnsSwap( - input, - true, // fromPositionStatus - '1', // fromPosition - true, // toPositionStatus - '3', // toPosition - '', // fromHeader - '', // toHeader - true, // dataCompletion - '', // customFiller - true, // deleteComment - '#', // commentCharacter - true // emptyLines - ); + const options: InitialValuesType = { + fromPositionStatus: true, // fromPositionStatus + fromPosition: '1', // fromPosition + toPositionStatus: true, // toPositionStatus + toPosition: '3', // toPosition + fromHeader: '', // fromHeader + toHeader: '', // toHeader + emptyValuesFilling: true, // dataCompletion + customFiller: '', // customFiller + deleteComment: true, // deleteComment + commentCharacter: '#', // commentCharacter + emptyLines: true // emptyLines + }; + const result = csvColumnsSwap(input, options); expect(result).toBe('C,B,A\n3,2,1\n6,5,4'); }); });