Revert "Added the ability to associate trace information with failing specs"

Pushing this back to 4.0 in hopes of increasing the chance that third
party reporters will notice it and add support.

This reverts commit 7a289f1de7.
This commit is contained in:
Steve Gravrock
2021-10-02 09:45:15 -07:00
parent 7a289f1de7
commit fdad8849df
12 changed files with 7 additions and 447 deletions

View File

@@ -1318,16 +1318,6 @@ getJasmineRequireObj().Env = function(j$) {
currentSuite().setSuiteProperty(key, value);
};
this.trace = function(msg) {
var maybeSpec = currentRunnable();
if (!maybeSpec || !maybeSpec.trace) {
throw new Error("'trace' was called when there was no current spec");
}
maybeSpec.trace(msg);
};
this.expect = function(actual) {
if (!currentRunnable()) {
throw new Error(

View File

@@ -68,9 +68,8 @@ getJasmineRequireObj().Spec = function(j$) {
* @property {String} status - Once the spec has completed, this string represents the pass/fail status of this spec.
* @property {number} duration - The time in ms used by the spec execution, including any before/afterEach.
* @property {Object} properties - User-supplied properties, if any, that were set using {@link Env#setSpecProperty}
* @property {TraceEntry[]|null} trace - Trace messages, if any, that were logged using {@link Env#trace} during a failing spec.
* @since 2.0.0
*/
x */
this.result = {
id: this.id,
description: this.description,
@@ -80,8 +79,7 @@ getJasmineRequireObj().Spec = function(j$) {
deprecationWarnings: [],
pendingReason: '',
duration: null,
properties: null,
trace: null
properties: null
};
}
@@ -126,11 +124,6 @@ getJasmineRequireObj().Spec = function(j$) {
self.queueableFn.fn = null;
self.result.status = self.status(excluded, failSpecWithNoExp);
self.result.duration = self.timer.elapsed();
if (self.result.status !== 'failed') {
self.result.trace = null;
}
self.resultCallback(self.result, done);
}
};
@@ -242,20 +235,6 @@ getJasmineRequireObj().Spec = function(j$) {
);
};
Spec.prototype.trace = function(msg) {
if (!this.result.trace) {
this.result.trace = [];
}
/**
* @typedef TraceEntry
* @property {String} message - The message that was passed to {@link Env#trace}.
* @property {number} timestamp - The time when the entry was added, in
* milliseconds from the spec's start time
*/
this.result.trace.push({ message: msg, timestamp: this.timer.elapsed() });
};
var extractCustomPendingMessage = function(e) {
var fullMessage = e.toString(),
boilerplateStart = fullMessage.indexOf(Spec.pendingSpecExceptionMessage),

View File

@@ -420,20 +420,4 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) {
putativeSpy.calls instanceof j$.CallTracker
);
};
/**
* Logs a message for use in debugging. If the spec fails, trace messages
* will be included in the {@link SpecResult|result} passed to the
* reporter's specDone method.
*
* This method should be called only when a spec (including any associated
* beforeEach or afterEach functions) is running.
* @function
* @name jasmine.trace
* @since 3.10.0
* @param {String} msg - The message to log
*/
j$.trace = function(msg) {
j$.getEnv().trace(msg);
};
};

View File

@@ -392,53 +392,9 @@ jasmineRequire.HtmlReporter = function(j$) {
);
}
if (result.trace) {
messages.appendChild(traceTable(result.trace));
}
return failure;
}
function traceTable(trace) {
var tbody = createDom('tbody');
trace.forEach(function(entry) {
tbody.appendChild(
createDom(
'tr',
{},
createDom('td', {}, entry.timestamp.toString()),
createDom('td', {}, entry.message)
)
);
});
return createDom(
'div',
{ className: 'jasmine-trace' },
createDom(
'div',
{ className: 'jasmine-trace-header' },
'Trace information'
),
createDom(
'table',
{},
createDom(
'thead',
{},
createDom(
'tr',
{},
createDom('th', {}, 'Time (ms)'),
createDom('th', {}, 'Message')
)
),
tbody
)
);
}
function summaryList(resultsTree, domParent) {
var specListNode;
for (var i = 0; i < resultsTree.children.length; i++) {

View File

@@ -388,20 +388,4 @@ body {
background: white;
white-space: pre;
}
.jasmine-trace {
margin: 5px 0 0 0;
padding: 5px;
color: $light-text-color;
border: 1px solid #ddd;
background: white;
table {
border-spacing: 0;
}
table, th, td {
border: 1px solid #ddd;
}
}
}