All files / module/mutations setAllMutation.js

71.43% Statements 5/7
50% Branches 1/2
66.67% Functions 2/3
71.43% Lines 5/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28                          4x   8x   8x       8x 8x          
import { hasOwn } from '../../shared/utils'
import Vue from 'vue'
 
/**
 * Proxy for setting Resource Objects on a collection module
 *
 * The `Vuex.commit`-Syntax is
 *
 * `commit('module/set', receivedCollectionObject)`
 *
 * @param {ResourceBuilder} resourceBuilder
 */
export function setAllMutation (resourceBuilder) {
  return new Proxy(() => {}, {
    apply (target, thisArg, [state, payload]) {
      const settablePayload = resourceBuilder.build(payload)
 
      Iif (hasOwn(settablePayload, 'id')) {
        Vue.set(state.items, settablePayload.id, settablePayload)
        Vue.set(state.initial, settablePayload.id, settablePayload)
      } else {
        state.items = { ...state.items, ...settablePayload }
        state.initial = { ...state.initial, ...settablePayload }
      }
    }
  })
}