|
|
|
|
@ -1,36 +1,41 @@
|
|
|
|
|
import { flushSync } from 'svelte';
|
|
|
|
|
import { test } from '../../test';
|
|
|
|
|
import { log } from './log.js';
|
|
|
|
|
|
|
|
|
|
export default test({
|
|
|
|
|
// The component context class instance gets shared between tests, strangely, causing hydration to fail?
|
|
|
|
|
skip_if_hydrate: 'permanent',
|
|
|
|
|
|
|
|
|
|
async test({ assert, target, component }) {
|
|
|
|
|
before_test() {
|
|
|
|
|
log.length = 0;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
async test({ assert, target }) {
|
|
|
|
|
const btn = target.querySelector('button');
|
|
|
|
|
|
|
|
|
|
flushSync(() => {
|
|
|
|
|
btn?.click();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assert.deepEqual(component.log, [0, 'class trigger false', 'local trigger false', 1]);
|
|
|
|
|
assert.deepEqual(log, [0, 'class trigger false', 'local trigger false', 1]);
|
|
|
|
|
|
|
|
|
|
flushSync(() => {
|
|
|
|
|
btn?.click();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assert.deepEqual(component.log, [0, 'class trigger false', 'local trigger false', 1, 2]);
|
|
|
|
|
assert.deepEqual(log, [0, 'class trigger false', 'local trigger false', 1, 2]);
|
|
|
|
|
|
|
|
|
|
flushSync(() => {
|
|
|
|
|
btn?.click();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assert.deepEqual(component.log, [0, 'class trigger false', 'local trigger false', 1, 2, 3]);
|
|
|
|
|
assert.deepEqual(log, [0, 'class trigger false', 'local trigger false', 1, 2, 3]);
|
|
|
|
|
|
|
|
|
|
flushSync(() => {
|
|
|
|
|
btn?.click();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
assert.deepEqual(component.log, [
|
|
|
|
|
assert.deepEqual(log, [
|
|
|
|
|
0,
|
|
|
|
|
'class trigger false',
|
|
|
|
|
'local trigger false',
|
|
|
|
|
|