1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-30 05:19:57 +00:00

Testcase widget should only run tests if expected results are specified

Fixes #8218
This commit is contained in:
Jeremy Ruston 2024-05-29 08:28:34 +01:00
parent 9756b79683
commit 1b6e8e1a79
2 changed files with 19 additions and 2 deletions

View File

@ -77,8 +77,13 @@ TestCaseWidget.prototype.render = function(parent,nextSibling) {
this.setVariable("transclusion",$tw.utils.hashString(jsonPayload)); this.setVariable("transclusion",$tw.utils.hashString(jsonPayload));
// Generate a `payloadTiddlers` variable that contains the payload in JSON format // Generate a `payloadTiddlers` variable that contains the payload in JSON format
this.setVariable("payloadTiddlers",jsonPayload); this.setVariable("payloadTiddlers",jsonPayload);
// Only run the tests if the testcase output and expected results were specified, and those tiddlers actually exist in the wiki
var shouldRunTests = false;
if(this.testcaseTestOutput && this.testcaseWiki.tiddlerExists(this.testcaseTestOutput) && this.testcaseTestExpectedResult && this.testcaseWiki.tiddlerExists(this.testcaseTestExpectedResult)) {
shouldRunTests = true;
}
// Render the test rendering if required // Render the test rendering if required
if(this.testcaseTestOutput && this.testcaseTestExpectedResult) { if(shouldRunTests) {
var testcaseOutputContainer = $tw.fakeDocument.createElement("div"); var testcaseOutputContainer = $tw.fakeDocument.createElement("div");
var testcaseOutputWidget = this.testcaseWiki.makeTranscludeWidget(this.testcaseTestOutput,{ var testcaseOutputWidget = this.testcaseWiki.makeTranscludeWidget(this.testcaseTestOutput,{
document: $tw.fakeDocument, document: $tw.fakeDocument,
@ -101,7 +106,7 @@ TestCaseWidget.prototype.render = function(parent,nextSibling) {
var testResult = "", var testResult = "",
outputHTML = "", outputHTML = "",
expectedHTML = ""; expectedHTML = "";
if(this.testcaseTestOutput && this.testcaseTestExpectedResult) { if(shouldRunTests) {
outputHTML = testcaseOutputContainer.children[0].innerHTML; outputHTML = testcaseOutputContainer.children[0].innerHTML;
expectedHTML = this.testcaseWiki.getTiddlerText(this.testcaseTestExpectedResult); expectedHTML = this.testcaseWiki.getTiddlerText(this.testcaseTestExpectedResult);
if(outputHTML === expectedHTML) { if(outputHTML === expectedHTML) {

View File

@ -0,0 +1,12 @@
title: TestCases/TestCaseWidget/NoExpectedResults
type: text/vnd.tiddlywiki-multiple
tags: [[$:/tags/wiki-test-spec]]
description: A testcase that does not specify expected results
title: Narrative
This testcase will display without the pass/fail icons because it does not include an `ExpectedResults` tiddler, and so will only be rendered, and not be executed as a test
+
title: Output
This is the output