RemoveJSONTrailingComma.utils.test.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { describe, expect, it } from 'vitest'
  2. import { removeJSONTrailingComma } from '@/lib/helpers'
  3. describe('removeJSONTrailingComma', () => {
  4. it('should handle an empty object', () => {
  5. const jsonString = '{}'
  6. expect(removeJSONTrailingComma(jsonString)).toEqual(jsonString)
  7. })
  8. it('should handle an empty array', () => {
  9. const jsonString = '[]'
  10. expect(removeJSONTrailingComma(jsonString)).toEqual(jsonString)
  11. })
  12. it('should handle a JSON string without a trailing comma', () => {
  13. const jsonString = '{"name": "John", "age": 25}'
  14. expect(removeJSONTrailingComma(jsonString)).toEqual(jsonString)
  15. })
  16. it('should remove a trailing comma for JSON object', () => {
  17. const jsonString = '{"name": "John", "age": 25,}'
  18. const expectedOutput = '{"name": "John", "age": 25}'
  19. expect(removeJSONTrailingComma(jsonString)).toEqual(expectedOutput)
  20. })
  21. it('should remove a trailing commas in an array of objects', () => {
  22. const jsonString = '[{"fruit1": "apple","fruit2": "banana",}]'
  23. const expectedOutput = '[{"fruit1": "apple","fruit2": "banana"}]'
  24. expect(removeJSONTrailingComma(jsonString)).toEqual(expectedOutput)
  25. })
  26. it('should remove all trailing commas in an array of objects', () => {
  27. const jsonString = '[{"fruit1": "apple","fruit2": "banana",},]'
  28. const expectedOutput = '[{"fruit1": "apple","fruit2": "banana"}]'
  29. expect(removeJSONTrailingComma(jsonString)).toEqual(expectedOutput)
  30. })
  31. })