This commit is contained in:
Nick Holden 2021-04-08 18:49:58 -07:00
Родитель 7c2d5bf237
Коммит 7072a51d8b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: EE6A91D1DD9E4BC7
2 изменённых файлов: 40 добавлений и 1 удалений

Просмотреть файл

@ -9,7 +9,7 @@ const loaded: Promise<unknown> = (function () {
})()
class TypingEffectElement extends HTMLElement {
async connectedCallback() {
async connectedCallback(): Promise<void> {
await loaded
if (this.content) await typeLines(this.lines, this.content, this.characterDelay, this.lineDelay)
if (this.cursor) this.cursor.hidden = true

Просмотреть файл

@ -27,4 +27,43 @@ describe('typing-effect', function () {
assert.equal(ce.textContent, '')
})
})
describe('content typing', function () {
it('types a single line', function (done) {
const line = 'Welcome to GitHub!'
const container = document.createElement('div')
container.innerHTML = `
<typing-effect data-lines='["${line}"]'>
<span data-target="typing-effect.content"></span>
<span data-target="typing-effect.cursor">|</span>
</typing-effect>
`
const contentSpan = container.querySelector('span[data-target="typing-effect.content"]')
document.body.append(container)
setTimeout(() => {
assert.equal(contentSpan.textContent, line)
done()
}, 1500)
})
it('types multiple lines', function (done) {
const lineOne = 'Welcome!'
const lineTwo = 'Lets begin'
const container = document.createElement('div')
container.innerHTML = `
<typing-effect data-lines='["${lineOne}", "${lineTwo}"]'>
<span data-target="typing-effect.content"></span>
<span data-target="typing-effect.cursor">|</span>
</typing-effect>
`
const contentSpan = container.querySelector('span[data-target="typing-effect.content"]')
document.body.append(container)
setTimeout(() => {
assert.equal(contentSpan.innerHTML, `${lineOne}<br>${lineTwo}`)
done()
}, 1500)
})
})
})