mirror of
https://github.com/go-gitea/gitea.git
synced 2026-06-08 15:05:38 +02:00
1. remove legacy onResponseKeepSelectedItem, refactor the code to
dropdown.js
2. make dropdown correctly handle "single selection + remote query + filter"
* fix #38018
3. fix incorrect "transition" class usage for the dropdown dividers
77 lines
2.3 KiB
TypeScript
77 lines
2.3 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"></div>
|
|
<div class="item">a</div>
|
|
<div class="divider hidden"></div>
|
|
<div class="divider hidden"></div>
|
|
<div class="divider"></div>
|
|
<div class="item">b</div>
|
|
<div class="divider hidden"></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"></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" 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" data-scope="b"></div>
|
|
<div class="item tw-hidden" data-scope="b">b</div>
|
|
<div class="divider hidden" data-scope=""></div>
|
|
<div class="item" data-scope="">c</div>
|
|
`);
|
|
});
|