Replace remote_toggle with method inside generic controller

- put former remote toggle ctrller toggle method
   in new toggleAdvancedSettings in more generic toggle ctrller
 - modified acordingly the 2 associated views
 - put former test code in more generic ctrller test file
 - deleted now useless ctrller + test files
This commit is contained in:
cyrillefr
2024-02-06 17:02:23 +01:00
parent d772c590da
commit f8cb98f43e
6 changed files with 62 additions and 82 deletions

View File

@@ -108,4 +108,49 @@ describe("ToggleControlController", () => {
expect(content.style.display).toBe("block");
});
});
describe("#toggleAdvancedSettings", () => {
beforeEach(() => {
document.body.innerHTML = `
<div data-controller="toggle-control" data-toggle-control-selector-value="#content">
<button id="remote-toggle" data-action="click->toggle-control#toggleAdvancedSettings"></button>
<button id="remote-toggle-with-chevron" data-action="click->toggle-control#toggleAdvancedSettings">
<i class="icon-chevron-down" data-toggle-control-target="chevron"></i>
</button>
</div>
<div id="content">...</div>
`;
});
it("clicking a toggle switches the visibility of the :data-remote-toggle-selector element", () => {
const button = document.getElementById("remote-toggle");
const content = document.getElementById("content");
expect(content.style.display).toBe("");
button.click();
expect(content.style.display).toBe("none");
button.click();
expect(content.style.display).toBe("block");
});
it("clicking a toggle with a chevron icon switches the visibility of content and the direction of the icon", () => {
const button = document.getElementById("remote-toggle-with-chevron");
const chevron = button.querySelector("i");
const content = document.getElementById("content");
expect(content.style.display).toBe("");
expect(chevron.className).toBe("icon-chevron-down");
button.click();
expect(content.style.display).toBe("none");
expect(chevron.className).toBe("icon-chevron-up");
button.click();
expect(content.style.display).toBe("block");
expect(chevron.className).toBe("icon-chevron-down");
});
});
});