add SSR tests

pull/148/head
Rich Harris 8 years ago
parent e5b9ca3638
commit 2c3cbf672b

@ -0,0 +1 @@
<textarea readonly></textarea>

@ -0,0 +1 @@
<textarea readonly></textarea>

@ -0,0 +1 @@
<div style="font-family: sans-serif; color: aquamarine;">aquamarine sans-serif</div>

@ -0,0 +1 @@
<div style='font-family: sans-serif; color: aquamarine;'>aquamarine sans-serif</div>

@ -0,0 +1,4 @@
{
"font": "sans-serif",
"color": "aquamarine"
}

@ -0,0 +1 @@
<div style='font-family: {{font}}; color: {{color}};'>{{color}} {{font}}</div>

@ -0,0 +1 @@
<div class='foo'></div>

@ -0,0 +1 @@
<div class='foo'></div>

@ -0,0 +1,4 @@
<p>foo: {{foo}}</p>
<p>baz: {{baz}} ({{typeof baz}})</p>
<p>qux: {{qux}}</p>
<p>quux: {{quux}}</p>

@ -0,0 +1,4 @@
<div><p>foo: lol</p>
<p>baz: 42 (number)</p>
<p>qux: this is a piece of string</p>
<p>quux: core</p></div>

@ -0,0 +1,4 @@
<div><p>foo: lol</p>
<p>baz: 42 (number)</p>
<p>qux: this is a piece of string</p>
<p>quux: core</p></div>

@ -0,0 +1,6 @@
{
"bar": "lol",
"x": 2,
"compound": "piece of",
"go": { "deeper": "core" }
}

@ -0,0 +1,11 @@
<div>
<Widget foo='{{bar}}' baz='{{40 + x}}' qux='this is a {{compound}} string' quux='{{go.deeper}}'/>
</div>
<script>
import Widget from './Widget.html';
export default {
components: { Widget }
};
</script>

@ -0,0 +1 @@
<div><p>foo: ''</p></div>

@ -0,0 +1,11 @@
<div>
<Widget foo=''/>
</div>
<script>
import Widget from './Widget.html';
export default {
components: { Widget }
};
</script>

@ -0,0 +1,2 @@
<p>foo: {{foo}}</p>
<p>baz: {{baz}} ({{typeof baz}})</p>

@ -0,0 +1,2 @@
<div><p>foo: bar</p>
<p>baz: 42 (number)</p></div>

@ -0,0 +1,2 @@
<div><p>foo: bar</p>
<p>baz: 42 (number)</p></div>

@ -0,0 +1,11 @@
<div>
<Widget foo='bar' baz='42'/>
</div>
<script>
import Widget from './Widget.html';
export default {
components: { Widget }
};
</script>

@ -0,0 +1,11 @@
<p>{{yield}}</p>
<script>
export default {
data () {
return {
data: 'this should not appear'
};
}
};
</script>

@ -0,0 +1 @@
<div><p>Hello</p></div>

@ -0,0 +1 @@
<div><p>Hello</p></div>

@ -0,0 +1,17 @@
<div>
<Widget>{{data}}</Widget>
</div>
<script>
import Widget from './Widget.html';
export default {
components: { Widget },
data () {
return {
data: 'Hello'
};
}
};
</script>

@ -0,0 +1 @@
<p>i am a widget</p>

@ -0,0 +1 @@
<div><p>i am a widget</p></div>

@ -0,0 +1 @@
<div><p>i am a widget</p></div>

@ -0,0 +1,11 @@
<div>
<Widget/>
</div>
<script>
import Widget from './Widget.html';
export default {
components: { Widget }
};
</script>

@ -0,0 +1,2 @@
<p>1 + 2 = 3</p>
<p>3 * 3 = 9</p>

@ -0,0 +1,2 @@
<p>1 + 2 = 3</p>
<p>3 * 3 = 9</p>

@ -0,0 +1,4 @@
{
"a": 1,
"b": 2
}

@ -0,0 +1,11 @@
<p>{{a}} + {{b}} = {{c}}</p>
<p>{{c}} * {{c}} = {{cSquared}}</p>
<script>
export default {
computed: {
c: ( a, b ) => a + b,
cSquared: c => c * c
}
};
</script>

@ -0,0 +1,11 @@
<p>{{foo}}</p>
<script>
export default {
data () {
return {
foo: 1
}
}
};
</script>

@ -0,0 +1,11 @@
<p>{{foo}}</p>
<script>
export default {
data () {
return {
foo: 1
}
}
};
</script>

@ -0,0 +1,3 @@
{
"foo": "it works"
}

@ -0,0 +1 @@
<p>1: alligator</p><p>2: beetle</p><p>3: cuckoo</p>

@ -0,0 +1 @@
<p>1: alligator</p><p>2: beetle</p><p>3: cuckoo</p>

@ -0,0 +1,7 @@
{
"animals": [
"alligator",
"beetle",
"cuckoo"
]
}

@ -0,0 +1,3 @@
{{#each animals as animal, i}}
<p>{{i + 1}}: {{animal}}</p>
{{/each}}

@ -0,0 +1,15 @@
<p>{{thrice(foo)}}</p>
<script>
export default {
data () {
return {
foo: 1
}
},
helpers: {
thrice: num => 3 * num
}
};
</script>

@ -0,0 +1,3 @@
{
"foo": false
}

@ -0,0 +1,3 @@
{{#if foo}}
<p>foo is true</p>
{{/if}}

@ -0,0 +1,3 @@
{{#if foo}}
<p>foo is true</p>
{{/if}}

@ -62,6 +62,15 @@ function addLineNumbers ( code ) {
}).join( '\n' );
}
function tryToLoadJson ( file ) {
try {
return JSON.parse( fs.readFileSync( file ) );
} catch ( err ) {
if ( err.code !== 'ENOENT' ) throw err;
return null;
}
}
describe( 'svelte', () => {
before( () => {
function cleanChildren ( node ) {
@ -154,15 +163,6 @@ describe( 'svelte', () => {
});
describe( 'validate', () => {
function tryToLoadJson ( file ) {
try {
return JSON.parse( fs.readFileSync( file ) );
} catch ( err ) {
if ( err.code !== 'ENOENT' ) throw err;
return null;
}
}
fs.readdirSync( 'test/validator' ).forEach( dir => {
if ( dir[0] === '.' ) return;
@ -505,4 +505,29 @@ describe( 'svelte', () => {
});
});
});
describe( 'ssr', () => {
before( () => {
require( '../ssr/register' );
});
fs.readdirSync( 'test/ssr' ).forEach( dir => {
if ( dir[0] === '.' ) return;
const solo = exists( `test/ssr/${dir}/solo` );
( solo ? it.only : it )( dir, () => {
const component = require( `./ssr/${dir}/main.html` );
const expected = fs.readFileSync( `test/ssr/${dir}/_expected.html`, 'utf-8' );
const data = tryToLoadJson( `test/ssr/${dir}/data.json` );
const actual = component.render( data );
fs.writeFileSync( `test/ssr/${dir}/_actual.html`, actual );
assert.htmlEqual( actual, expected );
});
});
});
});

Loading…
Cancel
Save