mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-28 21:50:29 +01:00
- Update all JS dependencies via `make update-js` - `webpack-cli` 6 to 7: remove `--disable-interpret` from Makefile - Fix lint: remove unnecessary type args, `toThrowError` to `toThrow` - Fix duplicate CSS selector detected by `stylelint` 17.6.0 - Change `updates.config.ts` to use `pin`, needed for `tailwindcss` - Pin `typescript` pending typescript-eslint/typescript-eslint#12123 --------- Co-authored-by: Claude (claude-opus-4-6) <noreply@anthropic.com> Co-authored-by: Giteabot <teabot@gitea.io>
55 lines
2.4 KiB
TypeScript
55 lines
2.4 KiB
TypeScript
import {
|
|
createElementFromAttrs,
|
|
createElementFromHTML,
|
|
queryElemChildren,
|
|
querySingleVisibleElem,
|
|
toggleElem,
|
|
} from './dom.ts';
|
|
|
|
test('createElementFromHTML', () => {
|
|
expect(createElementFromHTML('<a>foo<span>bar</span></a>').outerHTML).toEqual('<a>foo<span>bar</span></a>');
|
|
expect(createElementFromHTML('<tr data-x="1"><td>foo</td></tr>').outerHTML).toEqual('<tr data-x="1"><td>foo</td></tr>');
|
|
});
|
|
|
|
test('createElementFromAttrs', () => {
|
|
const el = createElementFromAttrs('button', {
|
|
id: 'the-id',
|
|
class: 'cls-1 cls-2',
|
|
disabled: true,
|
|
checked: false,
|
|
required: null,
|
|
tabindex: 0,
|
|
'data-foo': 'the-data',
|
|
}, 'txt', createElementFromHTML('<span>inner</span>'));
|
|
expect(el.outerHTML).toEqual('<button id="the-id" class="cls-1 cls-2" disabled="" tabindex="0" data-foo="the-data">txt<span>inner</span></button>');
|
|
});
|
|
|
|
test('querySingleVisibleElem', () => {
|
|
let el = createElementFromHTML('<div></div>');
|
|
expect(querySingleVisibleElem(el, 'span')).toBeNull();
|
|
el = createElementFromHTML('<div><span>foo</span></div>');
|
|
expect(querySingleVisibleElem(el, 'span')!.textContent).toEqual('foo');
|
|
el = createElementFromHTML('<div><span style="display: none;">foo</span><span>bar</span></div>');
|
|
expect(querySingleVisibleElem(el, 'span')!.textContent).toEqual('bar');
|
|
el = createElementFromHTML('<div><span class="some-class tw-hidden">foo</span><span>bar</span></div>');
|
|
expect(querySingleVisibleElem(el, 'span')!.textContent).toEqual('bar');
|
|
el = createElementFromHTML('<div><span>foo</span><span>bar</span></div>');
|
|
expect(() => querySingleVisibleElem(el, 'span')).toThrow('Expected exactly one visible element');
|
|
});
|
|
|
|
test('queryElemChildren', () => {
|
|
const el = createElementFromHTML('<div><span class="a">a</span><span class="b">b</span></div>');
|
|
const children = queryElemChildren(el, '.a');
|
|
expect(children.length).toEqual(1);
|
|
});
|
|
|
|
test('toggleElem', () => {
|
|
const el = createElementFromHTML('<div><div>a</div><div class="tw-hidden">b</div></div>');
|
|
toggleElem(el.children);
|
|
expect(el.outerHTML).toEqual('<div><div class="tw-hidden">a</div><div class="">b</div></div>');
|
|
toggleElem(el.children, false);
|
|
expect(el.outerHTML).toEqual('<div><div class="tw-hidden">a</div><div class="tw-hidden">b</div></div>');
|
|
toggleElem(el.children, true);
|
|
expect(el.outerHTML).toEqual('<div><div class="">a</div><div class="">b</div></div>');
|
|
});
|