@webitel/api-services 26.8.20 → 26.8.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/api-services",
3
- "version": "26.8.20",
3
+ "version": "26.8.21",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -158,13 +158,13 @@ describe('queueSchema', () => {
158
158
 
159
159
  /** A cleared *required* number still fails — with the rule's message, not zod's. */
160
160
  it('reports a cleared required number as required', () => {
161
- const queue = validQueueFor(QueueType.OUTBOUND_IVR_QUEUE);
162
- set(queue, 'payload.maxAttempts', null);
161
+ const queue = validQueueFor(QueueType.PROGRESSIVE_DIALER);
162
+ set(queue, 'payload.progressiveCount', null);
163
163
 
164
164
  const result = queueSchema.safeParse(queue);
165
165
 
166
166
  expect(issuePaths(result)).toEqual([
167
- 'payload.maxAttempts',
167
+ 'payload.progressiveCount',
168
168
  ]);
169
169
  expect(result.error?.issues[0]).toMatchObject({
170
170
  code: 'custom',
@@ -174,6 +174,14 @@ describe('queueSchema', () => {
174
174
  });
175
175
  });
176
176
 
177
+ /** Legacy required `maxAttempts` on six types; the backend never did. WTEL-10326 */
178
+ it.each(allQueueTypes)('lets type %i save without maxAttempts', (type) => {
179
+ const queue = validQueueFor(type);
180
+ set(queue, 'payload.maxAttempts', null);
181
+
182
+ expect(issuePaths(queueSchema.safeParse(queue))).toEqual([]);
183
+ });
184
+
177
185
  /**
178
186
  * Regle builds `$fields` from state keys, so anything the defaults seed must
179
187
  * survive the schema — a key the schema strips has no validation entry, and
@@ -12,13 +12,17 @@ export interface QueueTypeRule {
12
12
  * Per-queue-type validation, transcribed from the admin app's
13
13
  * `opened-queue.vue` `validations()` switch.
14
14
  *
15
- * Two things in here look like mistakes and are not:
15
+ * Three things in here look like mistakes and are not:
16
16
  *
17
17
  * - `team` is commented "required" in every legacy queue schema but was never
18
18
  * actually validated. That is preserved — adding it would start rejecting
19
19
  * queues that save fine today.
20
20
  * - `priority` and `payload.minOnlineAgents` carry `minValue(0)` for *all* ten
21
21
  * types, including the ones whose form never shows `minOnlineAgents`.
22
+ * - `payload.originateTimeout`, `payload.waitBetweenRetries` (WTEL-10292) and
23
+ * `payload.maxAttempts` (WTEL-10326) drop the legacy `required`: the backend
24
+ * takes a queue without them, so it only blocked saving a cleared field.
25
+ * Their `minValue` stays — it skips an empty value.
22
26
  */
23
27
  export const sharedQueueRules: QueueTypeRule = {
24
28
  required: [
@@ -55,7 +59,6 @@ export const queueTypeRules: Record<number, QueueTypeRule> = {
55
59
  'strategy',
56
60
  'calendar',
57
61
  'schema',
58
- 'payload.maxAttempts',
59
62
  'payload.resourceStrategy',
60
63
  ],
61
64
  minValue: {
@@ -68,7 +71,6 @@ export const queueTypeRules: Record<number, QueueTypeRule> = {
68
71
  required: [
69
72
  'strategy',
70
73
  'calendar',
71
- 'payload.maxAttempts',
72
74
  'payload.resourceStrategy',
73
75
  ],
74
76
  minValue: {
@@ -80,7 +82,6 @@ export const queueTypeRules: Record<number, QueueTypeRule> = {
80
82
  required: [
81
83
  'strategy',
82
84
  'calendar',
83
- 'payload.maxAttempts',
84
85
  'payload.resourceStrategy',
85
86
  'payload.progressiveCount',
86
87
  ],
@@ -94,7 +95,6 @@ export const queueTypeRules: Record<number, QueueTypeRule> = {
94
95
  required: [
95
96
  'strategy',
96
97
  'calendar',
97
- 'payload.maxAttempts',
98
98
  'payload.resourceStrategy',
99
99
  'payload.progressiveCount',
100
100
  ],
@@ -132,7 +132,6 @@ export const queueTypeRules: Record<number, QueueTypeRule> = {
132
132
  required: [
133
133
  'strategy',
134
134
  'calendar',
135
- 'payload.maxAttempts',
136
135
  'payload.waitBetweenRetries',
137
136
  ],
138
137
  minValue: {
@@ -144,7 +143,6 @@ export const queueTypeRules: Record<number, QueueTypeRule> = {
144
143
  'strategy',
145
144
  'calendar',
146
145
  'schema',
147
- 'payload.maxAttempts',
148
146
  ],
149
147
  minValue: {
150
148
  'payload.originateTimeout': 0,