I want to test my custom vue2 component which use third part library.
package.json
{
"@vue/test-utils": "^1",
"vite": "^2.9.13",
"vitest": "^0.18.1"
}
I added a setupFiles to initial the third part library
vite.config.js
export default {
test: {
setupFiles: [
'src/test/initial.js',
],
},
}
src/test/initial.js
import { afterAll, beforeAll } from 'vitest';
import Vue from 'vue';
import PortalVue from 'portal-vue';
beforeAll(() => {
Vue.use(PortalVue);
console.log('initial test vue');
});
I am sure the initial.js has been loaded since the initial test vue is printed on the terminal.
in my test file:
import { mount } from '@vue/test-utils';
import { describe, it, expect } from 'vitest';
import CustomDialog from '~/components/custom-dialog.vue';
const getCustomDialogWrapper = template => {
return mount({
data() {
return {
show: false,
};
},
components: {
CustomDialog,
},
template: `
<div>
<button
id="show-dialog-btn"
type="button"
@click="show = true">
show dialog
</button>
${template}
<portal-target
name="dialogs-container"/>
</div>
`
});
}
describe('custom-dialog.vue', () => {
it('basic dialog without any custom props or title', async () => {
const wrapper = getCustomDialogWrapper(`
<custom-dialog
v-model="show">
dialog content
</custom-dialog>
`);
});
});
the test file is copy from the old project which works in jest + webpack, how to load the third part library in vitest + vite?
Thanks a lot for anyone helps!