Report the path/url of the file that the spec/suite was defined in

Fixes #1884
This commit is contained in:
Steve Gravrock
2023-02-15 21:26:28 -08:00
parent bc3a495160
commit 6ad8d20694
7 changed files with 216 additions and 105 deletions

View File

@@ -674,17 +674,23 @@ getJasmineRequireObj().Env = function(j$) {
this.describe = function(description, definitionFn) {
ensureIsNotNested('describe');
return suiteBuilder.describe(description, definitionFn).metadata;
const filename = callerCallerFilename();
return suiteBuilder.describe(description, definitionFn, filename)
.metadata;
};
this.xdescribe = function(description, definitionFn) {
ensureIsNotNested('xdescribe');
return suiteBuilder.xdescribe(description, definitionFn).metadata;
const filename = callerCallerFilename();
return suiteBuilder.xdescribe(description, definitionFn, filename)
.metadata;
};
this.fdescribe = function(description, definitionFn) {
ensureIsNotNested('fdescribe');
return suiteBuilder.fdescribe(description, definitionFn).metadata;
const filename = callerCallerFilename();
return suiteBuilder.fdescribe(description, definitionFn, filename)
.metadata;
};
function specResultCallback(spec, result, next) {
@@ -711,17 +717,20 @@ getJasmineRequireObj().Env = function(j$) {
this.it = function(description, fn, timeout) {
ensureIsNotNested('it');
return suiteBuilder.it(description, fn, timeout).metadata;
const filename = callerCallerFilename();
return suiteBuilder.it(description, fn, timeout, filename).metadata;
};
this.xit = function(description, fn, timeout) {
ensureIsNotNested('xit');
return suiteBuilder.xit(description, fn, timeout).metadata;
const filename = callerCallerFilename();
return suiteBuilder.xit(description, fn, timeout, filename).metadata;
};
this.fit = function(description, fn, timeout) {
ensureIsNotNested('fit');
return suiteBuilder.fit(description, fn, timeout).metadata;
const filename = callerCallerFilename();
return suiteBuilder.fit(description, fn, timeout, filename).metadata;
};
/**
@@ -861,5 +870,9 @@ getJasmineRequireObj().Env = function(j$) {
};
}
function callerCallerFilename() {
return new j$.StackTrace(new Error()).frames[3].file;
}
return Env;
};