use devalue instead of serialize-javascript - fixes #112

This commit is contained in:
Rich Harris
2018-03-10 19:27:04 -05:00
parent fb24c862f3
commit 45b1147228
5 changed files with 55 additions and 3 deletions

View File

@@ -0,0 +1,17 @@
<h1>{{foo.bar()}}</h1>
<script>
export default {
preload() {
class Foo {
bar() {
return 42;
}
}
return {
foo: new Foo()
};
}
};
</script>

View File

@@ -0,0 +1,11 @@
<h1>{{set.has('x')}}</h1>
<script>
export default {
preload() {
return {
set: new Set(['x'])
};
}
};
</script>

View File

@@ -487,6 +487,30 @@ function run(env) {
assert.equal(title, `I'm afraid I just blue myself`);
});
});
it('serializes Set objects returned from preload', () => {
return nightmare.goto(`${base}/preload-values/set`)
.page.title()
.then(title => {
assert.equal(title, 'true');
return nightmare.init().page.title();
})
.then(title => {
assert.equal(title, 'true');
});
});
it('bails on custom classes returned from preload', () => {
return nightmare.goto(`${base}/preload-values/custom-class`)
.page.title()
.then(title => {
assert.equal(title, '42');
return nightmare.init().page.title();
})
.then(title => {
assert.equal(title, '42');
});
});
});
describe('headers', () => {