playwright-slack-report 1.1.58 → 1.1.60
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/README.md
CHANGED
|
@@ -306,6 +306,10 @@ An example advanced configuration is shown below:
|
|
|
306
306
|
|
|
307
307
|
### **channels**
|
|
308
308
|
An array of Slack channels to post to, at least one channel is required
|
|
309
|
+
### **onSuccessChannels**
|
|
310
|
+
(Optional) An array of Slack channels to post to when tests have passed. Value from `channels` is used if not defined here
|
|
311
|
+
### **onFailureChannels**
|
|
312
|
+
(Optional) An array of Slack channels to post to when tests have failed. Value from `channels` is used if not defined here
|
|
309
313
|
### **sendResults**
|
|
310
314
|
Can either be *"always"*, *"on-failure"* or *"off"*, this configuration is required:
|
|
311
315
|
* **always** - will send the results to Slack at completion of the test run
|
|
@@ -7,7 +7,8 @@ declare class SlackReporter implements Reporter {
|
|
|
7
7
|
private meta;
|
|
8
8
|
private resultsParser;
|
|
9
9
|
private sendResults;
|
|
10
|
-
private
|
|
10
|
+
private onSuccessSlackChannels;
|
|
11
|
+
private onFailureSlackChannels;
|
|
11
12
|
private slackLogLevel;
|
|
12
13
|
private slackOAuthToken;
|
|
13
14
|
private slackWebHookUrl;
|
|
@@ -17,7 +17,8 @@ class SlackReporter {
|
|
|
17
17
|
meta = [];
|
|
18
18
|
resultsParser;
|
|
19
19
|
sendResults = 'on-failure';
|
|
20
|
-
|
|
20
|
+
onSuccessSlackChannels = [];
|
|
21
|
+
onFailureSlackChannels = [];
|
|
21
22
|
slackLogLevel;
|
|
22
23
|
slackOAuthToken;
|
|
23
24
|
slackWebHookUrl;
|
|
@@ -47,7 +48,10 @@ class SlackReporter {
|
|
|
47
48
|
this.sendResults = slackReporterConfig.sendResults || 'always';
|
|
48
49
|
this.customLayout = slackReporterConfig.layout;
|
|
49
50
|
this.customLayoutAsync = slackReporterConfig.layoutAsync;
|
|
50
|
-
this.
|
|
51
|
+
this.onSuccessSlackChannels
|
|
52
|
+
= slackReporterConfig.onSuccessChannels || slackReporterConfig.channels;
|
|
53
|
+
this.onFailureSlackChannels
|
|
54
|
+
= slackReporterConfig.onFailureChannels || slackReporterConfig.channels;
|
|
51
55
|
this.maxNumberOfFailuresToShow
|
|
52
56
|
= slackReporterConfig.maxNumberOfFailuresToShow || 10;
|
|
53
57
|
this.slackOAuthToken = slackReporterConfig.slackOAuthToken || undefined;
|
|
@@ -72,9 +76,10 @@ class SlackReporter {
|
|
|
72
76
|
const resultSummary = await this.resultsParser.getParsedResults(this.suite.allTests());
|
|
73
77
|
resultSummary.meta = this.meta;
|
|
74
78
|
const maxRetry = Math.max(...resultSummary.tests.map((o) => o.retry));
|
|
79
|
+
const testsFailed = resultSummary.tests.some((z) => (z.status === 'failed' || z.status === 'timedOut')
|
|
80
|
+
&& z.retry === maxRetry);
|
|
75
81
|
if (this.sendResults === 'on-failure'
|
|
76
|
-
&&
|
|
77
|
-
&& z.retry === maxRetry).length === 0) {
|
|
82
|
+
&& !testsFailed) {
|
|
78
83
|
this.log('⏩ Slack reporter - no failures found');
|
|
79
84
|
return;
|
|
80
85
|
}
|
|
@@ -97,9 +102,10 @@ class SlackReporter {
|
|
|
97
102
|
logLevel: this.slackLogLevel || web_api_1.LogLevel.DEBUG,
|
|
98
103
|
agent,
|
|
99
104
|
}));
|
|
105
|
+
const slackChannels = testsFailed ? this.onFailureSlackChannels : this.onSuccessSlackChannels;
|
|
100
106
|
const result = await slackClient.sendMessage({
|
|
101
107
|
options: {
|
|
102
|
-
channelIds:
|
|
108
|
+
channelIds: slackChannels,
|
|
103
109
|
customLayout: this.customLayout,
|
|
104
110
|
customLayoutAsync: this.customLayoutAsync,
|
|
105
111
|
maxNumberOfFailures: this.maxNumberOfFailuresToShow,
|
|
@@ -155,10 +161,18 @@ class SlackReporter {
|
|
|
155
161
|
message: "❌ \"sendResults\" is not valid. Expecting one of ['always', 'on-failure', 'off'].",
|
|
156
162
|
};
|
|
157
163
|
}
|
|
158
|
-
|
|
164
|
+
const noSuccessChannelsProvided = this.sendResults === 'always' && (!this.onSuccessSlackChannels || this.onSuccessSlackChannels.length === 0);
|
|
165
|
+
const noFailureChannelsProvided = ['always', 'on-failure'].includes(this.sendResults) && (!this.onFailureSlackChannels || this.onFailureSlackChannels.length === 0);
|
|
166
|
+
if (noSuccessChannelsProvided) {
|
|
159
167
|
return {
|
|
160
168
|
okToProceed: false,
|
|
161
|
-
message: '❌ Slack channel(s) was not provided in the config',
|
|
169
|
+
message: '❌ Slack channel(s) for successful tests notifications was not provided in the config',
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
if (noFailureChannelsProvided) {
|
|
173
|
+
return {
|
|
174
|
+
okToProceed: false,
|
|
175
|
+
message: '❌ Slack channel(s) for failed tests notifications was not provided in the config',
|
|
162
176
|
};
|
|
163
177
|
}
|
|
164
178
|
if (this.customLayout && typeof this.customLayout !== 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackReporter.js","sourceRoot":"","sources":["../../src/SlackReporter.ts"],"names":[],"mappings":";;;;;AASA,4CAAqD;AACrD,yDAAoD;AACpD,4CAAiD;AACjD,oEAA4C;AAC5C,gEAAwC;AACxC,8EAAsD;AAEtD,MAAM,aAAa;IACT,YAAY,CAAuB;IAEnC,iBAAiB,CAAuB;IAExC,yBAAyB,CAAS;IAElC,YAAY,CAAU;IAEtB,IAAI,GAA0C,EAAE,CAAC;IAEjD,aAAa,CAAgB;IAE7B,WAAW,GAAoC,YAAY,CAAC;IAE5D,
|
|
1
|
+
{"version":3,"file":"SlackReporter.js","sourceRoot":"","sources":["../../src/SlackReporter.ts"],"names":[],"mappings":";;;;;AASA,4CAAqD;AACrD,yDAAoD;AACpD,4CAAiD;AACjD,oEAA4C;AAC5C,gEAAwC;AACxC,8EAAsD;AAEtD,MAAM,aAAa;IACT,YAAY,CAAuB;IAEnC,iBAAiB,CAAuB;IAExC,yBAAyB,CAAS;IAElC,YAAY,CAAU;IAEtB,IAAI,GAA0C,EAAE,CAAC;IAEjD,aAAa,CAAgB;IAE7B,WAAW,GAAoC,YAAY,CAAC;IAE5D,sBAAsB,GAAa,EAAE,CAAC;IAEtC,sBAAsB,GAAa,EAAE,CAAC;IAEtC,aAAa,CAAuB;IAEpC,eAAe,CAAqB;IAEpC,eAAe,CAAqB;IAEpC,aAAa,CAAsB;IAEnC,KAAK,CAAqB;IAE1B,QAAQ,GAA+C,EAAE,CAAC;IAE1D,KAAK,CAAS;IAEtB,IAAI,GAAa,EAAE,CAAC;IAEpB,OAAO,CAAC,UAAsB,EAAE,KAAY;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,MAAM,mBAAmB,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClH,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;aAAM;YACL,mCAAmC;YACnC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAChD,WAAW,EAAE,GAAG,CAAC,IAAI;gBACrB,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW;oBAC1B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW;oBACrB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB;aAC/B,CAAC,CAAC,CAAC;SACL;QAED,IAAI,mBAAmB,EAAE;YACvB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,WAAW,IAAI,QAAQ,CAAC;YAC/D,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC;YAC/C,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,CAAC;YACzD,IAAI,CAAC,sBAAsB;kBACvB,mBAAmB,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,QAAQ,CAAC;YAC1E,IAAI,CAAC,sBAAsB;kBACvB,mBAAmB,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,QAAQ,CAAC;YAC1E,IAAI,CAAC,yBAAyB;kBAC1B,mBAAmB,CAAC,yBAAyB,IAAI,EAAE,CAAC;YACxD,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,eAAe,IAAI,SAAS,CAAC;YACxE,IAAI,CAAC,eAAe,GAAG,mBAAmB,CAAC,eAAe,IAAI,SAAS,CAAC;YACxE,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,aAAa,IAAI,KAAK,CAAC;YAChE,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC,YAAY,IAAI,KAAK,CAAC;YAC9D,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,aAAa,IAAI,kBAAQ,CAAC,KAAK,CAAC;YACzE,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,IAAI,SAAS,CAAC;SACrD;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;IAC3C,CAAC;IAED,kEAAkE;IAClE,SAAS,CAAC,IAAc,EAAE,MAAkB;QAC1C,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAClD,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClB,OAAO;SACR;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAC7D,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CACtB,CAAC;QACF,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;eACpD,CAAC,CAAC,KAAK,KAAK,QAAQ,CAC1B,CAAC;QAEF,IACE,IAAI,CAAC,WAAW,KAAK,YAAY;eAC9B,CAAC,WAAW,EACf;YACA,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACjD,OAAO;SACR;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,mCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvE,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,MAAM,OAAO,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACrE,MAAM,kBAAkB,GAAG,IAAI,4BAAkB,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC;gBACzD,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,mBAAmB,EAAE,IAAI,CAAC,yBAAyB;gBACnD,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,cAAc,EAAE,aAAa;aAC9B,CAAC,CAAC;YACH,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SACrD;aAAM;YACL,MAAM,WAAW,GAAG,IAAI,qBAAW,CACjC,IAAI,mBAAS,CACX,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAC9D;gBACE,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,kBAAQ,CAAC,KAAK;gBAC9C,KAAK;aACN,CACF,CACF,CAAC;YAEF,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAE9F,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC;gBAC3C,OAAO,EAAE;oBACP,UAAU,EAAE,aAAa;oBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;oBACzC,mBAAmB,EAAE,IAAI,CAAC,yBAAyB;oBACnD,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,cAAc,EAAE,aAAa;oBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC;aACF,CAAC,CAAC;YACH,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;oBACzC,4CAA4C;oBAC5C,MAAM,WAAW,CAAC,qBAAqB,CAAC;wBACtC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC/B,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;wBAChB,cAAc,EAAE,aAAa;wBAC7B,mBAAmB,EAAE,IAAI,CAAC,yBAAyB;qBACpD,CAAC,CAAC;iBACJ;aACF;SACF;IACH,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;YAC9B,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;SACxE;QAED,IACE,CAAC,IAAI,CAAC,eAAe;eAClB,CAAC,IAAI,CAAC,eAAe;eACrB,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAC1C;YACA,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,OAAO,EACL,oGAAoG;aACvG,CAAC;SACH;QAED,IACE,IAAI,CAAC,eAAe;eACjB,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,IAAI,CAAC,eAAe,CAAC,EACnE;YACA,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,OAAO,EACL,iJAAiJ;aACpJ,CAAC;SACH;QAED,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,EAAE;YAC7C,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,OAAO,EACL,mHAAmH;aACtH,CAAC;SACH;QAED,IACE,CAAC,IAAI,CAAC,WAAW;eACd,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAC9D;YACA,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,OAAO,EACL,mFAAmF;aACtF,CAAC;SACH;QAED,MAAM,yBAAyB,GAAG,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAC9I,MAAM,yBAAyB,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAEpK,IAAI,yBAAyB,EAAE;YAC7B,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,sFAAsF;aAChG,CAAC;SACH;QAED,IAAI,yBAAyB,EAAE;YAC7B,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,kFAAkF;aAC5F,CAAC;SACH;QAED,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;YAChE,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,mCAAmC;aAC7C,CAAC;SACH;QAED,IACE,IAAI,CAAC,iBAAiB;eACnB,OAAO,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAC/C;YACA,OAAO;gBACL,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,uCAAuC;aACjD,CAAC;SACH;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC1C,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;SAClE;QACD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,OAA2B;QAC7B,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzB;IACH,CAAC;IAED,kDAAkD;IAClD,aAAa;QACX,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AACD,kBAAe,aAAa,CAAC"}
|
package/package.json
CHANGED