unleash-server 4.22.0-beta.7 → 4.22.0-beta.8

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.
@@ -1,4 +1,4 @@
1
- import { IEvent } from '../types/events';
1
+ import { IEvent } from '../types';
2
2
  export interface FeatureEventFormatter {
3
3
  format: (event: IEvent) => string;
4
4
  featureLink: (event: IEvent) => string;
@@ -8,14 +8,23 @@ export declare enum LinkStyle {
8
8
  MD = 1
9
9
  }
10
10
  export declare class FeatureEventFormatterMd implements FeatureEventFormatter {
11
- private unleashUrl;
12
- private linkStyle;
11
+ private readonly unleashUrl;
12
+ private readonly linkStyle;
13
13
  constructor(unleashUrl: string, linkStyle?: LinkStyle);
14
14
  generateArchivedText(event: IEvent): string;
15
15
  generateFeatureLink(event: IEvent): string;
16
16
  generateStaleText(event: IEvent): string;
17
17
  generateEnvironmentToggleText(event: IEvent): string;
18
18
  generateStrategyChangeText(event: IEvent): string;
19
+ private applicationHostnameStrategyChangeText;
20
+ private remoteAddressStrategyChangeText;
21
+ private userWithIdStrategyChangeText;
22
+ private listOfValuesStrategyChangeText;
23
+ private flexibleRolloutStrategyChangeText;
24
+ private defaultStrategyChangeText;
25
+ private constraintChangeText;
26
+ generateStrategyRemoveText(event: IEvent): string;
27
+ generateStrategyAddText(event: IEvent): string;
19
28
  generateMetadataText(event: IEvent): string;
20
29
  generateProjectChangeText(event: IEvent): string;
21
30
  featureLink(event: IEvent): string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FeatureEventFormatterMd = exports.LinkStyle = void 0;
4
- const events_1 = require("../types/events");
4
+ const types_1 = require("../types");
5
5
  var LinkStyle;
6
6
  (function (LinkStyle) {
7
7
  LinkStyle[LinkStyle["SLACK"] = 0] = "SLACK";
@@ -14,7 +14,7 @@ class FeatureEventFormatterMd {
14
14
  }
15
15
  generateArchivedText(event) {
16
16
  const { createdBy, type } = event;
17
- const action = type === events_1.FEATURE_ARCHIVED ? 'archived' : 'revived';
17
+ const action = type === types_1.FEATURE_ARCHIVED ? 'archived' : 'revived';
18
18
  const feature = this.generateFeatureLink(event);
19
19
  return ` ${createdBy} just ${action} feature toggle *${feature}*`;
20
20
  }
@@ -28,7 +28,7 @@ class FeatureEventFormatterMd {
28
28
  }
29
29
  generateStaleText(event) {
30
30
  const { createdBy, type } = event;
31
- const isStale = type === events_1.FEATURE_STALE_ON;
31
+ const isStale = type === types_1.FEATURE_STALE_ON;
32
32
  const feature = this.generateFeatureLink(event);
33
33
  if (isStale) {
34
34
  return `${createdBy} marked ${feature} as stale and this feature toggle is now *ready to be removed* from the code.`;
@@ -37,24 +37,126 @@ class FeatureEventFormatterMd {
37
37
  }
38
38
  generateEnvironmentToggleText(event) {
39
39
  const { createdBy, environment, type, project } = event;
40
- const toggleStatus = type === events_1.FEATURE_ENVIRONMENT_ENABLED ? 'enabled' : 'disabled';
40
+ const toggleStatus = type === types_1.FEATURE_ENVIRONMENT_ENABLED ? 'enabled' : 'disabled';
41
41
  const feature = this.generateFeatureLink(event);
42
42
  return `${createdBy} *${toggleStatus}* ${feature} in *${environment}* environment in project *${project}*`;
43
43
  }
44
44
  generateStrategyChangeText(event) {
45
- const { createdBy, environment, project, data, preData, type } = event;
45
+ const { createdBy, environment, project, data, preData } = event;
46
46
  const feature = this.generateFeatureLink(event);
47
- let strategyText = '';
48
- if (events_1.FEATURE_STRATEGY_UPDATE === type) {
49
- strategyText = `by updating strategy ${data?.name} in *${environment}*`;
50
- }
51
- else if (events_1.FEATURE_STRATEGY_ADD === type) {
52
- strategyText = `by adding strategy ${data?.name} in *${environment}*`;
53
- }
54
- else if (events_1.FEATURE_STRATEGY_REMOVE === type) {
55
- strategyText = `by removing strategy ${preData?.name} in *${environment}*`;
56
- }
57
- return `${createdBy} updated *${feature}* in project *${project}* ${strategyText}`;
47
+ const strategyText = () => {
48
+ switch (data.name) {
49
+ case 'flexibleRollout':
50
+ return this.flexibleRolloutStrategyChangeText(preData, data, environment);
51
+ case 'default':
52
+ return this.defaultStrategyChangeText(preData, data, environment);
53
+ case 'userWithId':
54
+ return this.userWithIdStrategyChangeText(preData, data, environment);
55
+ case 'remoteAddress':
56
+ return this.remoteAddressStrategyChangeText(preData, data, environment);
57
+ case 'applicationHostname':
58
+ return this.applicationHostnameStrategyChangeText(preData, data, environment);
59
+ default:
60
+ return `by updating strategy ${data?.name} in *${environment}*`;
61
+ }
62
+ };
63
+ return `${createdBy} updated *${feature}* in project *${project}* ${strategyText()}`;
64
+ }
65
+ applicationHostnameStrategyChangeText(preData, data, environment) {
66
+ return this.listOfValuesStrategyChangeText(preData, data, environment, 'hostNames');
67
+ }
68
+ remoteAddressStrategyChangeText(preData, data, environment) {
69
+ return this.listOfValuesStrategyChangeText(preData, data, environment, 'IPs');
70
+ }
71
+ userWithIdStrategyChangeText(preData, data, environment) {
72
+ return this.listOfValuesStrategyChangeText(preData, data, environment, 'userIds');
73
+ }
74
+ listOfValuesStrategyChangeText(preData, data, environment, propertyName) {
75
+ const userIdText = (values) => values.length === 0
76
+ ? `empty set of ${propertyName}`
77
+ : `[${values}]`;
78
+ const usersText = preData.parameters[propertyName] === data.parameters[propertyName]
79
+ ? ''
80
+ : ` ${propertyName} from ${userIdText(preData.parameters[propertyName])} to ${userIdText(data.parameters[propertyName])}`;
81
+ const constraintText = this.constraintChangeText(preData.constraints, data.constraints);
82
+ const strategySpecificText = [usersText, constraintText]
83
+ .filter((x) => x.length)
84
+ .join(';');
85
+ return `by updating strategy ${data?.name} in *${environment}*${strategySpecificText}`;
86
+ }
87
+ flexibleRolloutStrategyChangeText(preData, data, environment) {
88
+ const { rollout: oldRollout, stickiness: oldStickiness, groupId: oldGroupId, } = preData.parameters;
89
+ const { rollout, stickiness, groupId } = data.parameters;
90
+ const stickinessText = oldStickiness === stickiness
91
+ ? ''
92
+ : ` stickiness from ${oldStickiness} to ${stickiness}`;
93
+ const rolloutText = oldRollout === rollout
94
+ ? ''
95
+ : ` rollout from ${oldRollout}% to ${rollout}%`;
96
+ const groupIdText = oldGroupId === groupId
97
+ ? ''
98
+ : ` groupId from ${oldGroupId} to ${groupId}`;
99
+ const constraintText = this.constraintChangeText(preData.constraints, data.constraints);
100
+ const strategySpecificText = [
101
+ stickinessText,
102
+ rolloutText,
103
+ groupIdText,
104
+ constraintText,
105
+ ]
106
+ .filter((txt) => txt.length)
107
+ .join(';');
108
+ return `by updating strategy ${data?.name} in *${environment}*${strategySpecificText}`;
109
+ }
110
+ defaultStrategyChangeText(preData, data, environment) {
111
+ return `by updating strategy ${data?.name} in *${environment}*${this.constraintChangeText(preData.constraints, data.constraints)}`;
112
+ }
113
+ constraintChangeText(oldConstraints, newConstraints) {
114
+ const formatConstraints = (constraints) => {
115
+ const constraintOperatorDescriptions = {
116
+ IN: 'is one of',
117
+ NOT_IN: 'is not one of',
118
+ STR_CONTAINS: 'is a string that contains',
119
+ STR_STARTS_WITH: 'is a string that starts with',
120
+ STR_ENDS_WITH: 'is a string that ends with',
121
+ NUM_EQ: 'is a number equal to',
122
+ NUM_GT: 'is a number greater than',
123
+ NUM_GTE: 'is a number greater than or equal to',
124
+ NUM_LT: 'is a number less than',
125
+ NUM_LTE: 'is a number less than or equal to',
126
+ DATE_BEFORE: 'is a date before',
127
+ DATE_AFTER: 'is a date after',
128
+ SEMVER_EQ: 'is a SemVer equal to',
129
+ SEMVER_GT: 'is a SemVer greater than',
130
+ SEMVER_LT: 'is a SemVer less than',
131
+ };
132
+ const formatConstraint = (constraint) => {
133
+ const val = constraint.hasOwnProperty('value')
134
+ ? constraint.value
135
+ : `(${constraint.values.join(',')})`;
136
+ const operator = constraintOperatorDescriptions.hasOwnProperty(constraint.operator)
137
+ ? constraintOperatorDescriptions[constraint.operator]
138
+ : constraint.operator;
139
+ return `${constraint.contextName} ${constraint.inverted ? 'not ' : ''}${operator} ${val}`;
140
+ };
141
+ return constraints.length === 0
142
+ ? 'empty set of constraints'
143
+ : `[${constraints.map(formatConstraint).join(', ')}]`;
144
+ };
145
+ const oldConstraintText = formatConstraints(oldConstraints);
146
+ const newConstraintText = formatConstraints(newConstraints);
147
+ return oldConstraintText === newConstraintText
148
+ ? ''
149
+ : ` constraints from ${oldConstraintText} to ${newConstraintText}`;
150
+ }
151
+ generateStrategyRemoveText(event) {
152
+ const { createdBy, environment, project, preData } = event;
153
+ const feature = this.generateFeatureLink(event);
154
+ return `${createdBy} updated *${feature}* in project *${project}* by removing strategy ${preData?.name} in *${environment}*`;
155
+ }
156
+ generateStrategyAddText(event) {
157
+ const { createdBy, environment, project, data } = event;
158
+ const feature = this.generateFeatureLink(event);
159
+ return `${createdBy} updated *${feature}* in project *${project}* by adding strategy ${data?.name} in *${environment}*`;
58
160
  }
59
161
  generateMetadataText(event) {
60
162
  const { createdBy, project } = event;
@@ -67,7 +169,7 @@ class FeatureEventFormatterMd {
67
169
  }
68
170
  featureLink(event) {
69
171
  const { type, project = '', featureName } = event;
70
- if (type === events_1.FEATURE_ARCHIVED) {
172
+ if (type === types_1.FEATURE_ARCHIVED) {
71
173
  if (project) {
72
174
  return `${this.unleashUrl}/projects/${project}/archive`;
73
175
  }
@@ -77,11 +179,11 @@ class FeatureEventFormatterMd {
77
179
  }
78
180
  getAction(type) {
79
181
  switch (type) {
80
- case events_1.FEATURE_CREATED:
182
+ case types_1.FEATURE_CREATED:
81
183
  return 'created';
82
- case events_1.FEATURE_UPDATED:
184
+ case types_1.FEATURE_UPDATED:
83
185
  return 'updated';
84
- case events_1.FEATURE_VARIANTS_UPDATED:
186
+ case types_1.FEATURE_VARIANTS_UPDATED:
85
187
  return 'updated variants for';
86
188
  default:
87
189
  return type;
@@ -95,22 +197,24 @@ class FeatureEventFormatterMd {
95
197
  }
96
198
  format(event) {
97
199
  switch (event.type) {
98
- case events_1.FEATURE_ARCHIVED:
99
- case events_1.FEATURE_REVIVED:
200
+ case types_1.FEATURE_ARCHIVED:
201
+ case types_1.FEATURE_REVIVED:
100
202
  return this.generateArchivedText(event);
101
- case events_1.FEATURE_STALE_ON:
102
- case events_1.FEATURE_STALE_OFF:
203
+ case types_1.FEATURE_STALE_ON:
204
+ case types_1.FEATURE_STALE_OFF:
103
205
  return this.generateStaleText(event);
104
- case events_1.FEATURE_ENVIRONMENT_DISABLED:
105
- case events_1.FEATURE_ENVIRONMENT_ENABLED:
206
+ case types_1.FEATURE_ENVIRONMENT_DISABLED:
207
+ case types_1.FEATURE_ENVIRONMENT_ENABLED:
106
208
  return this.generateEnvironmentToggleText(event);
107
- case events_1.FEATURE_STRATEGY_ADD:
108
- case events_1.FEATURE_STRATEGY_REMOVE:
109
- case events_1.FEATURE_STRATEGY_UPDATE:
209
+ case types_1.FEATURE_STRATEGY_REMOVE:
210
+ return this.generateStrategyRemoveText(event);
211
+ case types_1.FEATURE_STRATEGY_ADD:
212
+ return this.generateStrategyAddText(event);
213
+ case types_1.FEATURE_STRATEGY_UPDATE:
110
214
  return this.generateStrategyChangeText(event);
111
- case events_1.FEATURE_METADATA_UPDATED:
215
+ case types_1.FEATURE_METADATA_UPDATED:
112
216
  return this.generateMetadataText(event);
113
- case events_1.FEATURE_PROJECT_CHANGE:
217
+ case types_1.FEATURE_PROJECT_CHANGE:
114
218
  return this.generateProjectChangeText(event);
115
219
  default:
116
220
  return this.defaultText(event);
@@ -1 +1 @@
1
- {"version":3,"file":"feature-event-formatter-md.js","sourceRoot":"","sources":["../../../src/lib/addons/feature-event-formatter-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-event-formatter-md.js","sourceRoot":"","sources":["../../../src/lib/addons/feature-event-formatter-md.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,483 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const types_1 = require("../types");
4
+ const feature_event_formatter_md_1 = require("./feature-event-formatter-md");
5
+ const util_1 = require("../util");
6
+ const testCases = [
7
+ [
8
+ 'when groupId changed',
9
+ {
10
+ id: 920,
11
+ type: types_1.FEATURE_STRATEGY_UPDATE,
12
+ createdBy: 'user@company.com',
13
+ createdAt: new Date('2022-06-01T10:03:11.549Z'),
14
+ data: {
15
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
16
+ name: 'flexibleRollout',
17
+ constraints: [],
18
+ parameters: {
19
+ groupId: 'different-feature',
20
+ rollout: '32',
21
+ stickiness: 'default',
22
+ },
23
+ },
24
+ preData: {
25
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
26
+ name: 'flexibleRollout',
27
+ parameters: {
28
+ groupId: 'new-feature',
29
+ rollout: '32',
30
+ stickiness: 'default',
31
+ },
32
+ constraints: [],
33
+ },
34
+ tags: [],
35
+ featureName: 'new-feature',
36
+ project: 'my-other-project',
37
+ environment: 'production',
38
+ },
39
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy flexibleRollout in *production* groupId from new-feature to different-feature',
40
+ ],
41
+ [
42
+ 'when rollout percentage changed',
43
+ {
44
+ id: 920,
45
+ type: types_1.FEATURE_STRATEGY_UPDATE,
46
+ createdBy: 'user@company.com',
47
+ createdAt: new Date('2022-06-01T10:03:11.549Z'),
48
+ data: {
49
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
50
+ name: 'flexibleRollout',
51
+ constraints: [],
52
+ parameters: {
53
+ groupId: 'new-feature',
54
+ rollout: '32',
55
+ stickiness: 'default',
56
+ },
57
+ },
58
+ preData: {
59
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
60
+ name: 'flexibleRollout',
61
+ parameters: {
62
+ groupId: 'new-feature',
63
+ rollout: '67',
64
+ stickiness: 'default',
65
+ },
66
+ constraints: [],
67
+ },
68
+ tags: [],
69
+ featureName: 'new-feature',
70
+ project: 'my-other-project',
71
+ environment: 'production',
72
+ },
73
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy flexibleRollout in *production* rollout from 67% to 32%',
74
+ ],
75
+ [
76
+ 'when stickiness changed',
77
+ {
78
+ id: 920,
79
+ type: types_1.FEATURE_STRATEGY_UPDATE,
80
+ createdBy: 'user@company.com',
81
+ createdAt: new Date('2022-06-01T10:03:11.549Z'),
82
+ data: {
83
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
84
+ name: 'flexibleRollout',
85
+ constraints: [],
86
+ parameters: {
87
+ groupId: 'new-feature',
88
+ rollout: '67',
89
+ stickiness: 'random',
90
+ },
91
+ },
92
+ preData: {
93
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
94
+ name: 'flexibleRollout',
95
+ parameters: {
96
+ groupId: 'new-feature',
97
+ rollout: '67',
98
+ stickiness: 'default',
99
+ },
100
+ constraints: [],
101
+ },
102
+ tags: [],
103
+ featureName: 'new-feature',
104
+ project: 'my-other-project',
105
+ environment: 'production',
106
+ },
107
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy flexibleRollout in *production* stickiness from default to random',
108
+ ],
109
+ [
110
+ 'when constraints and rollout percentage and stickiness changed',
111
+ {
112
+ id: 920,
113
+ type: types_1.FEATURE_STRATEGY_UPDATE,
114
+ createdBy: 'user@company.com',
115
+ createdAt: new Date('2022-06-01T10:03:11.549Z'),
116
+ data: {
117
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
118
+ name: 'flexibleRollout',
119
+ constraints: [
120
+ {
121
+ values: ['x', 'y'],
122
+ inverted: false,
123
+ operator: util_1.IN,
124
+ contextName: 'appName',
125
+ caseInsensitive: false,
126
+ },
127
+ ],
128
+ parameters: {
129
+ groupId: 'new-feature',
130
+ rollout: '32',
131
+ stickiness: 'random',
132
+ },
133
+ },
134
+ preData: {
135
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
136
+ name: 'flexibleRollout',
137
+ parameters: {
138
+ groupId: 'new-feature',
139
+ rollout: '67',
140
+ stickiness: 'default',
141
+ },
142
+ constraints: [],
143
+ },
144
+ tags: [],
145
+ featureName: 'new-feature',
146
+ project: 'my-other-project',
147
+ environment: 'production',
148
+ },
149
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy flexibleRollout in *production* stickiness from default to random; rollout from 67% to 32%; constraints from empty set of constraints to [appName is one of (x,y)]',
150
+ ],
151
+ [
152
+ 'when neither rollout percentage nor stickiness changed',
153
+ {
154
+ id: 920,
155
+ type: types_1.FEATURE_STRATEGY_UPDATE,
156
+ createdBy: 'user@company.com',
157
+ createdAt: new Date('2022-06-01T10:03:11.549Z'),
158
+ data: {
159
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
160
+ name: 'flexibleRollout',
161
+ constraints: [],
162
+ parameters: {
163
+ groupId: 'new-feature',
164
+ rollout: '67',
165
+ stickiness: 'default',
166
+ },
167
+ },
168
+ preData: {
169
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
170
+ name: 'flexibleRollout',
171
+ parameters: {
172
+ groupId: 'new-feature',
173
+ rollout: '67',
174
+ stickiness: 'default',
175
+ },
176
+ constraints: [],
177
+ },
178
+ tags: [],
179
+ featureName: 'new-feature',
180
+ project: 'my-other-project',
181
+ environment: 'production',
182
+ },
183
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy flexibleRollout in *production*',
184
+ ],
185
+ [
186
+ 'when strategy added',
187
+ {
188
+ id: 919,
189
+ type: types_1.FEATURE_STRATEGY_ADD,
190
+ createdBy: 'user@company.com',
191
+ createdAt: new Date('2022-06-01T10:03:08.290Z'),
192
+ data: {
193
+ id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
194
+ name: 'flexibleRollout',
195
+ constraints: [],
196
+ parameters: {
197
+ groupId: 'new-feature',
198
+ rollout: '67',
199
+ stickiness: 'default',
200
+ },
201
+ },
202
+ preData: null,
203
+ tags: [],
204
+ featureName: 'new-feature',
205
+ project: 'my-other-project',
206
+ environment: 'production',
207
+ },
208
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by adding strategy flexibleRollout in *production*',
209
+ ],
210
+ [
211
+ 'when strategy removed',
212
+ {
213
+ id: 918,
214
+ type: types_1.FEATURE_STRATEGY_REMOVE,
215
+ createdBy: 'user@company.com',
216
+ createdAt: new Date('2022-06-01T10:03:00.229Z'),
217
+ data: null,
218
+ preData: {
219
+ id: '9591090e-acb0-4088-8958-21faaeb7147d',
220
+ name: 'default',
221
+ parameters: {},
222
+ constraints: [],
223
+ },
224
+ tags: [],
225
+ featureName: 'new-feature',
226
+ project: 'my-other-project',
227
+ environment: 'production',
228
+ },
229
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by removing strategy default in *production*',
230
+ ],
231
+ ...[
232
+ [util_1.IN, 'is one of'],
233
+ [util_1.NOT_IN, 'is not one of'],
234
+ [util_1.STR_CONTAINS, 'is a string that contains'],
235
+ [util_1.STR_STARTS_WITH, 'is a string that starts with'],
236
+ [util_1.STR_ENDS_WITH, 'is a string that ends with'],
237
+ ].map(([operator, display]) => [
238
+ 'when default strategy updated',
239
+ {
240
+ id: 39,
241
+ type: types_1.FEATURE_STRATEGY_UPDATE,
242
+ createdBy: 'admin',
243
+ createdAt: new Date('2023-02-20T20:23:28.791Z'),
244
+ data: {
245
+ id: 'f2d34aac-52ec-49d2-82d3-08d710e89eaa',
246
+ name: 'default',
247
+ constraints: [
248
+ {
249
+ values: ['x', 'y'],
250
+ inverted: false,
251
+ operator: operator,
252
+ contextName: 'appName',
253
+ caseInsensitive: false,
254
+ },
255
+ {
256
+ values: ['x'],
257
+ inverted: true,
258
+ operator: operator,
259
+ contextName: 'appName',
260
+ caseInsensitive: false,
261
+ },
262
+ ],
263
+ parameters: {},
264
+ segments: [],
265
+ },
266
+ preData: {
267
+ id: 'f2d34aac-52ec-49d2-82d3-08d710e89eaa',
268
+ name: 'default',
269
+ segments: [],
270
+ parameters: {},
271
+ constraints: [],
272
+ },
273
+ tags: [],
274
+ featureName: 'aaa',
275
+ project: 'default',
276
+ environment: 'production',
277
+ },
278
+ `admin updated *[aaa](unleashUrl/projects/default/features/aaa)* in project *default* by updating strategy default in *production* constraints from empty set of constraints to [appName ${display} (x,y), appName not ${display} (x)]`,
279
+ ]),
280
+ ...[
281
+ [util_1.NUM_EQ, 'is a number equal to'],
282
+ [util_1.NUM_GT, 'is a number greater than'],
283
+ [util_1.NUM_GTE, 'is a number greater than or equal to'],
284
+ [util_1.NUM_LT, 'is a number less than'],
285
+ [util_1.NUM_LTE, 'is a number less than or equal to'],
286
+ [util_1.DATE_BEFORE, 'is a date before'],
287
+ [util_1.DATE_AFTER, 'is a date after'],
288
+ [util_1.SEMVER_EQ, 'is a SemVer equal to'],
289
+ [util_1.SEMVER_GT, 'is a SemVer greater than'],
290
+ [util_1.SEMVER_LT, 'is a SemVer less than'],
291
+ ].map(([operator, display]) => [
292
+ 'when default strategy updated with numeric constraint ' +
293
+ operator,
294
+ {
295
+ id: 39,
296
+ type: types_1.FEATURE_STRATEGY_UPDATE,
297
+ createdBy: 'admin',
298
+ createdAt: new Date('2023-02-20T20:23:28.791Z'),
299
+ data: {
300
+ id: 'f2d34aac-52ec-49d2-82d3-08d710e89eaa',
301
+ name: 'default',
302
+ constraints: [],
303
+ parameters: {},
304
+ segments: [],
305
+ },
306
+ preData: {
307
+ id: 'f2d34aac-52ec-49d2-82d3-08d710e89eaa',
308
+ name: 'default',
309
+ segments: [],
310
+ parameters: {},
311
+ constraints: [
312
+ {
313
+ value: '4',
314
+ values: [],
315
+ inverted: false,
316
+ operator: operator,
317
+ contextName: 'appName',
318
+ caseInsensitive: false,
319
+ },
320
+ ],
321
+ },
322
+ tags: [],
323
+ featureName: 'aaa',
324
+ project: 'default',
325
+ environment: 'production',
326
+ },
327
+ `admin updated *[aaa](unleashUrl/projects/default/features/aaa)* in project *default* by updating strategy default in *production* constraints from [appName ${display} 4] to empty set of constraints`,
328
+ ]),
329
+ [
330
+ 'when userIds changed',
331
+ {
332
+ id: 920,
333
+ type: types_1.FEATURE_STRATEGY_UPDATE,
334
+ createdBy: 'user@company.com',
335
+ createdAt: new Date('2022-06-01T10:03:11.549Z'),
336
+ data: {
337
+ name: 'userWithId',
338
+ constraints: [
339
+ {
340
+ values: ['x', 'y'],
341
+ inverted: false,
342
+ operator: util_1.IN,
343
+ contextName: 'appName',
344
+ caseInsensitive: false,
345
+ },
346
+ ],
347
+ parameters: {
348
+ userIds: 'a,b',
349
+ },
350
+ sortOrder: 9999,
351
+ id: '9a995d94-5944-4897-a82f-0f7e65c2fb3f',
352
+ },
353
+ preData: {
354
+ name: 'userWithId',
355
+ constraints: [],
356
+ parameters: {
357
+ userIds: '',
358
+ },
359
+ sortOrder: 9999,
360
+ id: '9a995d94-5944-4897-a82f-0f7e65c2fb3f',
361
+ },
362
+ tags: [],
363
+ featureName: 'new-feature',
364
+ project: 'my-other-project',
365
+ environment: 'production',
366
+ },
367
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy userWithId in *production* userIds from empty set of userIds to [a,b]; constraints from empty set of constraints to [appName is one of (x,y)]',
368
+ ],
369
+ [
370
+ 'when IPs changed',
371
+ {
372
+ id: 920,
373
+ type: types_1.FEATURE_STRATEGY_UPDATE,
374
+ createdBy: 'user@company.com',
375
+ createdAt: new Date('2022-06-01T10:03:11.549Z'),
376
+ data: {
377
+ name: 'remoteAddress',
378
+ constraints: [
379
+ {
380
+ values: ['x', 'y'],
381
+ inverted: false,
382
+ operator: util_1.IN,
383
+ contextName: 'appName',
384
+ caseInsensitive: false,
385
+ },
386
+ ],
387
+ parameters: {
388
+ IPs: '127.0.0.1',
389
+ },
390
+ },
391
+ preData: {
392
+ name: 'remoteAddress',
393
+ constraints: [],
394
+ parameters: {
395
+ IPs: '',
396
+ },
397
+ },
398
+ tags: [],
399
+ featureName: 'new-feature',
400
+ project: 'my-other-project',
401
+ environment: 'production',
402
+ },
403
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy remoteAddress in *production* IPs from empty set of IPs to [127.0.0.1]; constraints from empty set of constraints to [appName is one of (x,y)]',
404
+ ],
405
+ [
406
+ 'when host names changed',
407
+ {
408
+ id: 920,
409
+ type: types_1.FEATURE_STRATEGY_UPDATE,
410
+ createdBy: 'user@company.com',
411
+ createdAt: new Date('2022-06-01T10:03:11.549Z'),
412
+ data: {
413
+ name: 'applicationHostname',
414
+ constraints: [
415
+ {
416
+ values: ['x', 'y'],
417
+ inverted: false,
418
+ operator: util_1.IN,
419
+ contextName: 'appName',
420
+ caseInsensitive: false,
421
+ },
422
+ ],
423
+ parameters: {
424
+ hostNames: 'unleash.com',
425
+ },
426
+ },
427
+ preData: {
428
+ name: 'applicationHostname',
429
+ constraints: [],
430
+ parameters: {
431
+ hostNames: '',
432
+ },
433
+ },
434
+ tags: [],
435
+ featureName: 'new-feature',
436
+ project: 'my-other-project',
437
+ environment: 'production',
438
+ },
439
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy applicationHostname in *production* hostNames from empty set of hostNames to [unleash.com]; constraints from empty set of constraints to [appName is one of (x,y)]',
440
+ ],
441
+ [
442
+ 'when no specific text for strategy exists yet',
443
+ {
444
+ id: 920,
445
+ type: types_1.FEATURE_STRATEGY_UPDATE,
446
+ createdBy: 'user@company.com',
447
+ createdAt: new Date('2022-06-01T10:03:11.549Z'),
448
+ data: {
449
+ name: 'newStrategy',
450
+ constraints: [
451
+ {
452
+ values: ['x', 'y'],
453
+ inverted: false,
454
+ operator: util_1.IN,
455
+ contextName: 'appName',
456
+ caseInsensitive: false,
457
+ },
458
+ ],
459
+ parameters: {
460
+ IPs: '127.0.0.1',
461
+ },
462
+ },
463
+ preData: {
464
+ name: 'newStrategy',
465
+ constraints: [],
466
+ parameters: {
467
+ IPs: '',
468
+ },
469
+ },
470
+ tags: [],
471
+ featureName: 'new-feature',
472
+ project: 'my-other-project',
473
+ environment: 'production',
474
+ },
475
+ 'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy newStrategy in *production*',
476
+ ],
477
+ ];
478
+ testCases.forEach(([description, event, expected]) => test('Should format specialised text for events ' + description, () => {
479
+ const formatter = new feature_event_formatter_md_1.FeatureEventFormatterMd('unleashUrl');
480
+ const actual = formatter.format(event);
481
+ expect(actual).toBe(expected);
482
+ }));
483
+ //# sourceMappingURL=feature-event-formatter-md.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-event-formatter-md.test.js","sourceRoot":"","sources":["../../../src/lib/addons/feature-event-formatter-md.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "unleash-server",
3
3
  "description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.",
4
- "version": "4.22.0-beta.7",
4
+ "version": "4.22.0-beta.8",
5
5
  "keywords": [
6
6
  "unleash",
7
7
  "feature toggle",