Skip to content

Commit

Permalink
Merge pull request #24 from hyperdivision/remove-child
Browse files Browse the repository at this point in the history
Breaking: rename unload to onunload and add removeChild heloper
  • Loading branch information
bcomnes authored Aug 8, 2019
2 parents 0799961 + 5d3c90a commit 31daf7f
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,12 +141,17 @@ The HTMLElement element where your test should work inside.
### `await t.appendChild(el, [msg])`

Takes an element, append it and then waits for onload. Asserts when complete with a `msg`.

```js
const newDiv = document.createElement('div')
newDiv.innerText = 'New div to append'
await t.appendChild(newDiv, 'Appended newDiv')
```

### `await t.removeChild(el, [msg])`

Takes a loaded element `el` and removes it from the test element and then waits for onunload. Asserts when complete with a `msg`.

### `await t.sleep(ms, [msg])`

Async sleep for `ms` and asserts when complete with `msg`.
Expand All @@ -161,7 +166,7 @@ t.element.appendChild(myElement)
await t.onload(myElement)
```

### `await t.unload(element, [msg])`
### `await t.onunload(element, [msg])`

Same as `t.onload` except it lets you wait for an element to be fully unloaded from the document.

Expand Down
9 changes: 7 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ function create (delay, fn) {
const sleepPromise = new Promise((resolve) => setTimeout(resolve, ms))
return sleepPromise.then(() => t.pass(msg))
},
onload: (node, msg = 'Element onload') => new Promise(resolve => {
onload: (node, msg = 'Element loaded into test element') => new Promise(resolve => {
const resolveFn = () => {
onload.delete(node, resolveFn)
t.delay().then(() => {
Expand All @@ -69,7 +69,7 @@ function create (delay, fn) {
}
node.isConnected ? resolveFn() : onload(node, resolveFn)
}),
unload: (node, msg = 'Element unload') => new Promise(resolve => {
onunload: (node, msg = 'Element unloaded from test element') => new Promise(resolve => {
const resolveFn = () => {
onload.delete(node, undefined, resolveFn)
t.delay().then(() => {
Expand Down Expand Up @@ -124,6 +124,11 @@ function create (delay, fn) {
t.element.appendChild(el)
return t.onload(el, msg).then(t.delay)
},
removeChild (el, msg = 'Removed child from test element') {
const unloadP = t.onload(el, msg).then(t.delay)
t.element.removeChild(el)
return unloadP
},
once (emitter, name, msg) {
// t is expected to be an event emitter
if (typeof emitter === 'string') return tOnce.call(t, emitter, name)
Expand Down

0 comments on commit 31daf7f

Please sign in to comment.