expect(dummy).toBe(undefined)
expect(mapSpy).toHaveBeenCalledTimes(1)
+ map.set('key', undefined)
+ expect(dummy).toBe(undefined)
+ expect(mapSpy).toHaveBeenCalledTimes(2)
map.set('key', 'value')
expect(dummy).toBe('value')
- expect(mapSpy).toHaveBeenCalledTimes(2)
+ expect(mapSpy).toHaveBeenCalledTimes(3)
map.set('key', 'value')
expect(dummy).toBe('value')
- expect(mapSpy).toHaveBeenCalledTimes(2)
+ expect(mapSpy).toHaveBeenCalledTimes(3)
map.delete('key')
expect(dummy).toBe(undefined)
- expect(mapSpy).toHaveBeenCalledTimes(3)
+ expect(mapSpy).toHaveBeenCalledTimes(4)
map.delete('key')
expect(dummy).toBe(undefined)
- expect(mapSpy).toHaveBeenCalledTimes(3)
+ expect(mapSpy).toHaveBeenCalledTimes(4)
map.clear()
expect(dummy).toBe(undefined)
- expect(mapSpy).toHaveBeenCalledTimes(3)
+ expect(mapSpy).toHaveBeenCalledTimes(4)
})
it('should not observe raw data', () => {
expect(dummy).toBe(undefined)
expect(mapSpy).toHaveBeenCalledTimes(1)
+ map.set(key, undefined)
+ expect(dummy).toBe(undefined)
+ expect(mapSpy).toHaveBeenCalledTimes(2)
map.set(key, 'value')
expect(dummy).toBe('value')
- expect(mapSpy).toHaveBeenCalledTimes(2)
+ expect(mapSpy).toHaveBeenCalledTimes(3)
map.set(key, 'value')
expect(dummy).toBe('value')
- expect(mapSpy).toHaveBeenCalledTimes(2)
+ expect(mapSpy).toHaveBeenCalledTimes(3)
map.delete(key)
expect(dummy).toBe(undefined)
- expect(mapSpy).toHaveBeenCalledTimes(3)
+ expect(mapSpy).toHaveBeenCalledTimes(4)
map.delete(key)
expect(dummy).toBe(undefined)
- expect(mapSpy).toHaveBeenCalledTimes(3)
+ expect(mapSpy).toHaveBeenCalledTimes(4)
})
it('should not observe raw data', () => {
const hadKey = proto.has.call(target, key)
const oldValue = proto.get.call(target, key)
const result = proto.set.call(target, key, value)
- if (value !== oldValue) {
- /* istanbul ignore else */
- if (__DEV__) {
- const extraInfo = { oldValue, newValue: value }
- if (!hadKey) {
- trigger(target, OperationTypes.ADD, key, extraInfo)
- } else {
- trigger(target, OperationTypes.SET, key, extraInfo)
- }
- } else {
- if (!hadKey) {
- trigger(target, OperationTypes.ADD, key)
- } else {
- trigger(target, OperationTypes.SET, key)
- }
+ /* istanbul ignore else */
+ if (__DEV__) {
+ const extraInfo = { oldValue, newValue: value }
+ if (!hadKey) {
+ trigger(target, OperationTypes.ADD, key, extraInfo)
+ } else if (value !== oldValue) {
+ trigger(target, OperationTypes.SET, key, extraInfo)
+ }
+ } else {
+ if (!hadKey) {
+ trigger(target, OperationTypes.ADD, key)
+ } else if (value !== oldValue) {
+ trigger(target, OperationTypes.SET, key)
}
}
return result