Skip to content

Commit 0d20ce7

Browse files
authored
[Sync-actions]: adding business unit search status actions (#1934)
* feat(sync-actions): adding business unit search status actions * feat(sync-actions): adding changeset * fix(sync-actions): remove leftover definition
1 parent 245eaf3 commit 0d20ce7

File tree

3 files changed

+87
-12
lines changed

3 files changed

+87
-12
lines changed

.changeset/nine-peaches-explain.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@commercetools/sync-actions': minor
3+
---
4+
5+
Adding business unit search status coverage

packages/sync-actions/src/projects-actions.js

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ export const customerSearchActionsList = [
2929
},
3030
]
3131

32+
export const businessUnitSearchActionsList = [
33+
{
34+
action: 'changeBusinessUnitSearchStatus',
35+
key: 'status',
36+
},
37+
]
38+
3239
export function actionsMapBase(diff, oldObj, newObj, config = {}) {
3340
return buildBaseAttributesActions({
3441
actions: baseActionsList,
@@ -67,19 +74,36 @@ export function actionsMapSearchIndexingConfiguration(
6774
return []
6875
}
6976

70-
const { customers } = searchIndexing
71-
if (!customers) {
77+
const { businessUnits, customers } = searchIndexing
78+
if (!customers && !businessUnits) {
7279
return []
7380
}
7481

75-
return buildBaseAttributesActions({
76-
actions: customerSearchActionsList,
77-
diff: diff.searchIndexing.customers,
78-
oldObj: oldObj.searchIndexing.customers,
79-
newObj: newObj.searchIndexing.customers,
80-
shouldOmitEmptyString: config.shouldOmitEmptyString,
81-
shouldUnsetOmittedProperties: config.shouldUnsetOmittedProperties,
82-
shouldPreventUnsettingRequiredFields:
83-
config.shouldPreventUnsettingRequiredFields,
84-
})
82+
const businessUnitsActions = businessUnits
83+
? buildBaseAttributesActions({
84+
actions: businessUnitSearchActionsList,
85+
diff: diff.searchIndexing.businessUnits,
86+
oldObj: oldObj.searchIndexing.businessUnits,
87+
newObj: newObj.searchIndexing.businessUnits,
88+
shouldOmitEmptyString: config.shouldOmitEmptyString,
89+
shouldUnsetOmittedProperties: config.shouldUnsetOmittedProperties,
90+
shouldPreventUnsettingRequiredFields:
91+
config.shouldPreventUnsettingRequiredFields,
92+
})
93+
: []
94+
95+
const customersActions = customers
96+
? buildBaseAttributesActions({
97+
actions: customerSearchActionsList,
98+
diff: diff.searchIndexing.customers,
99+
oldObj: oldObj.searchIndexing.customers,
100+
newObj: newObj.searchIndexing.customers,
101+
shouldOmitEmptyString: config.shouldOmitEmptyString,
102+
shouldUnsetOmittedProperties: config.shouldUnsetOmittedProperties,
103+
shouldPreventUnsettingRequiredFields:
104+
config.shouldPreventUnsettingRequiredFields,
105+
})
106+
: []
107+
108+
return [...businessUnitsActions, ...customersActions]
85109
}

packages/sync-actions/test/projects-sync.spec.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
baseActionsList,
44
myBusinessUnitActionsList,
55
customerSearchActionsList,
6+
businessUnitSearchActionsList,
67
} from '../src/projects-actions'
78

89
describe('Exports', () => {
@@ -107,6 +108,17 @@ describe('Exports', () => {
107108
])
108109
)
109110
})
111+
112+
test('should contain `changeBusinessUnitSearchStatus` action', () => {
113+
expect(businessUnitSearchActionsList).toEqual(
114+
expect.arrayContaining([
115+
{
116+
action: 'changeBusinessUnitSearchStatus',
117+
key: 'status',
118+
},
119+
])
120+
)
121+
})
110122
})
111123
})
112124

@@ -336,4 +348,38 @@ describe('Actions', () => {
336348
]
337349
expect(actual).toEqual(expected)
338350
})
351+
352+
test('should build `changeBusinessUnitSearchStatus` action', () => {
353+
const before = {
354+
searchIndexing: {
355+
businessUnits: {
356+
status: 'Activated',
357+
lastModifiedAt: '2024-05-31T08:20:26.187Z',
358+
lastModifiedBy: {
359+
isPlatformClient: true,
360+
},
361+
},
362+
},
363+
}
364+
365+
const now = {
366+
searchIndexing: {
367+
businessUnits: {
368+
status: 'Deactivated',
369+
lastModifiedAt: '2024-05-31T08:20:26.187Z',
370+
lastModifiedBy: {
371+
isPlatformClient: true,
372+
},
373+
},
374+
},
375+
}
376+
const actual = projectsSync.buildActions(now, before)
377+
const expected = [
378+
{
379+
action: 'changeBusinessUnitSearchStatus',
380+
status: 'Deactivated',
381+
},
382+
]
383+
expect(actual).toEqual(expected)
384+
})
339385
})

0 commit comments

Comments
 (0)