Skip to content

Commit 299f765

Browse files
fix(respect): retryAfter should be in seconds (#2267)
1 parent d8e419c commit 299f765

File tree

8 files changed

+21
-14
lines changed

8 files changed

+21
-14
lines changed

.changeset/wild-jeans-bake.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@redocly/respect-core": patch
3+
"@redocly/cli": patch
4+
---
5+
6+
Updated the `retryAfter` property in Respect to use seconds (instead of milliseconds) for consistency with the Arazzo specification.

__tests__/respect/reusable-components/reusable-components.arazzo.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ components:
137137
retryFailureAction:
138138
name: get-museum-hours-failure-action
139139
type: retry
140-
retryAfter: 3000
140+
retryAfter: 3
141141
retryLimit: 1
142142
workflowId: final-workflow
143143
criteria:

__tests__/respect/step-on-failure-type-end-action/step-on-failure-type-end-action.arazzo.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ workflows:
3636
- type: retry
3737
name: step-onFailure-action-retry
3838
retryLimit: 1
39-
retryAfter: 3000
39+
retryAfter: 3
4040
- stepId: create-event
4141
operationPath: '{$sourceDescriptions.museum-api.url}#/paths/~1special-events/post'
4242
requestBody:

packages/core/src/types/arazzo.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,8 @@ const FailureActionObject: NodeType = {
269269
type: { type: 'string', enum: ['goto', 'retry', 'end'] },
270270
workflowId: { type: 'string' },
271271
stepId: { type: 'string' },
272-
retryAfter: { type: 'number' },
273-
retryLimit: { type: 'number' },
272+
retryAfter: { type: 'number', minimum: 0 },
273+
retryLimit: { type: 'number', minimum: 0 },
274274
criteria: listOf('CriterionObject'),
275275
},
276276
required: ['type', 'name'],

packages/respect-core/src/arazzo-schema.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,8 +267,8 @@ export const onFailureObject = {
267267
type: { type: 'string', enum: ['goto', 'retry', 'end'] },
268268
workflowId: { type: 'string' },
269269
stepId: { type: 'string' },
270-
retryAfter: { type: 'number' },
271-
retryLimit: { type: 'number' },
270+
retryAfter: { type: 'number', minimum: 0 },
271+
retryLimit: { type: 'number', minimum: 0 },
272272
criteria: criteriaObjects,
273273
},
274274
additionalProperties: false,

packages/respect-core/src/modules/__tests__/flow-runner/run-step.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1453,7 +1453,7 @@ describe('runStep', () => {
14531453
name: 'success-action',
14541454
stepId: 'failure-action-step',
14551455
type: 'retry',
1456-
retryAfter: 1000,
1456+
retryAfter: 1,
14571457
retryLimit: 2,
14581458
criteria: [
14591459
{
@@ -1570,7 +1570,7 @@ describe('runStep', () => {
15701570
stepId: 'failure-action-step',
15711571
workflowId: 'failure-action-workflow',
15721572
type: 'retry',
1573-
retryAfter: 1000,
1573+
retryAfter: 1,
15741574
retryLimit: 2,
15751575
criteria: [
15761576
{
@@ -1684,7 +1684,7 @@ describe('runStep', () => {
16841684
name: 'success-action',
16851685
stepId: 'failure-action-step',
16861686
type: 'retry',
1687-
retryAfter: 1000,
1687+
retryAfter: 1,
16881688
retryLimit: 2,
16891689
criteria: [
16901690
{
@@ -1800,7 +1800,7 @@ describe('runStep', () => {
18001800
name: 'success-action',
18011801
stepId: 'failure-action-step',
18021802
type: 'retry',
1803-
retryAfter: 1000,
1803+
retryAfter: 1,
18041804
retryLimit: 2,
18051805
criteria: [
18061806
{
@@ -1950,7 +1950,7 @@ describe('runStep', () => {
19501950
name: 'success-action',
19511951
stepId: 'failure-action-step',
19521952
type: 'retry',
1953-
retryAfter: 1000,
1953+
retryAfter: 1,
19541954
retryLimit: 2,
19551955
criteria: [
19561956
{

packages/respect-core/src/modules/flow-runner/run-step.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,8 @@ export async function runStep({
304304
if (retriesLeft === 0) {
305305
return { retriesLeft: 0, shouldEnd: false };
306306
}
307-
await delay(retryAfter);
307+
308+
retryAfter && (await delay(retryAfter));
308309

309310
if (targetWorkflow || targetStep) {
310311
printActionsSeparator({
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
/* istanbul ignore file */
2-
export function delay(ms = 0) {
3-
return new Promise((resolve) => setTimeout(resolve, ms));
2+
export function delay(seconds = 0) {
3+
return new Promise((resolve) => setTimeout(resolve, seconds * 1000));
44
}

0 commit comments

Comments
 (0)