improve testcases

pull/6898/head
tanhauhau 4 years ago
parent 1e86df520a
commit f4a8e799ff

@ -1,27 +1,47 @@
let logs = [];
export default {
html: `
<h1>tag is h1.</h1>
`,
props: {
logs
},
before_test() {
logs = [];
},
async test({ assert, component, target }) {
assert.equal(component.tag, 'h1');
assert.equal(component.updateText, '');
assert.equal(component.destroyText, '');
assert.deepEqual(logs, ['create: h1,opt2']);
component.opt = 'opt2';
assert.equal(component.tag, 'h1');
assert.equal(component.updateText, 'update: h1,opt2');
assert.equal(component.destroyText, '');
assert.deepEqual(logs, ['create: h1,opt2', 'update: h1,opt2']);
component.tag = 'h2';
assert.equal(component.tag, 'h2');
assert.equal(component.updateText, 'update: h1,opt2');
assert.equal(component.destroyText, 'destroy');
assert.htmlEqual(target.innerHTML, `
<h2>tag is h2.</h2>
`);
assert.deepEqual(logs, [
'create: h1,opt2',
'update: h1,opt2',
'destroy',
'create: h2,opt2'
]);
assert.htmlEqual(target.innerHTML, '<h2>tag is h2.</h2>');
component.tag = false;
assert.deepEqual(logs, [
'create: h1,opt2',
'update: h1,opt2',
'destroy',
'create: h2,opt2',
'destroy'
]);
assert.htmlEqual(target.innerHTML, '');
}
};

@ -1,12 +1,12 @@
<script>
export let updateText = "";
export let destroyText = "";
export let logs = [];
export let tag = "h1";
export let opt = "opt1";
function foo(node, {tag, opt}) {
logs.push(`create: ${tag},${opt}`);
return {
update: ({tag, opt}) => updateText = `update: ${tag},${opt}`,
destroy: () => destroyText = 'destroy'
update: ({tag, opt}) => logs.push(`update: ${tag},${opt}`),
destroy: () => logs.push('destroy'),
};
}
</script>

@ -1,3 +1,20 @@
export default {
html: ''
solo: true,
html: '',
test({ component, target, assert }) {
component.tag = 'h1';
assert.htmlEqual(target.innerHTML, '<h1>Foo</h1>');
component.tag = null;
assert.htmlEqual(target.innerHTML, '');
component.tag = 'div';
assert.htmlEqual(target.innerHTML, '<div>Foo</div>');
component.tag = false;
assert.htmlEqual(target.innerHTML, '');
component.tag = 'span';
assert.htmlEqual(target.innerHTML, '<span>Foo</span>');
}
};

@ -1,5 +1,5 @@
<script>
let tag;
export let tag;
</script>
<svelte:element this={tag}>Foo</svelte:element>

Loading…
Cancel
Save