You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte/test/runtime/samples/component-binding-deep-b/_config.js

85 lines
2.2 KiB

const components = [
{
name: 'One',
source: 'one source'
},
{
name: 'Two',
source: 'two source'
}
];
const selectedComponent = components[0];
export default {
skip: true, // doesn't reflect real-world bug, maybe a JSDOM quirk
data: {
components,
selectedComponent
},
html: `
<select>
<option value='[object Object]'>One.html</option>
<option value='[object Object]'>Two.html</option>
</select>
<textarea></textarea>
<pre>ONE SOURCE\nTWO SOURCE</pre>
`,
test ( assert, component, target, window ) {
const event = new window.MouseEvent( 'input' );
const textarea = target.querySelector( 'textarea' );
textarea.value = 'one source changed';
textarea.dispatchEvent( event );
assert.equal( component.get().compiled, 'ONE SOURCE CHANGED\nTWO SOURCE' );
assert.htmlEqual( target.innerHTML, `
<select>
<option value='[object Object]'>One.html</option>
<option value='[object Object]'>Two.html</option>
</select>
<textarea></textarea>
<pre>ONE SOURCE CHANGED\nTWO SOURCE</pre>
` );
// const select = target.querySelector( 'select' );
// console.log( `select.options[0].selected`, select.options[0].selected )
// console.log( `select.options[1].selected`, select.options[1].selected )
// console.log( `select.value`, select.value )
// console.log( `select.__value`, select.__value )
// select.options[1].selected = true;
// console.log( `select.options[0].selected`, select.options[0].selected )
// console.log( `select.options[1].selected`, select.options[1].selected )
// console.log( `select.value`, select.value )
// console.log( `select.__value`, select.__value )
// select.dispatchEvent( new window.Event( 'change' ) );
component.set({ selectedComponent: components[1] });
assert.equal( textarea.value, 'two source' );
textarea.value = 'two source changed';
textarea.dispatchEvent( event );
assert.equal( component.get().compiled, 'ONE SOURCE CHANGED\nTWO SOURCE CHANGED' );
assert.htmlEqual( target.innerHTML, `
<select>
<option value='[object Object]'>One.html</option>
<option value='[object Object]'>Two.html</option>
</select>
<textarea></textarea>
<pre>ONE SOURCE CHANGED\nTWO SOURCE CHANGED</pre>
` );
component.destroy();
}
};