Skip to content

Commit 7072a51

Browse files
committed
Add real tests
1 parent 7c2d5bf commit 7072a51

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const loaded: Promise<unknown> = (function () {
99
})()
1010

1111
class TypingEffectElement extends HTMLElement {
12-
async connectedCallback() {
12+
async connectedCallback(): Promise<void> {
1313
await loaded
1414
if (this.content) await typeLines(this.lines, this.content, this.characterDelay, this.lineDelay)
1515
if (this.cursor) this.cursor.hidden = true

test/test.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,43 @@ describe('typing-effect', function () {
2727
assert.equal(ce.textContent, '')
2828
})
2929
})
30+
31+
describe('content typing', function () {
32+
it('types a single line', function (done) {
33+
const line = 'Welcome to GitHub!'
34+
const container = document.createElement('div')
35+
container.innerHTML = `
36+
<typing-effect data-lines='["${line}"]'>
37+
<span data-target="typing-effect.content"></span>
38+
<span data-target="typing-effect.cursor">|</span>
39+
</typing-effect>
40+
`
41+
const contentSpan = container.querySelector('span[data-target="typing-effect.content"]')
42+
document.body.append(container)
43+
44+
setTimeout(() => {
45+
assert.equal(contentSpan.textContent, line)
46+
done()
47+
}, 1500)
48+
})
49+
50+
it('types multiple lines', function (done) {
51+
const lineOne = 'Welcome!'
52+
const lineTwo = 'Let‘s begin'
53+
const container = document.createElement('div')
54+
container.innerHTML = `
55+
<typing-effect data-lines='["${lineOne}", "${lineTwo}"]'>
56+
<span data-target="typing-effect.content"></span>
57+
<span data-target="typing-effect.cursor">|</span>
58+
</typing-effect>
59+
`
60+
const contentSpan = container.querySelector('span[data-target="typing-effect.content"]')
61+
document.body.append(container)
62+
63+
setTimeout(() => {
64+
assert.equal(contentSpan.innerHTML, `${lineOne}<br>${lineTwo}`)
65+
done()
66+
}, 1500)
67+
})
68+
})
3069
})

0 commit comments

Comments
 (0)