mirror of
https://github.com/youzan/vant.git
synced 2025-10-19 01:54:48 +00:00
[Improvement] Rebuild test system (#1051)
This commit is contained in:
34
test/demo-test.js
Normal file
34
test/demo-test.js
Normal file
@@ -0,0 +1,34 @@
|
||||
import { renderToString } from '@vue/server-test-utils';
|
||||
import '../docs/demos/common';
|
||||
import { Locale } from '../packages';
|
||||
import { camelize } from '../packages/utils';
|
||||
import Vue from 'vue';
|
||||
|
||||
const empty = {
|
||||
template: '<div><slot></slot></div>',
|
||||
inheritAttrs: false
|
||||
};
|
||||
Vue.component('demo-block', empty);
|
||||
Vue.component('demo-section', empty);
|
||||
|
||||
export default function(component) {
|
||||
const name = typeof component === 'string' ? component : component.name.replace('van-', '');
|
||||
|
||||
test(`renders ${name} correctly`, () => {
|
||||
const demo = require(`../docs/demos/views/${name}.vue`).default;
|
||||
const { i18n } = demo;
|
||||
demo.name = 'demo-' + name;
|
||||
|
||||
if (i18n) {
|
||||
const formattedI18n = {};
|
||||
const camelizedName = camelize(demo.name);
|
||||
Object.keys(i18n).forEach(key => {
|
||||
formattedI18n[key] = { [camelizedName]: i18n[key] };
|
||||
});
|
||||
Locale.add(formattedI18n);
|
||||
}
|
||||
|
||||
const wrapper = renderToString(demo);
|
||||
expect(wrapper).toMatchSnapshot();
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user