@contentful/field-editor-shared 2.11.2 → 2.12.1

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.
Files changed (21) hide show
  1. package/dist/cjs/LocalePublishingEntityStatusBadge/LocalePublishingPopover.js +2 -1
  2. package/dist/cjs/ReleaseEntityStatusBadge/ReleaseEntityStatusPopover.js +2 -1
  3. package/dist/cjs/hooks/useActiveReleaseLocalesStatuses.js +13 -10
  4. package/dist/cjs/hooks/useActiveReleaseLocalesStatuses.spec.js +236 -245
  5. package/dist/cjs/index.js +1 -1
  6. package/dist/cjs/utils/{getEntryReleaseStatus.js → getEntityReleaseStatus.js} +4 -4
  7. package/dist/cjs/utils/{getPreviousReleaseEntryVersion.js → getPreviousReleaseEntity.js} +5 -5
  8. package/dist/esm/LocalePublishingEntityStatusBadge/LocalePublishingPopover.js +3 -2
  9. package/dist/esm/ReleaseEntityStatusBadge/ReleaseEntityStatusPopover.js +3 -2
  10. package/dist/esm/hooks/useActiveReleaseLocalesStatuses.js +13 -10
  11. package/dist/esm/hooks/useActiveReleaseLocalesStatuses.spec.js +236 -245
  12. package/dist/esm/index.js +1 -1
  13. package/dist/esm/utils/{getEntryReleaseStatus.js → getEntityReleaseStatus.js} +2 -2
  14. package/dist/esm/utils/{getPreviousReleaseEntryVersion.js → getPreviousReleaseEntity.js} +3 -3
  15. package/dist/types/LocalePublishingEntityStatusBadge/LocalePublishingPopover.d.ts +1 -1
  16. package/dist/types/hooks/useActiveReleaseLocalesStatuses.d.ts +5 -4
  17. package/dist/types/index.d.ts +1 -1
  18. package/dist/types/types.d.ts +2 -2
  19. package/dist/types/utils/{getEntryReleaseStatus.d.ts → getEntityReleaseStatus.d.ts} +2 -2
  20. package/dist/types/utils/{getPreviousReleaseEntryVersion.d.ts → getPreviousReleaseEntity.d.ts} +3 -2
  21. package/package.json +2 -2
