mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.3 KiB
54 lines
2.3 KiB
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')).toThrowError('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('<p><div>a</div><div class="tw-hidden">b</div></p>'); |
|
toggleElem(el.children); |
|
expect(el.outerHTML).toEqual('<p><div class="tw-hidden">a</div><div class="">b</div></p>'); |
|
toggleElem(el.children, false); |
|
expect(el.outerHTML).toEqual('<p><div class="tw-hidden">a</div><div class="tw-hidden">b</div></p>'); |
|
toggleElem(el.children, true); |
|
expect(el.outerHTML).toEqual('<p><div class="">a</div><div class="">b</div></p>'); |
|
});
|
|
|