@labdigital/commercetools-mock 2.61.2 → 2.61.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -2138,14 +2138,15 @@ var BusinessUnitUpdateHandler = class extends AbstractUpdateHandler {
2138
2138
  resource.stores.push(newStore);
2139
2139
  }
2140
2140
  }
2141
- changeAddress(context, resource, { addressId, address }) {
2142
- const existingAddressIndex = resource.addresses.findIndex((addr) => addr.id === addressId);
2143
- if (existingAddressIndex === -1) throw new Error(`Address with id ${addressId} not found`);
2141
+ changeAddress(context, resource, { addressId, addressKey, address }) {
2142
+ const current = this._findAddress(resource, addressId, addressKey, true);
2143
+ assert(current?.id);
2144
+ const oldAddressIndex = resource.addresses.findIndex((a) => a.id === current.id);
2144
2145
  const newAddress = createAddress({
2145
2146
  ...address,
2146
- id: addressId
2147
+ id: current.id
2147
2148
  }, context.projectKey, this._storage);
2148
- if (newAddress) resource.addresses[existingAddressIndex] = newAddress;
2149
+ if (newAddress) resource.addresses[oldAddressIndex] = newAddress;
2149
2150
  }
2150
2151
  changeApprovalRuleMode(context, resource, { approvalRuleMode }) {
2151
2152
  resource.approvalRuleMode = approvalRuleMode;
@@ -2187,27 +2188,44 @@ var BusinessUnitUpdateHandler = class extends AbstractUpdateHandler {
2187
2188
  setStoreMode(context, resource, { storeMode }) {
2188
2189
  resource.storeMode = storeMode;
2189
2190
  }
2190
- setDefaultShippingAddress(context, resource, { addressId }) {
2191
- resource.defaultShippingAddressId = addressId;
2191
+ setDefaultShippingAddress(context, resource, { addressId, addressKey }) {
2192
+ const address = this._findAddress(resource, addressId, addressKey, true);
2193
+ assert(address?.id);
2194
+ resource.defaultShippingAddressId = address.id;
2195
+ if (resource.shippingAddressIds === void 0) resource.shippingAddressIds = [];
2196
+ if (!resource.shippingAddressIds.includes(address.id)) resource.shippingAddressIds.push(address.id);
2192
2197
  }
2193
- addShippingAddressId(context, resource, { addressId }) {
2194
- if (!resource.shippingAddressIds) resource.shippingAddressIds = [];
2195
- if (addressId) resource.shippingAddressIds.push(addressId);
2198
+ addShippingAddressId(context, resource, { addressId, addressKey }) {
2199
+ const address = this._findAddress(resource, addressId, addressKey, true);
2200
+ assert(address?.id);
2201
+ if (resource.shippingAddressIds === void 0) resource.shippingAddressIds = [];
2202
+ if (!resource.shippingAddressIds.includes(address.id)) resource.shippingAddressIds.push(address.id);
2203
+ return resource;
2196
2204
  }
2197
- removeShippingAddressId(context, resource, { addressId }) {
2198
- if (resource.shippingAddressIds) resource.shippingAddressIds = resource.shippingAddressIds.filter((id) => id !== addressId);
2199
- if (resource.defaultShippingAddressId === addressId) resource.defaultShippingAddressId = void 0;
2205
+ removeShippingAddressId(context, resource, { addressId, addressKey }) {
2206
+ const address = this._findAddress(resource, addressId, addressKey, true);
2207
+ assert(address?.id);
2208
+ resource.shippingAddressIds = resource.shippingAddressIds?.filter((id) => id !== address.id);
2209
+ if (resource.defaultShippingAddressId === address.id) resource.defaultShippingAddressId = void 0;
2200
2210
  }
2201
- addBillingAddressId(context, resource, { addressId }) {
2202
- if (!resource.billingAddressIds) resource.billingAddressIds = [];
2203
- if (addressId) resource.billingAddressIds.push(addressId);
2211
+ addBillingAddressId(context, resource, { addressId, addressKey }) {
2212
+ const address = this._findAddress(resource, addressId, addressKey, true);
2213
+ assert(address?.id);
2214
+ if (resource.billingAddressIds === void 0) resource.billingAddressIds = [];
2215
+ if (!resource.billingAddressIds.includes(address.id)) resource.billingAddressIds.push(address.id);
2204
2216
  }
2205
- removeBillingAddressId(context, resource, { addressId }) {
2206
- if (resource.billingAddressIds) resource.billingAddressIds = resource.billingAddressIds.filter((id) => id !== addressId);
2207
- if (resource.defaultBillingAddressId === addressId) resource.defaultBillingAddressId = void 0;
2217
+ removeBillingAddressId(context, resource, { addressId, addressKey }) {
2218
+ const address = this._findAddress(resource, addressId, addressKey, true);
2219
+ assert(address?.id);
2220
+ resource.billingAddressIds = resource.billingAddressIds?.filter((id) => id !== address.id);
2221
+ if (resource.defaultBillingAddressId === address.id) resource.defaultBillingAddressId = void 0;
2208
2222
  }
2209
- setDefaultBillingAddress(context, resource, { addressId }) {
2210
- resource.defaultBillingAddressId = addressId;
2223
+ setDefaultBillingAddress(context, resource, { addressId, addressKey }) {
2224
+ const address = this._findAddress(resource, addressId, addressKey, true);
2225
+ assert(address?.id);
2226
+ resource.defaultBillingAddressId = address.id;
2227
+ if (resource.billingAddressIds === void 0) resource.billingAddressIds = [];
2228
+ if (!resource.billingAddressIds.includes(address.id)) resource.billingAddressIds.push(address.id);
2211
2229
  }
2212
2230
  setCustomField(context, resource, { name, value }) {
2213
2231
  if (!resource.custom) throw new Error("Resource has no custom type");
@@ -2228,12 +2246,36 @@ var BusinessUnitUpdateHandler = class extends AbstractUpdateHandler {
2228
2246
  fields
2229
2247
  }, context.projectKey, this._storage);
2230
2248
  }
2231
- removeAddress(context, resource, { addressId }) {
2232
- resource.addresses = resource.addresses.filter((addr) => addr.id !== addressId);
2233
- if (resource.shippingAddressIds) resource.shippingAddressIds = resource.shippingAddressIds.filter((id) => id !== addressId);
2234
- if (resource.billingAddressIds) resource.billingAddressIds = resource.billingAddressIds.filter((id) => id !== addressId);
2235
- if (resource.defaultShippingAddressId === addressId) resource.defaultShippingAddressId = void 0;
2236
- if (resource.defaultBillingAddressId === addressId) resource.defaultBillingAddressId = void 0;
2249
+ removeAddress(context, resource, { addressId, addressKey }) {
2250
+ const address = this._findAddress(resource, addressId, addressKey, true);
2251
+ assert(address?.id);
2252
+ resource.addresses = resource.addresses.filter((a) => a.id !== address.id);
2253
+ if (resource.shippingAddressIds) resource.shippingAddressIds = resource.shippingAddressIds.filter((id) => id !== address.id);
2254
+ if (resource.billingAddressIds) resource.billingAddressIds = resource.billingAddressIds.filter((id) => id !== address.id);
2255
+ if (resource.defaultShippingAddressId === address.id) resource.defaultShippingAddressId = void 0;
2256
+ if (resource.defaultBillingAddressId === address.id) resource.defaultBillingAddressId = void 0;
2257
+ }
2258
+ _findAddress(resource, addressId, addressKey, required = false) {
2259
+ if (addressKey) {
2260
+ const address = resource.addresses.find((a) => a.key === addressKey);
2261
+ if (!address) throw new CommercetoolsError({
2262
+ code: "InvalidOperation",
2263
+ message: `Business Unit does not contain an address with the key ${addressKey}.`
2264
+ }, 400);
2265
+ return address;
2266
+ }
2267
+ if (addressId) {
2268
+ const address = resource.addresses.find((a) => a.id === addressId);
2269
+ if (!address) throw new CommercetoolsError({
2270
+ code: "InvalidOperation",
2271
+ message: `Business Unit does not contain an address with the id ${addressId}.`
2272
+ }, 400);
2273
+ return address;
2274
+ }
2275
+ if (required) throw new CommercetoolsError({
2276
+ code: "InvalidOperation",
2277
+ message: "One of address 'addressId' or 'addressKey' is required."
2278
+ }, 400);
2237
2279
  }
2238
2280
  };
2239
2281
 
@@ -2636,6 +2678,10 @@ var CustomerUpdateHandler = class extends AbstractUpdateHandler {
2636
2678
  const address = this._findAddress(resource, action.addressId, action.addressKey, true);
2637
2679
  assert(address?.id);
2638
2680
  resource.addresses = resource.addresses.filter((a) => a.id !== address.id);
2681
+ if (resource.shippingAddressIds) resource.shippingAddressIds = resource.shippingAddressIds.filter((id) => id !== address.id);
2682
+ if (resource.billingAddressIds) resource.billingAddressIds = resource.billingAddressIds.filter((id) => id !== address.id);
2683
+ if (resource.defaultShippingAddressId === address.id) resource.defaultShippingAddressId = void 0;
2684
+ if (resource.defaultBillingAddressId === address.id) resource.defaultBillingAddressId = void 0;
2639
2685
  }
2640
2686
  removeBillingAddressId(context, resource, action) {
2641
2687
  const address = this._findAddress(resource, action.addressId, action.addressKey, true);