75 lines
2.6 KiB
JavaScript
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);
|
|
});
|
|
});
|