From 2fc57dcb506e623e17ceee70717444af73d05e41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Thu, 29 Aug 2024 18:07:53 +0200 Subject: [PATCH 1/5] #1627: run publish journey action sequentially for multi-step journeys to fix race condition for sf-journeys --- @types/lib/metadataTypes/Journey.d.ts.map | 2 +- lib/metadataTypes/Journey.js | 98 ++++++++++------------- 2 files changed, 45 insertions(+), 55 deletions(-) diff --git a/@types/lib/metadataTypes/Journey.d.ts.map b/@types/lib/metadataTypes/Journey.d.ts.map index 93314f462..de995b816 100644 --- a/@types/lib/metadataTypes/Journey.d.ts.map +++ b/@types/lib/metadataTypes/Journey.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":";uBAaa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;AAVzD;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH;IACI;;;;;;;;OAQG;IACH,6BANW,MAAM,MACN,IAAI,GAAG,MAAM,EAAE,OACf,IAAI,GAAG,MAAM,EAAE,QACf,MAAM,GACJ,OAAO,CAAE,kBAAkB,CAAC,CA8JxC;IAmFD;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAS1B;IAED;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAK1B;IAmBD;;;;OAIG;IACH,2CAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,mCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CAsMtC;IAED;;;;;OAKG;IACH,6CA2aC;IAED;;;;;;OAMG;IACH,gCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CA+ItC;IAED;;;;;OAKG;IACH,0CA6MC;IA4LD;;;;OAIG;IACH,sCAFW,eAAe,iBAWzB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CAkO9B;IAED;;;;;;;OAOG;IACH,sCALW,MAAM,OACN,MAAM,UACN,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgC5B;IAED;;;;OAIG;IACH,2CAFW;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,MAAM,QAAO;QAAC,QAAQ,QAAM;KAAC,QAgCvD;CA2FJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA55DwB,mBAAmB"} \ No newline at end of file +{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":";uBAaa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;AAVzD;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH;IACI;;;;;;;;OAQG;IACH,6BANW,MAAM,MACN,IAAI,GAAG,MAAM,EAAE,OACf,IAAI,GAAG,MAAM,EAAE,QACf,MAAM,GACJ,OAAO,CAAE,kBAAkB,CAAC,CA8JxC;IAmFD;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAS1B;IAED;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAK1B;IAmBD;;;;OAIG;IACH,2CAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,mCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CAsMtC;IAED;;;;;OAKG;IACH,6CA2aC;IAED;;;;;;OAMG;IACH,gCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CA+ItC;IAED;;;;;OAKG;IACH,0CA6MC;IA4LD;;;;OAIG;IACH,sCAFW,eAAe,iBAWzB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CAwN9B;IAED;;;;;;;OAOG;IACH,sCALW,MAAM,OACN,MAAM,UACN,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgC5B;IAED;;;;OAIG;IACH,2CAFW;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,MAAM,QAAO;QAAC,QAAQ,QAAM;KAAC,QAgCvD;CA2FJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAl5DwB,mBAAmB"} \ No newline at end of file diff --git a/lib/metadataTypes/Journey.js b/lib/metadataTypes/Journey.js index d8d13474c..ec007fcc5 100644 --- a/lib/metadataTypes/Journey.js +++ b/lib/metadataTypes/Journey.js @@ -1557,7 +1557,6 @@ class Journey extends MetadataType { * @returns {Promise.} Returns list of updated keys/ids that were published. Success could only be seen with a delay in the UI because the publish-endpoint is async */ static async publish(keyArr) { - const resultsJourney = []; const resultsTransactional = []; // works only with objectId const statusUrls = []; @@ -1679,65 +1678,56 @@ class Journey extends MetadataType { ); break; } - case 'Multistep': - case 'Quicksend': { - resultsJourney.push( - (async () => { - try { - const response = await this.client.rest.post( - `/interaction/v1/interactions/publishAsync/${journey.id}?versionNumber=${version}`, - {} - ); // payload is empty for this request - if (response.statusUrl && response.statusId) { - Util.logger.info( - ` - queued for publishing ${this.definition.type}: ${key}` - ); - statusUrls.push({ key, statusUrl: response.statusUrl }); - } else { - throw new Error(response); - } - return journey.key; - } catch (ex) { - if ( - ex.message === 'Cannot publish interaction in Published status.' - ) { - Util.logger.info( - ` - ${this.definition.type} ${key} is already published` - ); - } else if ( - ex.message === 'Cannot publish interaction in Stopped status.' - ) { - Util.logger.warn( - ` - ${this.definition.type} ${key} is already published but stopped. Please resume it manually.` - ); - } else { - Util.logger.error( - `Failed to publish ${this.definition.type} ${key}: ${ex.message}` - ); - } - } - })() + case 'Multistep': { + // SF Event, Api Event Journeys + // ! for SF-triggered journeys this cannot be asynchronous or it will cause a race-condition (see #1627 for details); the requests are accepted but then processed sequentually anyways, eliminating potential speed gains. + // It is unknown if the same would happen for API-event journeys but given that it's the same endpoint, lets not risk it and run this sequentially + let statusUrl; + try { + const response = await this.client.rest.post( + `/interaction/v1/interactions/publishAsync/${journey.id}?versionNumber=${version}`, + {} + ); // payload is empty for this request + if (response.statusUrl && response.statusId) { + Util.logger.info( + ` - queued for publishing ${this.definition.type}: ${key}` + ); + statusUrl = response.statusUrl; + } else { + throw new Error(response); + } + if (!Util.OPTIONS.skipStatusCheck && statusUrl) { + Util.logger.info(`Checking status of published item`); + await Util.sleep(1000); + executedKeyArr.push(await this._checkPublishStatus(statusUrl, key)); + } + } catch (ex) { + if (ex.message === 'Cannot publish interaction in Published status.') { + Util.logger.info( + ` - ${this.definition.type} ${key} is already published` + ); + } else if (ex.message === 'Cannot publish interaction in Stopped status.') { + Util.logger.warn( + ` - ${this.definition.type} ${key} is already published but stopped. Please resume it manually.` + ); + } else { + Util.logger.error( + `Failed to publish ${this.definition.type} ${key}: ${ex.message}` + ); + } + } + break; + } + default: { + throw new Error( + `${this.definition.type} type ${journey.definitionType} not supported yet by publish method` ); } } } // for loop - if (resultsJourney.length) { - Util.logger.info(`Found ${resultsJourney.length} journey results`); - executedKeyArr.push(...(await Promise.all(resultsJourney)).filter(Boolean)); - if (!Util.OPTIONS.skipStatusCheck && statusUrls.length) { - Util.logger.info( - `Checking status of ${statusUrls.length} published item${statusUrls.length === 1 ? '' : 's'}` - ); - executedKeyArr.length = 0; - await Util.sleep(5000); - for (const item of statusUrls) { - executedKeyArr.push(await this._checkPublishStatus(item.statusUrl, item.key)); - } - } - } + // Transactional Send Journeys if (resultsTransactional.length) { - Util.logger.info(`Found ${resultsTransactional.length} journey results`); const transactionalKeyArr = (await Promise.all(resultsTransactional)).filter(Boolean); executedKeyArr.push(...transactionalKeyArr); From bc60650eb5f432e34ea0c5ced4acd1477e6b3583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Thu, 29 Aug 2024 22:20:17 +0200 Subject: [PATCH 2/5] #1627: improve error handling for publish --- lib/metadataTypes/Journey.js | 39 +++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/lib/metadataTypes/Journey.js b/lib/metadataTypes/Journey.js index ec007fcc5..27a4ba52d 100644 --- a/lib/metadataTypes/Journey.js +++ b/lib/metadataTypes/Journey.js @@ -1702,18 +1702,33 @@ class Journey extends MetadataType { executedKeyArr.push(await this._checkPublishStatus(statusUrl, key)); } } catch (ex) { - if (ex.message === 'Cannot publish interaction in Published status.') { - Util.logger.info( - ` - ${this.definition.type} ${key} is already published` - ); - } else if (ex.message === 'Cannot publish interaction in Stopped status.') { - Util.logger.warn( - ` - ${this.definition.type} ${key} is already published but stopped. Please resume it manually.` - ); - } else { - Util.logger.error( - `Failed to publish ${this.definition.type} ${key}: ${ex.message}` - ); + switch (ex.message) { + case 'Cannot publish interaction in Published status.': { + Util.logger.info( + ` - ${this.definition.type} ${key}/${version} is already published.` + ); + + break; + } + case 'Cannot publish interaction in Stopped status.': { + Util.logger.warn( + ` - ${this.definition.type} ${key}/${version} is stopped. Please create a new version and publish that.` + ); + + break; + } + case 'Cannot publish interaction in Paused status.': { + Util.logger.warn( + ` - ${this.definition.type} ${key}/${version} is already published but currently paused. Run 'mcdev resume' instead.` + ); + + break; + } + default: { + Util.logger.error( + `Failed to publish ${this.definition.type} ${key}: ${ex.message}` + ); + } } } break; From cf25fa7e338051c963023d6e8becb9892a5a960b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Thu, 29 Aug 2024 22:24:12 +0200 Subject: [PATCH 3/5] #1627: add spinner to publish journey --- lib/metadataTypes/Journey.js | 23 +++++++++++++---- package-lock.json | 50 +++++++++++++++++++++++++++--------- package.json | 3 ++- 3 files changed, 58 insertions(+), 18 deletions(-) diff --git a/lib/metadataTypes/Journey.js b/lib/metadataTypes/Journey.js index 27a4ba52d..3945f3d2a 100644 --- a/lib/metadataTypes/Journey.js +++ b/lib/metadataTypes/Journey.js @@ -9,6 +9,7 @@ import File from '../util/file.js'; import ReplaceCbReference from '../util/replaceContentBlockReference.js'; import Retriever from '../Retriever.js'; import pLimit from 'p-limit'; +import yoctoSpinner from 'yocto-spinner'; /** * @typedef {import('../../types/mcdev.d.js').BuObject} BuObject @@ -1697,9 +1698,14 @@ class Journey extends MetadataType { throw new Error(response); } if (!Util.OPTIONS.skipStatusCheck && statusUrl) { - Util.logger.info(`Checking status of published item`); + const spinner = yoctoSpinner({ + text: `Publishing journey…`, + }).start(); + await Util.sleep(1000); - executedKeyArr.push(await this._checkPublishStatus(statusUrl, key)); + executedKeyArr.push( + await this._checkPublishStatus(statusUrl, key, spinner) + ); } } catch (ex) { switch (ex.message) { @@ -1743,7 +1749,11 @@ class Journey extends MetadataType { // Transactional Send Journeys if (resultsTransactional.length) { + const spinner = yoctoSpinner({ + text: `Publishing ${resultsTransactional.length} journey${resultsTransactional.length === 1 ? '' : 's'}…`, + }).start(); const transactionalKeyArr = (await Promise.all(resultsTransactional)).filter(Boolean); + spinner.success('done.'); executedKeyArr.push(...transactionalKeyArr); Util.logger.info('Retrieving relevant journeys'); @@ -1792,30 +1802,33 @@ class Journey extends MetadataType { * * @param {string} statusUrl URL to check the status of the publish request * @param {string} key key or id for log messages + * @param {any} spinner key or id for log messages * @param {number} [tries] number of tries used to check the status * @returns {Promise.} key of the item that was published successfully */ - static async _checkPublishStatus(statusUrl, key, tries = 1) { + static async _checkPublishStatus(statusUrl, key, spinner, tries = 1) { try { const response = await this.client.rest.get(statusUrl); switch (response.status) { case 'PublishCompleted': { + spinner.success('done.'); Util.logger.info(` - ${this.definition.type} ${key}: publishing succeeded`); this._showPublishStatusDetails(response); return key; } case 'PublishInProcess': { - Util.logger.info( + Util.logger.debug( ` - ${this.definition.type} ${key}: publishing still in progress` ); if (tries < 50) { await (tries < 10 ? Util.sleep(2000) : Util.sleep(5000)); - return await this._checkPublishStatus(statusUrl, key, tries + 1); + return await this._checkPublishStatus(statusUrl, key, spinner, tries + 1); } else { return; } } case 'Error': { + spinner.success('failed.'); Util.logger.error(` - ${this.definition.type} ${key}: publishing failed.`); this._showPublishStatusDetails(response); return; diff --git a/package-lock.json b/package-lock.json index e34de7d65..0d3a68f3b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,8 @@ "toposort": "2.0.2", "update-notifier": "7.2.0", "winston": "3.14.2", - "yargs": "17.7.2" + "yargs": "17.7.2", + "yocto-spinner": "0.1.0" }, "bin": { "mcdev": "lib/cli.js" @@ -538,6 +539,17 @@ "node": ">=18" } }, + "node_modules/@inquirer/core/node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@inquirer/core/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -1892,17 +1904,6 @@ "node": ">=4" } }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-truncate": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", @@ -7846,6 +7847,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yocto-spinner": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-0.1.0.tgz", + "integrity": "sha512-sBra0N4uhNn5UibnOz/HJxB1a0tzZ5zXbqnDe+tfRR3BGy+BmOrzrnQCZRJI7C++JiSZaPygPeNon4QCUmMQ4g==", + "dependencies": { + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18.19" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/yoctocolors-cjs": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", diff --git a/package.json b/package.json index 0a738805f..a42740ef7 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,8 @@ "toposort": "2.0.2", "update-notifier": "7.2.0", "winston": "3.14.2", - "yargs": "17.7.2" + "yargs": "17.7.2", + "yocto-spinner": "0.1.0" }, "devDependencies": { "@eslint/js": "9.9.0", From eb093bb4ffc8a85b458dad69194d60b077d712fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Thu, 29 Aug 2024 23:01:18 +0200 Subject: [PATCH 4/5] #1627: fix publish journey tests --- @types/lib/metadataTypes/Journey.d.ts | 6 +++-- @types/lib/metadataTypes/Journey.d.ts.map | 2 +- lib/metadataTypes/Journey.js | 7 ++++-- test/general.test.js | 4 ++-- .../post-response.json | 0 test/type.journey.test.js | 22 +++++++++---------- 6 files changed, 23 insertions(+), 18 deletions(-) rename test/resources/9999999/interaction/v1/interactions/publishAsync/{3c3f4112-9b43-43ca-8a89-aa0375b2c1a2 => 0175b971-71a3-4d8e-98ac-48121f3fbf4f}/post-response.json (100%) diff --git a/@types/lib/metadataTypes/Journey.d.ts b/@types/lib/metadataTypes/Journey.d.ts index 576193f96..2e328f46f 100644 --- a/@types/lib/metadataTypes/Journey.d.ts +++ b/@types/lib/metadataTypes/Journey.d.ts @@ -94,8 +94,9 @@ declare class Journey extends MetadataType { * Gets executed after deployment of metadata type * * @param {MetadataTypeMap} upsertResults metadata mapped by their keyField as returned by update/create + * @returns {Promise.} - */ - static postDeployTasks(upsertResults: MetadataTypeMap): Promise; + static postDeployTasks(upsertResults: MetadataTypeMap): Promise; /** * a function to publish the journey via API * @@ -108,10 +109,11 @@ declare class Journey extends MetadataType { * * @param {string} statusUrl URL to check the status of the publish request * @param {string} key key or id for log messages + * @param {any} spinner key or id for log messages * @param {number} [tries] number of tries used to check the status * @returns {Promise.} key of the item that was published successfully */ - static _checkPublishStatus(statusUrl: string, key: string, tries?: number): Promise; + static _checkPublishStatus(statusUrl: string, key: string, spinner: any, tries?: number): Promise; /** * helper for {@link Journey._checkPublishStatus} * diff --git a/@types/lib/metadataTypes/Journey.d.ts.map b/@types/lib/metadataTypes/Journey.d.ts.map index de995b816..8cf4bab8d 100644 --- a/@types/lib/metadataTypes/Journey.d.ts.map +++ b/@types/lib/metadataTypes/Journey.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":";uBAaa,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;AAVzD;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH;IACI;;;;;;;;OAQG;IACH,6BANW,MAAM,MACN,IAAI,GAAG,MAAM,EAAE,OACf,IAAI,GAAG,MAAM,EAAE,QACf,MAAM,GACJ,OAAO,CAAE,kBAAkB,CAAC,CA8JxC;IAmFD;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAS1B;IAED;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAK1B;IAmBD;;;;OAIG;IACH,2CAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,mCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CAsMtC;IAED;;;;;OAKG;IACH,6CA2aC;IAED;;;;;;OAMG;IACH,gCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CA+ItC;IAED;;;;;OAKG;IACH,0CA6MC;IA4LD;;;;OAIG;IACH,sCAFW,eAAe,iBAWzB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CAwN9B;IAED;;;;;;;OAOG;IACH,sCALW,MAAM,OACN,MAAM,UACN,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAgC5B;IAED;;;;OAIG;IACH,2CAFW;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,MAAM,QAAO;QAAC,QAAQ,QAAM;KAAC,QAgCvD;CA2FJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAl5DwB,mBAAmB"} \ No newline at end of file +{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":";uBAca,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;AAVzD;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH;IACI;;;;;;;;OAQG;IACH,6BANW,MAAM,MACN,IAAI,GAAG,MAAM,EAAE,OACf,IAAI,GAAG,MAAM,EAAE,QACf,MAAM,GACJ,OAAO,CAAE,kBAAkB,CAAC,CA8JxC;IAmFD;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAS1B;IAED;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAK1B;IAmBD;;;;OAIG;IACH,2CAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,mCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CAsMtC;IAED;;;;;OAKG;IACH,6CA2aC;IAED;;;;;;OAMG;IACH,gCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CA+ItC;IAED;;;;;OAKG;IACH,0CA6MC;IA4LD;;;;;OAKG;IACH,sCAHW,eAAe,GACb,OAAO,CAAE,GAAG,CAAC,CAWzB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CAmP9B;IAED;;;;;;;;OAQG;IACH,sCANW,MAAM,OACN,MAAM,WACN,GAAG,UACH,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAkC5B;IAED;;;;OAIG;IACH,2CAFW;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,MAAM,QAAO;QAAC,QAAQ,QAAM;KAAC,QAgCvD;CAuIJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA99DwB,mBAAmB"} \ No newline at end of file diff --git a/lib/metadataTypes/Journey.js b/lib/metadataTypes/Journey.js index 3945f3d2a..d707bbc19 100644 --- a/lib/metadataTypes/Journey.js +++ b/lib/metadataTypes/Journey.js @@ -1691,7 +1691,7 @@ class Journey extends MetadataType { ); // payload is empty for this request if (response.statusUrl && response.statusId) { Util.logger.info( - ` - queued for publishing ${this.definition.type}: ${key}` + ` - ${this.definition.type} queued for publishing : ${key}/${version}` ); statusUrl = response.statusUrl; } else { @@ -1706,6 +1706,9 @@ class Journey extends MetadataType { executedKeyArr.push( await this._checkPublishStatus(statusUrl, key, spinner) ); + } else { + // no guarantees if the journey was actually published + executedKeyArr.push(key); } } catch (ex) { switch (ex.message) { @@ -1925,7 +1928,7 @@ class Journey extends MetadataType { return stoppedKeyArr; } /** - * pauses all journey versions + * pauses selected journey versions * * @param {string[]} keyArr customerkey of the metadata * @returns {Promise.} Returns list of keys that were paused diff --git a/test/general.test.js b/test/general.test.js index 225673d2d..4c607e8d4 100644 --- a/test/general.test.js +++ b/test/general.test.js @@ -2067,7 +2067,7 @@ describe('GENERAL', () => { describe('Publish --metadata ~~~', () => { it('Should publish the journey', async () => { handler.setOptions({ skipStatusCheck: true }); - const argvMetadata = ['journey:id:3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/1']; + const argvMetadata = ['journey:testExisting_journey_Multistep']; const typeKeyCombo = handler.metadataToTypeKey(argvMetadata); // WHEN const publish = await handler.publish('testInstance/testBU', typeKeyCombo); @@ -2075,7 +2075,7 @@ describe('GENERAL', () => { assert.equal(process.exitCode, 0, 'publish should not have thrown an error'); assert.deepEqual( publish['testInstance/testBU']?.journey, - ['testExisting_journey_Quicksend'], + ['testExisting_journey_Multistep'], 'should have published the right journey' ); return; diff --git a/test/resources/9999999/interaction/v1/interactions/publishAsync/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/post-response.json b/test/resources/9999999/interaction/v1/interactions/publishAsync/0175b971-71a3-4d8e-98ac-48121f3fbf4f/post-response.json similarity index 100% rename from test/resources/9999999/interaction/v1/interactions/publishAsync/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/post-response.json rename to test/resources/9999999/interaction/v1/interactions/publishAsync/0175b971-71a3-4d8e-98ac-48121f3fbf4f/post-response.json diff --git a/test/type.journey.test.js b/test/type.journey.test.js index 899076b70..b864442a3 100644 --- a/test/type.journey.test.js +++ b/test/type.journey.test.js @@ -593,14 +593,14 @@ describe('type: journey', () => { const publish = await handler.publish( 'testInstance/testBU', ['journey'], - ['testExisting_journey_Quicksend'] + ['testExisting_journey_Multistep'] ); // THEN assert.equal(process.exitCode, 0, 'publish should not have thrown an error'); // retrieve result assert.deepEqual( publish['testInstance/testBU']?.journey, - ['testExisting_journey_Quicksend'], + ['testExisting_journey_Multistep'], 'should have published the right journey' ); @@ -630,14 +630,14 @@ describe('type: journey', () => { const publish = await handler.publish( 'testInstance/testBU', ['journey'], - ['id:3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/1'] + ['id:0175b971-71a3-4d8e-98ac-48121f3fbf4f/1'] ); // THEN assert.equal(process.exitCode, 0, 'publish should not have thrown an error'); // retrieve result assert.deepEqual( publish['testInstance/testBU']?.journey, - ['testExisting_journey_Quicksend'], + ['id:0175b971-71a3-4d8e-98ac-48121f3fbf4f/1'], 'should have published the right journey' ); @@ -666,14 +666,14 @@ describe('type: journey', () => { const publish = await handler.publish( 'testInstance/testBU', ['journey'], - ['id:3c3f4112-9b43-43ca-8a89-aa0375b2c1a2'] + ['id:0175b971-71a3-4d8e-98ac-48121f3fbf4f'] ); // THEN assert.equal(process.exitCode, 0, 'publish should not have thrown an error'); // retrieve result assert.deepEqual( publish['testInstance/testBU']?.journey, - ['testExisting_journey_Quicksend'], + ['id:0175b971-71a3-4d8e-98ac-48121f3fbf4f'], 'should have published the right journey' ); @@ -708,7 +708,7 @@ describe('type: journey', () => { const publish = await handler.publish( 'testInstance/testBU', ['journey'], - ['id:3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/1'] + ['id:0175b971-71a3-4d8e-98ac-48121f3fbf4f/1'] ); // THEN assert.equal(process.exitCode, 1, 'publish should have thrown an error'); @@ -750,14 +750,14 @@ describe('type: journey', () => { const publish = await handler.publish( 'testInstance/testBU', ['journey'], - ['id:3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/1'] + ['id:0175b971-71a3-4d8e-98ac-48121f3fbf4f/1'] ); // THEN assert.equal(process.exitCode, 0, 'publish should not have thrown an error'); // retrieve result assert.deepEqual( publish['testInstance/testBU']?.journey, - ['id:3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/1'], + ['id:0175b971-71a3-4d8e-98ac-48121f3fbf4f/1'], 'should have published the journey' ); @@ -792,14 +792,14 @@ describe('type: journey', () => { const publish = await handler.publish( 'testInstance/testBU', ['journey'], - ['id:3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/1'] + ['id:0175b971-71a3-4d8e-98ac-48121f3fbf4f/1'] ); // THEN assert.equal(process.exitCode, 0, 'publish should not have thrown an error'); // retrieve result assert.deepEqual( publish['testInstance/testBU']?.journey, - ['id:3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/1'], + ['id:0175b971-71a3-4d8e-98ac-48121f3fbf4f/1'], 'should have published the journey' ); From d802d95b51d65d5d582ff0585c2b2be61206cdcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Berkefeld?= Date: Thu, 29 Aug 2024 23:12:30 +0200 Subject: [PATCH 5/5] #1627: improve logs & tests --- @types/lib/metadataTypes/Journey.d.ts | 3 +-- @types/lib/metadataTypes/Journey.d.ts.map | 2 +- lib/metadataTypes/Journey.js | 4 ++-- test/general.test.js | 7 +++++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/@types/lib/metadataTypes/Journey.d.ts b/@types/lib/metadataTypes/Journey.d.ts index 2e328f46f..accda7757 100644 --- a/@types/lib/metadataTypes/Journey.d.ts +++ b/@types/lib/metadataTypes/Journey.d.ts @@ -94,9 +94,8 @@ declare class Journey extends MetadataType { * Gets executed after deployment of metadata type * * @param {MetadataTypeMap} upsertResults metadata mapped by their keyField as returned by update/create - * @returns {Promise.} - */ - static postDeployTasks(upsertResults: MetadataTypeMap): Promise; + static postDeployTasks(upsertResults: MetadataTypeMap): Promise; /** * a function to publish the journey via API * diff --git a/@types/lib/metadataTypes/Journey.d.ts.map b/@types/lib/metadataTypes/Journey.d.ts.map index 8cf4bab8d..892627aa2 100644 --- a/@types/lib/metadataTypes/Journey.d.ts.map +++ b/@types/lib/metadataTypes/Journey.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":";uBAca,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;AAVzD;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH;IACI;;;;;;;;OAQG;IACH,6BANW,MAAM,MACN,IAAI,GAAG,MAAM,EAAE,OACf,IAAI,GAAG,MAAM,EAAE,QACf,MAAM,GACJ,OAAO,CAAE,kBAAkB,CAAC,CA8JxC;IAmFD;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAS1B;IAED;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAK1B;IAmBD;;;;OAIG;IACH,2CAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,mCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CAsMtC;IAED;;;;;OAKG;IACH,6CA2aC;IAED;;;;;;OAMG;IACH,gCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CA+ItC;IAED;;;;;OAKG;IACH,0CA6MC;IA4LD;;;;;OAKG;IACH,sCAHW,eAAe,GACb,OAAO,CAAE,GAAG,CAAC,CAWzB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CAmP9B;IAED;;;;;;;;OAQG;IACH,sCANW,MAAM,OACN,MAAM,WACN,GAAG,UACH,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAkC5B;IAED;;;;OAIG;IACH,2CAFW;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,MAAM,QAAO;QAAC,QAAQ,QAAM;KAAC,QAgCvD;CAuIJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA99DwB,mBAAmB"} \ No newline at end of file +{"version":3,"file":"Journey.d.ts","sourceRoot":"","sources":["../../../lib/metadataTypes/Journey.js"],"names":[],"mappings":";uBAca,OAAO,wBAAwB,EAAE,QAAQ;0BACzC,OAAO,wBAAwB,EAAE,WAAW;8BAC5C,OAAO,wBAAwB,EAAE,eAAe;+BAChD,OAAO,wBAAwB,EAAE,gBAAgB;mCACjD,OAAO,wBAAwB,EAAE,oBAAoB;kCACrD,OAAO,wBAAwB,EAAE,mBAAmB;8BACpD,OAAO,wBAAwB,EAAE,eAAe;iCAChD,OAAO,wBAAwB,EAAE,kBAAkB;gCACnD,OAAO,wBAAwB,EAAE,iBAAiB;0BAClD,OAAO,wBAAwB,EAAE,WAAW;AAVzD;;;;;;;;;;;GAWG;AAEH;;;;;;;;GAQG;AACH;IACI;;;;;;;;OAQG;IACH,6BANW,MAAM,MACN,IAAI,GAAG,MAAM,EAAE,OACf,IAAI,GAAG,MAAM,EAAE,QACf,MAAM,GACJ,OAAO,CAAE,kBAAkB,CAAC,CA8JxC;IAmFD;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAS1B;IAED;;;;;OAKG;IACH,wBAHW,gBAAgB,gBAK1B;IAmBD;;;;OAIG;IACH,2CAFW,eAAe,iBAmBzB;IAED;;;;;OAKG;IACH,mCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CAsMtC;IAED;;;;;OAKG;IACH,6CA2aC;IAED;;;;;;OAMG;IACH,gCAHW,gBAAgB,GACd,OAAO,CAAE,gBAAgB,CAAC,CA+ItC;IAED;;;;;OAKG;IACH,0CA6MC;IA4LD;;;;OAIG;IACH,sCAFW,eAAe,iBAWzB;IAED;;;;;OAKG;IACH,uBAHW,MAAM,EAAE,GACN,OAAO,CAAE,MAAM,EAAE,CAAC,CAmP9B;IAED;;;;;;;;OAQG;IACH,sCANW,MAAM,OACN,MAAM,WACN,GAAG,UACH,MAAM,GACJ,OAAO,CAAE,MAAM,CAAC,CAkC5B;IAED;;;;OAIG;IACH,2CAFW;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,MAAM,QAAO;QAAC,QAAQ,QAAM;KAAC,QAgCvD;CAuIJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA79DwB,mBAAmB"} \ No newline at end of file diff --git a/lib/metadataTypes/Journey.js b/lib/metadataTypes/Journey.js index d707bbc19..e7b5ed7c8 100644 --- a/lib/metadataTypes/Journey.js +++ b/lib/metadataTypes/Journey.js @@ -1646,7 +1646,7 @@ class Journey extends MetadataType { Util.logger.info( ` - published ${this.definition.type}: ${ journey[this.definition.nameField] - } (${journey[this.definition.keyField]} by creating the matching transactionalEmail` + } (${journey[this.definition.keyField]}) by creating the matching transactionalEmail` ); statusUrls.push({ key, statusUrl: response.statusUrl }); } @@ -1753,7 +1753,7 @@ class Journey extends MetadataType { // Transactional Send Journeys if (resultsTransactional.length) { const spinner = yoctoSpinner({ - text: `Publishing ${resultsTransactional.length} journey${resultsTransactional.length === 1 ? '' : 's'}…`, + text: `Publishing ${resultsTransactional.length} transactional journey${resultsTransactional.length === 1 ? '' : 's'}…`, }).start(); const transactionalKeyArr = (await Promise.all(resultsTransactional)).filter(Boolean); spinner.success('done.'); diff --git a/test/general.test.js b/test/general.test.js index 4c607e8d4..fa2de8fa1 100644 --- a/test/general.test.js +++ b/test/general.test.js @@ -2067,7 +2067,10 @@ describe('GENERAL', () => { describe('Publish --metadata ~~~', () => { it('Should publish the journey', async () => { handler.setOptions({ skipStatusCheck: true }); - const argvMetadata = ['journey:testExisting_journey_Multistep']; + const argvMetadata = [ + 'journey:testExisting_journey_Multistep', + 'journey:testExisting_temail_notPublished', + ]; const typeKeyCombo = handler.metadataToTypeKey(argvMetadata); // WHEN const publish = await handler.publish('testInstance/testBU', typeKeyCombo); @@ -2075,7 +2078,7 @@ describe('GENERAL', () => { assert.equal(process.exitCode, 0, 'publish should not have thrown an error'); assert.deepEqual( publish['testInstance/testBU']?.journey, - ['testExisting_journey_Multistep'], + ['testExisting_journey_Multistep', 'testExisting_temail_notPublished'], 'should have published the right journey' ); return;