mirror of
https://github.com/TiddlyWiki/TiddlyWiki5.git
synced 2026-04-30 15:26:49 +00:00
action-setfield shouldn't write to the current tiddler if the $tiddler attribute is present but has evaluated to a missing attribute
Fixes #5916
This commit is contained in:
@@ -36,6 +36,49 @@ function setupWiki(wikiOptions) {
|
||||
};
|
||||
}
|
||||
|
||||
it("should handle the action-setfield widget", function() {
|
||||
var info = setupWiki();
|
||||
var invokeActions = function(actions) {
|
||||
info.widgetNode.invokeActionString(actions,info.widgetNode,null,{});
|
||||
};
|
||||
var resetTiddlers = function() {
|
||||
info.wiki.addTiddlers([
|
||||
{
|
||||
title: "Output",
|
||||
text: "Elephants!"
|
||||
},{
|
||||
title: "Root",
|
||||
text: "Eagles!"
|
||||
}
|
||||
]);
|
||||
};
|
||||
// Start with a reset
|
||||
resetTiddlers();
|
||||
// Check it
|
||||
expect(info.wiki.getTiddlerText("Output")).toBe("Elephants!");
|
||||
expect(info.wiki.getTiddlerText("Root")).toBe("Eagles!");
|
||||
// Missing $tiddler attribute
|
||||
resetTiddlers();
|
||||
invokeActions("<$tiddler tiddler='Root'><$action-setfield $field='text' $value='Hippos!'/></$tiddler>");
|
||||
expect(info.wiki.getTiddlerText("Output")).toBe("Elephants!");
|
||||
expect(info.wiki.getTiddlerText("Root")).toBe("Hippos!");
|
||||
// Blank $tiddler attribute
|
||||
resetTiddlers();
|
||||
invokeActions("<$tiddler tiddler='Root'><$action-setfield $tiddler='' $field='text' $value='Koalas!'/></$tiddler>");
|
||||
expect(info.wiki.getTiddlerText("Output")).toBe("Elephants!");
|
||||
expect(info.wiki.getTiddlerText("Root")).toBe("Eagles!");
|
||||
// Empty $tiddler attribute
|
||||
resetTiddlers();
|
||||
invokeActions("<$tiddler tiddler='Root'><$action-setfield $tiddler={{{}}} $field='text' $value='Sharks!'/></$tiddler>");
|
||||
expect(info.wiki.getTiddlerText("Output")).toBe("Elephants!");
|
||||
expect(info.wiki.getTiddlerText("Root")).toBe("Eagles!");
|
||||
// Missing variable attribute
|
||||
resetTiddlers();
|
||||
invokeActions("<$tiddler tiddler='Root'><$action-setfield $tiddler=<<missing>> $field='text' $value='Tigers!'/></$tiddler>");
|
||||
expect(info.wiki.getTiddlerText("Output")).toBe("Elephants!");
|
||||
expect(info.wiki.getTiddlerText("Root")).toBe("Eagles!");
|
||||
});
|
||||
|
||||
it("should handle the action-listops widget", function() {
|
||||
var info = setupWiki();
|
||||
var invokeActions = function(actions) {
|
||||
|
||||
Reference in New Issue
Block a user