@@ -262,7 +262,8 @@ function LocalePublishingPopover({ entity, jobs, isScheduled, localesStatusMap,
262
262
  tabIndex: 0,
263
263
  onFocus: ()=>setIsOpen(true),
264
264
  onBlur: ()=>setIsOpen(false),
265
- endIcon: /*#__PURE__*/ _react.default.createElement(_f36icons.ArrowDownIcon, {
265
+ endIcon: /*#__PURE__*/ _react.default.createElement(_f36icons.CaretDownIcon, {
266
+ size: "tiny",
266
267
  color: getIconColor(entityStatus)
267
268
  }),
268
269
  onMouseOver: onMouseEnter,
@@ -233,7 +233,8 @@ function ReleaseEntityStatusPopover({ releaseLocalesStatusMap, activeLocales, is
233
233
  variant: _constants.RELEASE_BADGES[status.primary].variant,
234
234
  onFocus: ()=>setIsOpen(true),
235
235
  onBlur: ()=>setIsOpen(false),
236
- endIcon: /*#__PURE__*/ _react.default.createElement(_f36icons.ArrowDownIcon, {
236
+ endIcon: /*#__PURE__*/ _react.default.createElement(_f36icons.CaretDownIcon, {
237
+ size: "tiny",
237
238
  color: _constants.RELEASE_BADGES[status.primary].icon
238
239
  }),
239
240
  onMouseOver: onMouseEnter,
@@ -9,22 +9,25 @@ Object.defineProperty(exports, "useActiveReleaseLocalesStatuses", {
9
9
  }
10
10
  });
11
11
  const _react = require("react");
12
- const _getPreviousReleaseEntryVersion = require("../utils/getPreviousReleaseEntryVersion");
13
- const useActiveReleaseLocalesStatuses = ({ currentEntryDraft, entryId, releaseVersionMap, locales, activeRelease, releases })=>{
14
- const previousReleaseEntity = (0, _react.useMemo)(()=>(0, _getPreviousReleaseEntryVersion.getPreviousReleaseEntryVersion)({
15
- entryId,
12
+ const _getPreviousReleaseEntity = require("../utils/getPreviousReleaseEntity");
13
+ const useActiveReleaseLocalesStatuses = ({ currentEntityDraft, entityId, entityType, releaseVersionMap, locales, activeRelease, releases })=>{
14
+ const previousReleaseEntity = (0, _react.useMemo)(()=>(0, _getPreviousReleaseEntity.getPreviousReleaseEntity)({
15
+ entityId,
16
+ entityType,
16
17
  releaseVersionMap,
17
18
  activeRelease,
18
19
  releases
19
20
  }).previousReleaseEntity, [
20
- entryId,
21
+ entityId,
22
+ entityType,
21
23
  releaseVersionMap,
22
24
  activeRelease,
23
25
  releases
24
26
  ]);
25
- const activeReleaseReleaseEntity = (0, _react.useMemo)(()=>activeRelease?.entities.items.find((entity)=>entity.entity.sys.id === entryId), [
27
+ const activeReleaseReleaseEntity = (0, _react.useMemo)(()=>activeRelease?.entities.items.find((entity)=>entity.entity.sys.id === entityId && entity.entity.sys.linkType === entityType), [
26
28
  activeRelease?.entities.items,
27
- entryId
29
+ entityId,
30
+ entityType
28
31
  ]);
29
32
  const getLocaleStatus = (0, _react.useCallback)((localeCode)=>{
30
33
  if (!activeReleaseReleaseEntity) {
@@ -52,8 +55,8 @@ const useActiveReleaseLocalesStatuses = ({ currentEntryDraft, entryId, releaseVe
52
55
  return acc;
53
56
  }
54
57
  if (getLocaleStatus(locale.code) === 'draft') {
55
- if (currentEntryDraft?.sys.fieldStatus) {
56
- const previousStatus = currentEntryDraft.sys.fieldStatus['*'][locale.code];
58
+ if (currentEntityDraft?.sys.fieldStatus) {
59
+ const previousStatus = currentEntityDraft.sys.fieldStatus['*'][locale.code];
57
60
  if (previousStatus === 'published' || previousStatus === 'changed') {
58
61
  acc.set(locale.code, {
59
62
  status: 'becomesDraft',
@@ -100,7 +103,7 @@ const useActiveReleaseLocalesStatuses = ({ currentEntryDraft, entryId, releaseVe
100
103
  locales,
101
104
  activeReleaseReleaseEntity,
102
105
  getLocaleStatus,
103
- currentEntryDraft?.sys.fieldStatus,
106
+ currentEntityDraft?.sys.fieldStatus,
104
107
  previousReleaseEntity
105
108
  ]);
106
109
  return {
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  const _react = require("@testing-library/react");
6
- const _getPreviousReleaseEntryVersion = require("../utils/getPreviousReleaseEntryVersion");
6
+ const _getPreviousReleaseEntity = require("../utils/getPreviousReleaseEntity");
7
7
  const _useActiveReleaseLocalesStatuses = require("./useActiveReleaseLocalesStatuses");
8
- const buildEntry = (status)=>({
8
+ const buildEntry = (status, id = 'entry-1')=>({
9
9
  sys: {
10
+ id,
11
+ type: 'Entry',
10
12
  fieldStatus: {
11
13
  '*': {
12
14
  'en-US': status
@@ -14,17 +16,28 @@ const buildEntry = (status)=>({
14
16
  }
15
17
  }
16
18
  });
17
- const createEntryBasedReleaseEntity = ({ entryId = 'entry-1', action = 'publish' })=>({
19
+ const buildAsset = (status, id = 'asset-1')=>({
20
+ sys: {
21
+ id,
22
+ type: 'Asset',
23
+ fieldStatus: {
24
+ '*': {
25
+ 'en-US': status
26
+ }
27
+ }
28
+ }
29
+ });
30
+ const createEntryBasedReleaseEntity = ({ entityId = 'entry-1', action = 'publish', entityType = 'Entry' })=>({
18
31
  entity: {
19
32
  sys: {
20
33
  type: 'Link',
21
- linkType: 'Entry',
22
- id: entryId
34
+ linkType: entityType,
35
+ id: entityId
23
36
  }
24
37
  },
25
38
  action
26
39
  });
27
- const createEntryBasedRelease = ({ entryId, action } = {})=>({
40
+ const createEntryBasedRelease = ({ entityId, action, entityType = 'Entry' } = {})=>({
28
41
  title: 'Release 1',
29
42
  sys: {
30
43
  id: 'release-1',
@@ -34,18 +47,19 @@ const createEntryBasedRelease = ({ entryId, action } = {})=>({
34
47
  entities: {
35
48
  items: [
36
49
  createEntryBasedReleaseEntity({
37
- entryId,
38
- action
50
+ entityId,
51
+ action,
52
+ entityType
39
53
  })
40
54
  ]
41
55
  }
42
56
  });
43
- const createLocaleBasedReleaseEntity = ({ entryId = 'entry-1', verb = 'add' })=>({
57
+ const createLocaleBasedReleaseEntity = ({ entityId = 'entry-1', verb = 'add', entityType = 'Entry' })=>({
44
58
  entity: {
45
59
  sys: {
46
60
  type: 'Link',
47
- linkType: 'Entry',
48
- id: entryId
61
+ linkType: entityType,
62
+ id: entityId
49
63
  }
50
64
  },
51
65
  [verb]: {
@@ -56,7 +70,7 @@ const createLocaleBasedReleaseEntity = ({ entryId = 'entry-1', verb = 'add' })=>
56
70
  }
57
71
  }
58
72
  });
59
- const createLocaleBasedRelease = ({ entryId, verb } = {})=>({
73
+ const createLocaleBasedRelease = ({ entityId, verb, entityType = 'Entry' } = {})=>({
60
74
  title: 'Release 1',
61
75
  sys: {
62
76
  id: 'release-1',
@@ -66,263 +80,240 @@ const createLocaleBasedRelease = ({ entryId, verb } = {})=>({
66
80
  entities: {
67
81
  items: [
68
82
  createLocaleBasedReleaseEntity({
69
- entryId,
70
- verb
83
+ entityId,
84
+ verb,
85
+ entityType
71
86
  })
72
87
  ]
73
88
  }
74
89
  });
75
- jest.mock('../utils/getPreviousReleaseEntryVersion', ()=>({
76
- getPreviousReleaseEntryVersion: jest.fn()
90
+ jest.mock('../utils/getPreviousReleaseEntity', ()=>({
91
+ getPreviousReleaseEntity: jest.fn()
77
92
  }));
78
- const baseParams = {
79
- entryId: 'entry-1',
80
- locales: [
81
- {
82
- code: 'en-US'
83
- }
84
- ],
85
- isActiveReleaseLoading: false,
86
- releaseVersionMap: new Map(),
87
- releases: {
88
- items: []
89
- }
90
- };
93
+ const ENTITY_TYPES = [
94
+ 'Entry',
95
+ 'Asset'
96
+ ];
91
97
  describe('useActiveReleaseLocalesStatuses', ()=>{
92
98
  beforeEach(()=>{
93
99
  jest.clearAllMocks();
94
100
  });
95
- describe('with entry based publishing', ()=>{
96
- it('returns Will publish status when active release has publish action', ()=>{
97
- _getPreviousReleaseEntryVersion.getPreviousReleaseEntryVersion.mockReturnValue({
98
- previousReleaseEntity: createEntryBasedReleaseEntity({
99
- entryId: 'entry-1',
100
- action: 'unpublish'
101
- }),
102
- previousEntryVersion: {
103
- sys: {
104
- fieldStatus: {
105
- '*': {
106
- 'en-US': 'draft'
107
- }
108
- }
109
- }
110
- }
111
- });
112
- const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
113
- ...baseParams,
114
- activeRelease: createEntryBasedRelease(),
115
- currentEntryDraft: buildEntry('draft')
116
- }));
117
- expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
118
- variant: 'positive',
119
- status: 'willPublish',
120
- label: 'Will publish',
121
- locale: {
101
+ ENTITY_TYPES.forEach((entityType)=>{
102
+ const entityId = entityType === 'Entry' ? 'entry-1' : 'asset-1';
103
+ const baseParams = {
104
+ entityId,
105
+ entityType,
106
+ locales: [
107
+ {
122
108
  code: 'en-US'
123
109
  }
124
- });
125
- });
126
- it('returns Becomes draft status when previous version has published locales and active version has unpublish action', ()=>{
127
- _getPreviousReleaseEntryVersion.getPreviousReleaseEntryVersion.mockReturnValue({
128
- previousReleaseEntity: createEntryBasedReleaseEntity({
129
- entryId: 'entry-1',
130
- action: 'publish'
131
- }),
132
- previousEntryVersion: {
133
- sys: {
134
- fieldStatus: {
135
- '*': {
136
- 'en-US': 'published'
137
- }
138
- }
110
+ ],
111
+ isActiveReleaseLoading: false,
112
+ releaseVersionMap: new Map(),
113
+ releases: {
114
+ items: []
115
+ }
116
+ };
117
+ describe(`${entityType} with entry based publishing`, ()=>{
118
+ it('returns Will publish status when active release has publish action', ()=>{
119
+ _getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
120
+ previousReleaseEntity: createEntryBasedReleaseEntity({
121
+ entityId,
122
+ action: 'unpublish',
123
+ entityType
124
+ })
125
+ });
126
+ const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
127
+ ...baseParams,
128
+ activeRelease: createEntryBasedRelease({
129
+ entityId,
130
+ entityType
131
+ }),
132
+ currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
133
+ }));
134
+ expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
135
+ variant: 'positive',
136
+ status: 'willPublish',
137
+ label: 'Will publish',
138
+ locale: {
139
+ code: 'en-US'
139
140
  }
140
- }
141
- });
142
- const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
143
- ...baseParams,
144
- activeRelease: createEntryBasedRelease({
145
- action: 'unpublish'
146
- }),
147
- currentEntryDraft: buildEntry('published')
148
- }));
149
- expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
150
- variant: 'warning',
151
- status: 'becomesDraft',
152
- label: 'Becomes draft',
153
- locale: {
154
- code: 'en-US'
155
- }
141
+ });
156
142
  });
157
- });
158
- it('returns Remains draft status when previous version has draft locales and active version has unpublish action', ()=>{
159
- _getPreviousReleaseEntryVersion.getPreviousReleaseEntryVersion.mockReturnValue({
160
- previousReleaseEntity: createEntryBasedReleaseEntity({
161
- action: 'unpublish'
162
- }),
163
- previousEntryVersion: {
164
- sys: {
165
- fieldStatus: {
166
- '*': {
167
- 'en-US': 'draft'
168
- }
169
- }
143
+ it('returns Becomes draft status when previous version has published locales and active version has unpublish action', ()=>{
144
+ _getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
145
+ previousReleaseEntity: createEntryBasedReleaseEntity({
146
+ entityId,
147
+ action: 'publish',
148
+ entityType
149
+ })
150
+ });
151
+ const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
152
+ ...baseParams,
153
+ activeRelease: createEntryBasedRelease({
154
+ action: 'unpublish',
155
+ entityId,
156
+ entityType
157
+ }),
158
+ currentEntityDraft: entityType === 'Entry' ? buildEntry('published') : buildAsset('published')
159
+ }));
160
+ expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
161
+ variant: 'warning',
162
+ status: 'becomesDraft',
163
+ label: 'Becomes draft',
164
+ locale: {
165
+ code: 'en-US'
170
166
  }
171
- }
172
- });
173
- const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
174
- ...baseParams,
175
- activeRelease: createEntryBasedRelease({
176
- action: 'unpublish'
177
- }),
178
- currentEntryDraft: buildEntry('draft')
179
- }));
180
- expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
181
- variant: 'secondary',
182
- status: 'remainsDraft',
183
- label: 'Remains draft',
184
- locale: {
185
- code: 'en-US'
186
- }
167
+ });
187
168
  });
188
- });
189
- it('returns Not in release status when entry is not in the release', ()=>{
190
- _getPreviousReleaseEntryVersion.getPreviousReleaseEntryVersion.mockReturnValue({
191
- previousReleaseEntity: undefined,
192
- previousEntryVersion: undefined
193
- });
194
- const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
195
- ...baseParams,
196
- activeRelease: createEntryBasedRelease({
197
- entryId: 'entry-2',
198
- action: 'publish'
199
- }),
200
- currentEntryDraft: buildEntry('draft')
201
- }));
202
- expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
203
- variant: 'secondary',
204
- status: 'notInRelease',
205
- label: 'Not in release',
206
- locale: {
207
- code: 'en-US'
208
- }
209
- });
210
- });
211
- });
212
- describe('with locale based publishing', ()=>{
213
- it('returns Will publish status when active release has publish action', ()=>{
214
- _getPreviousReleaseEntryVersion.getPreviousReleaseEntryVersion.mockReturnValue({
215
- previousReleaseEntity: createLocaleBasedReleaseEntity({
216
- entryId: 'entry-1',
217
- verb: 'remove'
218
- }),
219
- previousEntryVersion: {
220
- sys: {
221
- fieldStatus: {
222
- '*': {
223
- 'en-US': 'draft'
224
- }
225
- }
169
+ it('returns Remains draft status when previous version has draft locales and active version has unpublish action', ()=>{
170
+ _getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
171
+ previousReleaseEntity: createEntryBasedReleaseEntity({
172
+ action: 'unpublish',
173
+ entityType,
174
+ entityId
175
+ })
176
+ });
177
+ const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
178
+ ...baseParams,
179
+ activeRelease: createEntryBasedRelease({
180
+ action: 'unpublish',
181
+ entityId,
182
+ entityType
183
+ }),
184
+ currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
185
+ }));
186
+ expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
187
+ variant: 'secondary',
188
+ status: 'remainsDraft',
189
+ label: 'Remains draft',
190
+ locale: {
191
+ code: 'en-US'
226
192
  }
227
- }
228
- });
229
- const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
230
- ...baseParams,
231
- activeRelease: createLocaleBasedRelease(),
232
- currentEntryDraft: buildEntry('draft')
233
- }));
234
- expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
235
- variant: 'positive',
236
- status: 'willPublish',
237
- label: 'Will publish',
238
- locale: {
239
- code: 'en-US'
240
- }
193
+ });
241
194
  });
242
- });
243
- it('returns Becomes draft status when previous version has published locales and active version has unpublish action', ()=>{
244
- _getPreviousReleaseEntryVersion.getPreviousReleaseEntryVersion.mockReturnValue({
245
- previousReleaseEntity: createLocaleBasedReleaseEntity({
246
- entryId: 'entry-1',
247
- verb: 'add'
248
- }),
249
- previousEntryVersion: {
250
- sys: {
251
- fieldStatus: {
252
- '*': {
253
- 'en-US': 'published'
254
- }
255
- }
195
+ it('returns Not in release status when entity is not in the release', ()=>{
196
+ _getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
197
+ previousReleaseEntity: undefined
198
+ });
199
+ const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
200
+ ...baseParams,
201
+ activeRelease: createEntryBasedRelease({
202
+ entityId: entityType === 'Entry' ? 'entry-2' : 'asset-2',
203
+ action: 'publish',
204
+ entityType
205
+ }),
206
+ currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
207
+ }));
208
+ expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
209
+ variant: 'secondary',
210
+ status: 'notInRelease',
211
+ label: 'Not in release',
212
+ locale: {
213
+ code: 'en-US'
256
214
  }
257
- }
258
- });
259
- const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
260
- ...baseParams,
261
- activeRelease: createLocaleBasedRelease({
262
- verb: 'remove'
263
- }),
264
- currentEntryDraft: buildEntry('published')
265
- }));
266
- expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
267
- variant: 'warning',
268
- status: 'becomesDraft',
269
- label: 'Becomes draft',
270
- locale: {
271
- code: 'en-US'
272
- }
215
+ });
273
216
  });
274
217
  });
275
- it('returns Remains draft status when previous version has draft locales and active version has unpublish action', ()=>{
276
- _getPreviousReleaseEntryVersion.getPreviousReleaseEntryVersion.mockReturnValue({
277
- previousReleaseEntity: createLocaleBasedReleaseEntity({
278
- verb: 'remove'
279
- }),
280
- previousEntryVersion: {
281
- sys: {
282
- fieldStatus: {
283
- '*': {
284
- 'en-US': 'draft'
285
- }
286
- }
218
+ describe(`${entityType} with locale based publishing`, ()=>{
219
+ it('returns Will publish status when active release has publish action', ()=>{
220
+ _getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
221
+ previousReleaseEntity: createLocaleBasedReleaseEntity({
222
+ entityId,
223
+ verb: 'remove',
224
+ entityType
225
+ })
226
+ });
227
+ const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
228
+ ...baseParams,
229
+ activeRelease: createLocaleBasedRelease({
230
+ entityId,
231
+ entityType
232
+ }),
233
+ currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
234
+ }));
235
+ expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
236
+ variant: 'positive',
237
+ status: 'willPublish',
238
+ label: 'Will publish',
239
+ locale: {
240
+ code: 'en-US'
287
241
  }
288
- }
242
+ });
289
243
  });
290
- const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
291
- ...baseParams,
292
- activeRelease: createLocaleBasedRelease({
293
- verb: 'remove'
294
- }),
295
- currentEntryDraft: buildEntry('draft')
296
- }));
297
- expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
298
- variant: 'secondary',
299
- status: 'remainsDraft',
300
- label: 'Remains draft',
301
- locale: {
302
- code: 'en-US'
303
- }
244
+ it('returns Becomes draft status when previous version has published locales and active version has unpublish action', ()=>{
245
+ _getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
246
+ previousReleaseEntity: createLocaleBasedReleaseEntity({
247
+ entityId: 'entry-1',
248
+ verb: 'add',
249
+ entityType
250
+ })
251
+ });
252
+ const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
253
+ ...baseParams,
254
+ activeRelease: createLocaleBasedRelease({
255
+ verb: 'remove',
256
+ entityId,
257
+ entityType
258
+ }),
259
+ currentEntityDraft: entityType === 'Entry' ? buildEntry('published') : buildAsset('published')
260
+ }));
261
+ expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
262
+ variant: 'warning',
263
+ status: 'becomesDraft',
264
+ label: 'Becomes draft',
265
+ locale: {
266
+ code: 'en-US'
267
+ }
268
+ });
304
269
  });
