mirror of
https://github.com/go-gitea/gitea.git
synced 2025-04-27 11:58:45 +03:00

The old logic is incomplete. See the comment for the improved logic. Fix #34011 And more fixes: 1. use empty "alt" for images, otherwise the width is not right when the image fails to load 2. remove the "dropdown icon" patch, because it has been clearly done in "dropdown.js" now 3. remove the "dropdown filtered item" patch, added a clear callback, and improve the logic 4. fix global init when a node is removed and added back gain (eg: the "cherry pick" dialog with a dropdown)
77 lines
2.4 KiB
TypeScript
77 lines
2.4 KiB
TypeScript
import {createElementFromHTML} from '../../utils/dom.ts';
|
|
import {hideScopedEmptyDividers} from './dropdown.ts';
|
|
|
|
test('hideScopedEmptyDividers-simple', () => {
|
|
const container = createElementFromHTML(`<div>
|
|
<div class="divider"></div>
|
|
<div class="item">a</div>
|
|
<div class="divider"></div>
|
|
<div class="divider"></div>
|
|
<div class="divider"></div>
|
|
<div class="item">b</div>
|
|
<div class="divider"></div>
|
|
</div>`);
|
|
hideScopedEmptyDividers(container);
|
|
expect(container.innerHTML).toEqual(`
|
|
<div class="divider hidden transition"></div>
|
|
<div class="item">a</div>
|
|
<div class="divider hidden transition"></div>
|
|
<div class="divider hidden transition"></div>
|
|
<div class="divider"></div>
|
|
<div class="item">b</div>
|
|
<div class="divider hidden transition"></div>
|
|
`);
|
|
});
|
|
|
|
test('hideScopedEmptyDividers-items-all-filtered', () => {
|
|
const container = createElementFromHTML(`<div>
|
|
<div class="any"></div>
|
|
<div class="divider"></div>
|
|
<div class="item filtered">a</div>
|
|
<div class="item filtered">b</div>
|
|
<div class="divider"></div>
|
|
<div class="any"></div>
|
|
</div>`);
|
|
hideScopedEmptyDividers(container);
|
|
expect(container.innerHTML).toEqual(`
|
|
<div class="any"></div>
|
|
<div class="divider hidden transition"></div>
|
|
<div class="item filtered">a</div>
|
|
<div class="item filtered">b</div>
|
|
<div class="divider"></div>
|
|
<div class="any"></div>
|
|
`);
|
|
});
|
|
|
|
test('hideScopedEmptyDividers-hide-last', () => {
|
|
const container = createElementFromHTML(`<div>
|
|
<div class="item">a</div>
|
|
<div class="divider" data-scope="b"></div>
|
|
<div class="item tw-hidden" data-scope="b">b</div>
|
|
</div>`);
|
|
hideScopedEmptyDividers(container);
|
|
expect(container.innerHTML).toEqual(`
|
|
<div class="item">a</div>
|
|
<div class="divider hidden transition" data-scope="b"></div>
|
|
<div class="item tw-hidden" data-scope="b">b</div>
|
|
`);
|
|
});
|
|
|
|
test('hideScopedEmptyDividers-scoped-items', () => {
|
|
const container = createElementFromHTML(`<div>
|
|
<div class="item" data-scope="">a</div>
|
|
<div class="divider" data-scope="b"></div>
|
|
<div class="item tw-hidden" data-scope="b">b</div>
|
|
<div class="divider" data-scope=""></div>
|
|
<div class="item" data-scope="">c</div>
|
|
</div>`);
|
|
hideScopedEmptyDividers(container);
|
|
expect(container.innerHTML).toEqual(`
|
|
<div class="item" data-scope="">a</div>
|
|
<div class="divider hidden transition" data-scope="b"></div>
|
|
<div class="item tw-hidden" data-scope="b">b</div>
|
|
<div class="divider hidden transition" data-scope=""></div>
|
|
<div class="item" data-scope="">c</div>
|
|
`);
|
|
});
|