gitea源码

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import {
  2. createElementFromAttrs,
  3. createElementFromHTML,
  4. queryElemChildren,
  5. querySingleVisibleElem,
  6. toggleElem,
  7. } from './dom.ts';
  8. test('createElementFromHTML', () => {
  9. expect(createElementFromHTML('<a>foo<span>bar</span></a>').outerHTML).toEqual('<a>foo<span>bar</span></a>');
  10. expect(createElementFromHTML('<tr data-x="1"><td>foo</td></tr>').outerHTML).toEqual('<tr data-x="1"><td>foo</td></tr>');
  11. });
  12. test('createElementFromAttrs', () => {
  13. const el = createElementFromAttrs('button', {
  14. id: 'the-id',
  15. class: 'cls-1 cls-2',
  16. disabled: true,
  17. checked: false,
  18. required: null,
  19. tabindex: 0,
  20. 'data-foo': 'the-data',
  21. }, 'txt', createElementFromHTML('<span>inner</span>'));
  22. 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>');
  23. });
  24. test('querySingleVisibleElem', () => {
  25. let el = createElementFromHTML('<div></div>');
  26. expect(querySingleVisibleElem(el, 'span')).toBeNull();
  27. el = createElementFromHTML('<div><span>foo</span></div>');
  28. expect(querySingleVisibleElem(el, 'span').textContent).toEqual('foo');
  29. el = createElementFromHTML('<div><span style="display: none;">foo</span><span>bar</span></div>');
  30. expect(querySingleVisibleElem(el, 'span').textContent).toEqual('bar');
  31. el = createElementFromHTML('<div><span class="some-class tw-hidden">foo</span><span>bar</span></div>');
  32. expect(querySingleVisibleElem(el, 'span').textContent).toEqual('bar');
  33. el = createElementFromHTML('<div><span>foo</span><span>bar</span></div>');
  34. expect(() => querySingleVisibleElem(el, 'span')).toThrowError('Expected exactly one visible element');
  35. });
  36. test('queryElemChildren', () => {
  37. const el = createElementFromHTML('<div><span class="a">a</span><span class="b">b</span></div>');
  38. const children = queryElemChildren(el, '.a');
  39. expect(children.length).toEqual(1);
  40. });
  41. test('toggleElem', () => {
  42. const el = createElementFromHTML('<p><div>a</div><div class="tw-hidden">b</div></p>');
  43. toggleElem(el.children);
  44. expect(el.outerHTML).toEqual('<p><div class="tw-hidden">a</div><div class="">b</div></p>');
  45. toggleElem(el.children, false);
  46. expect(el.outerHTML).toEqual('<p><div class="tw-hidden">a</div><div class="tw-hidden">b</div></p>');
  47. toggleElem(el.children, true);
  48. expect(el.outerHTML).toEqual('<p><div class="">a</div><div class="">b</div></p>');
  49. });