diff --git a/src/utils/camelizeStyleName.ts b/src/utils/camelizeStyleName.ts index 2d43cbb..aa1d48b 100644 --- a/src/utils/camelizeStyleName.ts +++ b/src/utils/camelizeStyleName.ts @@ -1,5 +1,9 @@ import { camelize } from './stringFormatter'; -const msPattern = /^ms-/; +const msPattern = /^-ms-/; -export default (name: string) => camelize(name.replace(msPattern, 'ms-')); +export default function camelizeStyleName(name: string) { + // The `-ms` prefix is converted to lowercase `ms`. + // http://www.andismith.com/blog/2012/02/modernizr-prefixed/ + return camelize(name.replace(msPattern, 'ms-')); +} diff --git a/test/utilsSpec.js b/test/utilsSpec.js new file mode 100644 index 0000000..42a06d8 --- /dev/null +++ b/test/utilsSpec.js @@ -0,0 +1,14 @@ +import camelizeStyleName from '../src/utils/camelizeStyleName'; + +describe('Utils', () => { + describe('camelizeStyleName', () => { + // https://www.andismith.com/blogs/2012/02/modernizr-prefixed/ + it('Should return the correct Modernizr prefix', () => { + expect(camelizeStyleName('-ms-transform')).to.equal('msTransform'); + expect(camelizeStyleName('-moz-transform')).to.equal('MozTransform'); + expect(camelizeStyleName('-o-transform')).to.equal('OTransform'); + expect(camelizeStyleName('-webkit-transform')).to.equal('WebkitTransform'); + expect(camelizeStyleName('transform')).to.equal('transform'); + }); + }); +});