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'")), ` 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'")), ` 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) { func TestSetClassOnParent(t *testing.T) {
compareIgnoreSpaces(t, renderJs(t, SetClassOnParent("active")), ` 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) { func TestRemoveClassOnParent(t *testing.T) {
compareIgnoreSpaces(t, renderJs(t, RemoveClassOnParent("active")), ` 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) { func TestSetClassOnSibling(t *testing.T) {
compareIgnoreSpaces(t, renderJs(t, SetClassOnSibling("button", "selected")), ` compareIgnoreSpaces(t, renderJs(t, SetClassOnSibling("button", "selected")),
if(!self.parentElement) { return; }let siblings = self.parentElement.querySelectorAll('button'); // language=JavaScript
siblings.forEach(function(element) { `
element.classList.add('selected') if(self.parentElement) {
}); let siblings = self.parentElement.querySelectorAll('button');
siblings.forEach(function(element) {
element.classList.add('selected')
});
}
`) `)
} }
func TestRemoveClassOnSibling(t *testing.T) { func TestRemoveClassOnSibling(t *testing.T) {
compareIgnoreSpaces(t, renderJs(t, RemoveClassOnSibling("button", "selected")), ` compareIgnoreSpaces(t, renderJs(t, RemoveClassOnSibling("button", "selected")),
if(!self.parentElement) { return; }let siblings = self.parentElement.querySelectorAll('button'); // language=JavaScript
siblings.forEach(function(element) { `
element.classList.remove('selected') 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 = element;
self.innerText = 'hello' self.innerText = 'hello'
alert('test') alert('test')
if(!self.parentElement) { return; } if(self.parentElement) {
element = self.parentElement; element = self.parentElement;
element.classList.add('myclass') element.classList.add('myclass')
if(!self.parentElement) { return; } }
let siblings = self.parentElement.querySelectorAll('div'); if(self.parentElement) {
siblings.forEach(function(element) { let siblings = self.parentElement.querySelectorAll('div');
element.classList.add('myclass') siblings.forEach(function(element) {
}); element.classList.add('myclass')
});
}
`, evalId)) `, evalId))
} }
@ -288,15 +298,16 @@ func TestToggleTextOnSibling(t *testing.T) {
result := Render(ToggleTextOnSibling("div", "hello", "world")) result := Render(ToggleTextOnSibling("div", "hello", "world"))
//language=JavaScript //language=JavaScript
compareIgnoreSpaces(t, result, fmt.Sprintf(` compareIgnoreSpaces(t, result, fmt.Sprintf(`
if(!self.parentElement) { return; } if(self.parentElement) {
let siblings = self.parentElement.querySelectorAll('div'); let siblings = self.parentElement.querySelectorAll('div');
siblings.forEach(function(element){ siblings.forEach(function(element){
if(element.innerText === "hello"){ if(element.innerText === "hello"){
element.innerText= "world"; element.innerText= "world";
} else { } else {
element.innerText= "hello"; element.innerText= "hello";
} }
}); });
}
`)) `))
} }
@ -321,14 +332,15 @@ func TestToggleTextOnParent(t *testing.T) {
result := Render(ToggleTextOnParent("hello", "world")) result := Render(ToggleTextOnParent("hello", "world"))
//language=JavaScript //language=JavaScript
compareIgnoreSpaces(t, result, fmt.Sprintf(` compareIgnoreSpaces(t, result, fmt.Sprintf(`
if(!self.parentElement) { return; } if(self.parentElement) {
let element = self.parentElement; let element = self.parentElement;
if(element.innerText === "hello") { if(element.innerText === "hello") {
element.innerText = "world"; element.innerText = "world";
} else { } else {
element.innerText = "hello"; element.innerText = "hello";
} }
}
`)) `))
} }
@ -349,9 +361,10 @@ func TestToggleClassOnParent(t *testing.T) {
result := Render(ToggleClassOnParent("hidden")) result := Render(ToggleClassOnParent("hidden"))
//language=JavaScript //language=JavaScript
compareIgnoreSpaces(t, result, fmt.Sprintf(` compareIgnoreSpaces(t, result, fmt.Sprintf(`
if(!self.parentElement) { return; } if(self.parentElement) {
let element = self.parentElement; let element = self.parentElement;
element.classList.toggle('hidden') element.classList.toggle('hidden')
}
`)) `))
} }
@ -360,10 +373,11 @@ func TestToggleClassOnSibling(t *testing.T) {
result := Render(ToggleClassOnSibling("div", "hidden")) result := Render(ToggleClassOnSibling("div", "hidden"))
//language=JavaScript //language=JavaScript
compareIgnoreSpaces(t, result, fmt.Sprintf(` compareIgnoreSpaces(t, result, fmt.Sprintf(`
if(!self.parentElement) { return; } if(self.parentElement) {
let siblings = self.parentElement.querySelectorAll('div'); let siblings = self.parentElement.querySelectorAll('div');
siblings.forEach(function(element) { siblings.forEach(function(element) {
element.classList.toggle('hidden') element.classList.toggle('hidden')
}); });
}
`)) `))
} }

View file

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

View file

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