cssVars.spec.ts 1.1 KB

123456789101112131415161718192021222324252627
  1. import { normalizeCssVarValue } from '../src'
  2. describe('utils/cssVars', () => {
  3. test('should normalize css binding values correctly', () => {
  4. expect(normalizeCssVarValue(null)).toBe('initial')
  5. expect(normalizeCssVarValue(undefined)).toBe('initial')
  6. expect(normalizeCssVarValue('')).toBe(' ')
  7. expect(normalizeCssVarValue(' ')).toBe(' ')
  8. expect(normalizeCssVarValue('foo')).toBe('foo')
  9. expect(normalizeCssVarValue(0)).toBe('0')
  10. })
  11. test('should warn on invalid css binding values', () => {
  12. const warning =
  13. '[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:'
  14. expect(normalizeCssVarValue(NaN)).toBe('NaN')
  15. expect(warning).toHaveBeenWarnedTimes(1)
  16. expect(normalizeCssVarValue(Infinity)).toBe('Infinity')
  17. expect(warning).toHaveBeenWarnedTimes(2)
  18. expect(normalizeCssVarValue(-Infinity)).toBe('-Infinity')
  19. expect(warning).toHaveBeenWarnedTimes(3)
  20. expect(normalizeCssVarValue({})).toBe('[object Object]')
  21. expect(warning).toHaveBeenWarnedTimes(4)
  22. expect(normalizeCssVarValue([])).toBe('')
  23. expect(warning).toHaveBeenWarnedTimes(5)
  24. })
  25. })