cleanup / tests

This commit is contained in:
maddalax 2024-10-29 08:39:53 -05:00
parent b6233a2a96
commit f868e3e3f8
3 changed files with 72 additions and 54 deletions

View file

@ -77,11 +77,11 @@ func TestJsEval(t *testing.T) {
}
compareIgnoreSpaces(t, renderJs(t, EvalJsOnParent("element.style.display = 'none'")), `
if(!self.parentElement) { return; } let element = self.parentElement; element.style.display = 'none'
if(self.parentElement) { let element = self.parentElement; element.style.display = 'none' }
`)
compareIgnoreSpaces(t, renderJs(t, EvalJsOnSibling("button", "element.style.display = 'none'")), `
if(!self.parentElement) { return; }let siblings = self.parentElement.querySelectorAll('button');siblings.forEach(function(element) {element.style.display = 'none'});
if(self.parentElement) { let siblings = self.parentElement.querySelectorAll('button');siblings.forEach(function(element) {element.style.display = 'none'}); }
`)
}
@ -147,13 +147,13 @@ func TestToggleClassOnElement(t *testing.T) {
func TestSetClassOnParent(t *testing.T) {
compareIgnoreSpaces(t, renderJs(t, SetClassOnParent("active")), `
if(!self.parentElement) { return; } let element = self.parentElement; element.classList.add('active')
if(self.parentElement) { let element = self.parentElement; element.classList.add('active') }
`)
}
func TestRemoveClassOnParent(t *testing.T) {
compareIgnoreSpaces(t, renderJs(t, RemoveClassOnParent("active")), `
if(!self.parentElement) { return; } let element = self.parentElement; element.classList.remove('active')
if(self.parentElement) { let element = self.parentElement; element.classList.remove('active') }
`)
}
@ -176,20 +176,28 @@ func TestRemoveClassOnChildren(t *testing.T) {
}
func TestSetClassOnSibling(t *testing.T) {
compareIgnoreSpaces(t, renderJs(t, SetClassOnSibling("button", "selected")), `
if(!self.parentElement) { return; }let siblings = self.parentElement.querySelectorAll('button');
siblings.forEach(function(element) {
element.classList.add('selected')
});
compareIgnoreSpaces(t, renderJs(t, SetClassOnSibling("button", "selected")),
// language=JavaScript
`
if(self.parentElement) {
let siblings = self.parentElement.querySelectorAll('button');
siblings.forEach(function(element) {
element.classList.add('selected')
});
}
`)
}
func TestRemoveClassOnSibling(t *testing.T) {
compareIgnoreSpaces(t, renderJs(t, RemoveClassOnSibling("button", "selected")), `
if(!self.parentElement) { return; }let siblings = self.parentElement.querySelectorAll('button');
siblings.forEach(function(element) {
element.classList.remove('selected')
});
compareIgnoreSpaces(t, renderJs(t, RemoveClassOnSibling("button", "selected")),
// language=JavaScript
`
if(self.parentElement) {
let siblings = self.parentElement.querySelectorAll('button');
siblings.forEach(function(element) {
element.classList.remove('selected')
});
}
`)
}
@ -259,14 +267,16 @@ func TestEvalCommands(t *testing.T) {
self = element;
self.innerText = 'hello'
alert('test')
if(!self.parentElement) { return; }
element = self.parentElement;
element.classList.add('myclass')
if(!self.parentElement) { return; }
let siblings = self.parentElement.querySelectorAll('div');
siblings.forEach(function(element) {
element.classList.add('myclass')
});
if(self.parentElement) {
element = self.parentElement;
element.classList.add('myclass')
}
if(self.parentElement) {
let siblings = self.parentElement.querySelectorAll('div');
siblings.forEach(function(element) {
element.classList.add('myclass')
});
}
`, evalId))
}
@ -288,15 +298,16 @@ func TestToggleTextOnSibling(t *testing.T) {
result := Render(ToggleTextOnSibling("div", "hello", "world"))
//language=JavaScript
compareIgnoreSpaces(t, result, fmt.Sprintf(`
if(!self.parentElement) { return; }
let siblings = self.parentElement.querySelectorAll('div');
siblings.forEach(function(element){
if(element.innerText === "hello"){
element.innerText= "world";
} else {
element.innerText= "hello";
}
});
if(self.parentElement) {
let siblings = self.parentElement.querySelectorAll('div');
siblings.forEach(function(element){
if(element.innerText === "hello"){
element.innerText= "world";
} else {
element.innerText= "hello";
}
});
}
`))
}
@ -321,14 +332,15 @@ func TestToggleTextOnParent(t *testing.T) {
result := Render(ToggleTextOnParent("hello", "world"))
//language=JavaScript
compareIgnoreSpaces(t, result, fmt.Sprintf(`
if(!self.parentElement) { return; }
let element = self.parentElement;
if(self.parentElement) {
let element = self.parentElement;
if(element.innerText === "hello") {
element.innerText = "world";
} else {
element.innerText = "hello";
}
if(element.innerText === "hello") {
element.innerText = "world";
} else {
element.innerText = "hello";
}
}
`))
}
@ -349,9 +361,10 @@ func TestToggleClassOnParent(t *testing.T) {
result := Render(ToggleClassOnParent("hidden"))
//language=JavaScript
compareIgnoreSpaces(t, result, fmt.Sprintf(`
if(!self.parentElement) { return; }
let element = self.parentElement;
element.classList.toggle('hidden')
if(self.parentElement) {
let element = self.parentElement;
element.classList.toggle('hidden')
}
`))
}
@ -360,10 +373,11 @@ func TestToggleClassOnSibling(t *testing.T) {
result := Render(ToggleClassOnSibling("div", "hidden"))
//language=JavaScript
compareIgnoreSpaces(t, result, fmt.Sprintf(`
if(!self.parentElement) { return; }
let siblings = self.parentElement.querySelectorAll('div');
siblings.forEach(function(element) {
element.classList.toggle('hidden')
});
if(self.parentElement) {
let siblings = self.parentElement.querySelectorAll('div');
siblings.forEach(function(element) {
element.classList.toggle('hidden')
});
}
`))
}

View file

@ -296,9 +296,10 @@ func ToggleClassOnElement(selector, class string) ComplexJsCommand {
func EvalJsOnParent(js string) ComplexJsCommand {
// language=JavaScript
return EvalJs(fmt.Sprintf(`
if(!self.parentElement) { return; }
let element = self.parentElement;
%s
if(self.parentElement) {
let element = self.parentElement;
%s
}
`, js))
}
@ -317,11 +318,12 @@ func EvalJsOnChildren(selector, js string) ComplexJsCommand {
func EvalJsOnSibling(selector, js string) ComplexJsCommand {
// language=JavaScript
return EvalJs(fmt.Sprintf(`
if(!self.parentElement) { return; }
let siblings = self.parentElement.querySelectorAll('%s');
siblings.forEach(function(element) {
%s
});
if(self.parentElement) {
let siblings = self.parentElement.querySelectorAll('%s');
siblings.forEach(function(element) {
%s
});
}
`, selector, js))
}

View file

@ -16,6 +16,8 @@ var Alert = h.Alert
var SetClassOnChildren = h.SetClassOnChildren
var ToggleClassOnChildren = h.ToggleClassOnChildren
var ToggleClassOnParent = h.ToggleClassOnParent
var SetClassOnParent = h.SetClassOnParent
var RemoveClassOnParent = h.RemoveClassOnParent
var ToggleClassOnSibling = h.ToggleClassOnSibling
var RemoveClassOnChildren = h.RemoveClassOnChildren
var EvalJsOnChildren = h.EvalJsOnChildren