305
- });
306
- it('returns Not in release status when entry is not in the release', ()=>{
307
- _getPreviousReleaseEntryVersion.getPreviousReleaseEntryVersion.mockReturnValue({
308
- previousReleaseEntity: undefined,
309
- previousEntryVersion: undefined
270
+ it('returns Remains draft status when previous version has draft locales and active version has unpublish action', ()=>{
271
+ _getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
272
+ previousReleaseEntity: createLocaleBasedReleaseEntity({
273
+ verb: 'remove',
274
+ entityId,
275
+ entityType
276
+ })
277
+ });
278
+ const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
279
+ ...baseParams,
280
+ activeRelease: createLocaleBasedRelease({
281
+ verb: 'remove',
282
+ entityId,
283
+ entityType
284
+ }),
285
+ currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
286
+ }));
287
+ expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
288
+ variant: 'secondary',
289
+ status: 'remainsDraft',
290
+ label: 'Remains draft',
291
+ locale: {
292
+ code: 'en-US'
293
+ }
294
+ });
310
295
  });
311
- const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
312
- ...baseParams,
313
- activeRelease: createLocaleBasedRelease({
314
- entryId: 'entry-2',
315
- verb: 'add'
316
- }),
317
- currentEntryDraft: buildEntry('draft')
318
- }));
319
- expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
320
- variant: 'secondary',
321
- status: 'notInRelease',
322
- label: 'Not in release',
323
- locale: {
324
- code: 'en-US'
325
- }
296
+ it('returns Not in release status when entry is not in the release', ()=>{
297
+ _getPreviousReleaseEntity.getPreviousReleaseEntity.mockReturnValue({
298
+ previousReleaseEntity: undefined
299
+ });
300
+ const { result } = (0, _react.renderHook)(()=>(0, _useActiveReleaseLocalesStatuses.useActiveReleaseLocalesStatuses)({
301
+ ...baseParams,
302
+ activeRelease: createLocaleBasedRelease({
303
+ entityId: entityType === 'Entry' ? 'entry-2' : 'asset-2',
304
+ entityType,
305
+ verb: 'add'
306
+ }),
307
+ currentEntityDraft: entityType === 'Entry' ? buildEntry('draft') : buildAsset('draft')
308
+ }));
309
+ expect(result.current.releaseLocalesStatusMap.get('en-US')).toEqual({
310
+ variant: 'secondary',
311
+ status: 'notInRelease',
312
+ label: 'Not in release',
313
+ locale: {
314
+ code: 'en-US'
315
+ }
316
+ });
326
317
  });
327
318
  });
328
319
  });
package/dist/cjs/index.js CHANGED
@@ -111,7 +111,7 @@ _export_star(require("./hooks/useLocalePublishStatus"), exports);
111
111
  _export_star(require("./LocalePublishingEntityStatusBadge"), exports);
112
112
  _export_star(require("./ReleaseEntityStatusBadge"), exports);
113
113
  _export_star(require("./utils/determineReleaseAction"), exports);
114
- _export_star(require("./utils/getEntryReleaseStatus"), exports);
114
+ _export_star(require("./utils/getEntityReleaseStatus"), exports);
115
115
  _export_star(require("./utils/parseReleaseParameters"), exports);
116
116
  function _export_star(from, to) {
117
117
  Object.keys(from).forEach(function(k) {