Files
hyprcrd/public/plugins/tests/toolbar.test.js
T
2026-04-10 07:58:07 +02:00

75 lines
2.6 KiB
JavaScript

import { describe, it, afterEach, expect, $, click, sleep, closeAll } from './runner.js';
import { state } from '../../js/modules/state.js';
describe('Toolbar: Filter Toggles', () => {
afterEach(() => closeAll());
it('hide-done toggles state and active class', async () => {
const before = state.hideDone;
click('#hide-done');
await sleep(100);
expect(state.hideDone).toBe(!before);
expect($('#hide-done').classList.contains('active')).toBe(!before);
// Reset
click('#hide-done');
await sleep(50);
});
it('hide-termine toggles state and active class', async () => {
const before = state.hideTermine;
click('#hide-termine');
await sleep(100);
expect(state.hideTermine).toBe(!before);
expect($('#hide-termine').classList.contains('active')).toBe(!before);
click('#hide-termine');
await sleep(50);
});
it('hide-tagged toggles state and active class', async () => {
const before = state.hideTagged;
click('#hide-tagged');
await sleep(100);
expect(state.hideTagged).toBe(!before);
expect($('#hide-tagged').classList.contains('active')).toBe(!before);
click('#hide-tagged');
await sleep(50);
});
it('superview toggles state and active class', async () => {
const before = state.superView;
click('#superview-toggle');
await sleep(100);
expect(state.superView).toBe(!before);
expect($('#superview-toggle').classList.contains('active')).toBe(!before);
click('#superview-toggle');
await sleep(50);
});
it('sort cycles through modes', async () => {
const modes = ['manual', 'newest', 'oldest', 'alpha', 'tag'];
const before = state.sortMode;
click('#sort-toggle');
await sleep(100);
const after = state.sortMode;
const idx = modes.indexOf(before);
expect(after).toBe(modes[(idx + 1) % modes.length]);
// Reset back
while (state.sortMode !== before) { click('#sort-toggle'); await sleep(50); }
});
});
describe('Toolbar: Superview Rendering', () => {
afterEach(async () => {
if (state.superView) { click('#superview-toggle'); await sleep(100); }
await closeAll();
});
it('superview renders list items', async () => {
if (state.superView) { click('#superview-toggle'); await sleep(100); }
click('#superview-toggle');
await sleep(200);
const items = document.querySelectorAll('.superview-item');
expect(items.length).toBeGreaterThan(-1);
});
});