expect(el.style.cssText.replace(/\s/g, '')).toBe('color:red;')
})
+ // #1309
+ it('should not patch same string style', () => {
+ const el = document.createElement('div')
+ const fn = jest.fn()
+ const value = (el.style.cssText = 'color:red;')
+ Object.defineProperty(el.style, 'cssText', {
+ get(): any {
+ return value
+ },
+ set: fn
+ })
+ patchProp(el, 'style', value, value)
+ expect(el.style.cssText.replace(/\s/g, '')).toBe('color:red;')
+ expect(fn).not.toBeCalled()
+ })
+
it('plain object', () => {
const el = document.createElement('div')
patchProp(el, 'style', {}, { color: 'red' })
if (!next) {
el.removeAttribute('style')
} else if (isString(next)) {
- style.cssText = next
+ if (prev !== next) {
+ style.cssText = next
+ }
} else {
for (const key in next) {
setStyle(style, key, next[key] as string)