Update tests

pull/9962/head
Nguyen Tran 3 years ago
parent c8f157c807
commit 4b91b50a92

@ -1,28 +0,0 @@
import { test } from '../../test';
import { setTimeout } from 'node:timers/promises';
export default test({
html: `
<p>Name: tom</p>
<p>Email: tom@mail.com</p>
<p>Number: 555</p>
<button>Update me</button>
`,
async test({ assert, target }) {
const [button] = target.querySelectorAll('button');
const event = new window.MouseEvent('click', { bubbles: true });
await button.dispatchEvent(event);
await setTimeout(500);
assert.htmlEqual(
target.innerHTML,
`
<p>Name: john</p>
<p>Email: jerry@mail.com</p>
<p>Number: 777</p>
<button>Update me</button>
`
);
}
});

@ -1,38 +0,0 @@
<script>
let name = $state("tom");
let email = $state("tom@mail.com");
let number = $state(555);
const fetch_name = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve("jerry")
}, 100)
})
}
const fetch_email = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve("jerry@mail.com")
}, 100)
})
}
const fetch_number = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve(777)
}, 100)
})
}
const update = async () => {
[ name = await fetch_name(), email = await fetch_email(), number = await fetch_number() ] = ["john"];
}
</script>
<p>Name: {name}</p>
<p>Email: {email}</p>
<p>Number: {number}</p>
<button on:click={update}>Update me</button>

@ -1,28 +0,0 @@
import { test } from '../../test';
import { setTimeout } from 'node:timers/promises';
export default test({
html: `
<p>Name: tom</p>
<p>Email: tom@mail.com</p>
<p>Number: 555</p>
<button>Update me</button>
`,
async test({ assert, target }) {
const [button] = target.querySelectorAll('button');
const event = new window.MouseEvent('click', { bubbles: true });
await button.dispatchEvent(event);
await setTimeout(100);
assert.htmlEqual(
target.innerHTML,
`
<p>Name: jerry</p>
<p>Email: jerry@mail.com</p>
<p>Number: 777</p>
<button>Update me</button>
`
);
}
});

@ -1,22 +0,0 @@
<script>
let name = $state("tom");
let email = $state("tom@mail.com");
let number = $state(555);
const fetch_user = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve([{name: "jerry", email: "jerry@mail.com"}, 777])
}, 100)
})
}
const update = async () => {
[{ name, email }, number] = await fetch_user();
}
</script>
<p>Name: {name}</p>
<p>Email: {email}</p>
<p>Number: {number}</p>
<button on:click={update}>Update me</button>

@ -1,28 +0,0 @@
import { test } from '../../test';
import { setTimeout } from 'node:timers/promises';
export default test({
html: `
<p>Name: tom</p>
<p>Email: tom@mail.com</p>
<p>Number: 555</p>
<button>Update me</button>
`,
async test({ assert, target }) {
const [button] = target.querySelectorAll('button');
const event = new window.MouseEvent('click', { bubbles: true });
await button.dispatchEvent(event);
await setTimeout(500);
assert.htmlEqual(
target.innerHTML,
`
<p>Name: jerry</p>
<p>Email: john@mail.com</p>
<p>Number: 777</p>
<button>Update me</button>
`
);
}
});

@ -1,38 +0,0 @@
<script>
let name = $state("tom");
let email = $state("tom@mail.com");
let number = $state(555);
const fetch_name = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve("john")
}, 100)
})
}
const fetch_email = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve("jerry@mail.com")
}, 100)
})
}
const fetch_number = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve(777)
}, 100)
})
}
const update = async () => {
({ name = ("j" + "e" + await Promise.resolve("rr") + "y"), email = await fetch_email(), number = await fetch_number() } = { email: "john@mail.com" });
}
</script>
<p>Name: {name}</p>
<p>Email: {email}</p>
<p>Number: {number}</p>
<button on:click={update}>Update me</button>

@ -1,28 +0,0 @@
import { test } from '../../test';
import { setTimeout } from 'node:timers/promises';
export default test({
html: `
<p>Name: tom</p>
<p>Email: tom@mail.com</p>
<p>Number: 555</p>
<button>Update me</button>
`,
async test({ assert, target }) {
const [button] = target.querySelectorAll('button');
const event = new window.MouseEvent('click', { bubbles: true });
await button.dispatchEvent(event);
await setTimeout(100);
assert.htmlEqual(
target.innerHTML,
`
<p>Name: jerry</p>
<p>Email: jerry@mail.com</p>
<p>Number: 777</p>
<button>Update me</button>
`
);
}
});

@ -1,22 +0,0 @@
<script>
let name = $state("tom");
let email = $state("tom@mail.com");
let number = $state(555);
const fetch_user = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve({ name: "jerry", contacts: [777, "jerry@mail.com"] })
}, 100)
})
}
const update = async () => {
({ name, contacts: [number, email] } = await fetch_user());
}
</script>
<p>Name: {name}</p>
<p>Email: {email}</p>
<p>Number: {number}</p>
<button on:click={update}>Update me</button>

@ -2,64 +2,74 @@ import { test } from '../../test';
export default test({
html: `
<button>Update me!</button>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
`,
<button>Update me!</button>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
<p>0</p>
`,
async test({ assert, target, window }) {
const btn = target.querySelector('button');
const clickEvent = new window.Event('click', { bubbles: true });
await btn?.dispatchEvent(clickEvent);
for (let i = 1; i <= 38; i += 1) {
for (let i = 1; i <= 42; i += 1) {
await Promise.resolve();
}
assert.htmlEqual(
target.innerHTML,
`
<button>Update me!</button>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
<p>10</p>
<p>11</p>
<p>12</p>
<p>13</p>
<p>14</p>
<p>15</p>
<p>16</p>
<p>17</p>
<p>18</p>
<p>19</p>
<p>20</p>
<p>21</p>
`
<button>Update me!</button>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
<p>10</p>
<p>11</p>
<p>12</p>
<p>13</p>
<p>14</p>
<p>15</p>
<p>16</p>
<p>17</p>
<p>18</p>
<p>19</p>
<p>20</p>
<p>21</p>
<p>22</p>
<p>23</p>
<p>24</p>
<p>25</p>
<p>26</p>
`
);
}
});

@ -20,6 +20,19 @@
let s = $state(0);
let t = $state(0);
let u = $state(0);
let v = $state(0);
let w = $state(0);
let x = $state(0);
let y = $state(0);
let z = $state(0);
const get_vwx = () => {
return Promise.resolve({ v: 22, rest: [23, 24] });
}
const get_y = () => {
return Promise.resolve([24, 25]);
}
const update = async () => {
[a, b] = [1, await Promise.resolve(2)];
@ -42,6 +55,8 @@
({ val1 = (async function (x) { return await x; })(Promise.resolve(18)), r = await val1 }
= ({ val2 = (async (x) => await x)(Promise.resolve(17)), q = await val2 } = []));
({ u = 21 } = ({ t = await Promise.resolve(20) } = ([s] = [await Promise.resolve(19)])));
({ v, rest: [w] } = await get_vwx());
[x, y, ...{ z = 26 }] = await get_y();
}
</script>
@ -66,4 +81,9 @@
<p>{r}</p>
<p>{s}</p>
<p>{t}</p>
<p>{u}</p>
<p>{u}</p>
<p>{v}</p>
<p>{w}</p>
<p>{x}</p>
<p>{y}</p>
<p>{z}</p>
Loading…
Cancel
Save