PluginProbe
Extendify / 3.1.0
Extendify v3.1.0
3.2.1 3.2.0 3.1.6 3.1.5 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.6 3.0.5 3.0.4 trunk 0.1.0 0.10.0 0.10.1 0.10.2 0.11.0 0.11.1 0.2.0 0.3.0 0.3.1 0.4.0 0.5.0 0.6.0 All 127 releases
extendify / tests / unit / Toolbar / toolbar.embedded.test.js

toolbar.embedded.test.js in Extendify 3.1.0, at tests/unit/Toolbar/toolbar.embedded.test.js

58 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 // The simple toolbar self-runs init() at import. When framed (Customizer
2 // preview, page-builder previews) it must wire nothing — the server skips
3 // rendering #extendify-toolbar there too, but page-builder previews still
4 // load the bundle, so the JS guard is what stops it in those.
5
6 let mockEmbedded = false;
7 jest.mock('@shared/lib/embedded-guard', () => ({
8 isEmbedded: () => mockEmbedded,
9 }));
10
11 const renderToolbar = () => {
12 document.body.innerHTML = `
13 <div id="extendify-toolbar">
14 <button type="button" id="ext-tb-quick-edit" role="switch" aria-checked="false">Quick Edit</button>
15 </div>
16 `;
17 };
18
19 const importToolbar = async () => {
20 await jest.isolateModulesAsync(async () => {
21 await import('@toolbar/toolbar');
22 });
23 };
24
25 beforeEach(() => {
26 jest.resetModules();
27 mockEmbedded = false;
28 document.documentElement.className = '';
29 document.body.innerHTML = '';
30 });
31
32 describe('toolbar — embedded guard', () => {
33 it('wires the Quick Edit toggle on a top-level render (control)', async () => {
34 renderToolbar();
35 await importToolbar();
36
37 const onToggle = jest.fn();
38 window.addEventListener('extendify-quick-edit:toggle', onToggle);
39 document.getElementById('ext-tb-quick-edit').click();
40 window.removeEventListener('extendify-quick-edit:toggle', onToggle);
41
42 expect(onToggle).toHaveBeenCalledTimes(1);
43 });
44
45 it('wires nothing when embedded — the Quick Edit toggle is inert', async () => {
46 mockEmbedded = true;
47 renderToolbar();
48 await importToolbar();
49
50 const onToggle = jest.fn();
51 window.addEventListener('extendify-quick-edit:toggle', onToggle);
52 document.getElementById('ext-tb-quick-edit').click();
53 window.removeEventListener('extendify-quick-edit:toggle', onToggle);
54
55 expect(onToggle).not.toHaveBeenCalled();
56 });
57 });
58