59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
jasmineRequire.HtmlReporterV2Urls = function(j$) {
|
|
'use strict';
|
|
|
|
// TODO unify with V2 UrlBuilder?
|
|
// TODO jsdoc
|
|
class HtmlReporterV2Urls {
|
|
constructor(options = {}) {
|
|
// queryString is injectable for use in our own tests, but user code will
|
|
// not pass any options.
|
|
this.queryString =
|
|
options.queryString ||
|
|
new jasmine.QueryString({
|
|
getWindowLocation: function() {
|
|
return window.location;
|
|
}
|
|
});
|
|
}
|
|
|
|
// TODO jsdoc. This is public.
|
|
configFromCurrentUrl() {
|
|
const config = {
|
|
stopOnSpecFailure: this.queryString.getParam('stopOnSpecFailure'),
|
|
stopSpecOnExpectationFailure: this.queryString.getParam(
|
|
'stopSpecOnExpectationFailure'
|
|
)
|
|
};
|
|
|
|
const random = this.queryString.getParam('random');
|
|
|
|
if (random !== undefined && random !== '') {
|
|
config.random = random;
|
|
}
|
|
|
|
const seed = this.queryString.getParam('seed');
|
|
if (seed) {
|
|
config.seed = seed;
|
|
}
|
|
|
|
const specFilter = new j$.private.HtmlSpecFilterV2({
|
|
filterString: () => {
|
|
return this.queryString.getParam('path');
|
|
}
|
|
});
|
|
|
|
config.specFilter = function(spec) {
|
|
return specFilter.matches(spec);
|
|
};
|
|
|
|
return config;
|
|
}
|
|
|
|
filteringSpecs() {
|
|
return !!this.queryString.getParam('path');
|
|
}
|
|
}
|
|
|
|
return HtmlReporterV2Urls;
|
|
};
|