Skip to content
This repository was archived by the owner on Dec 12, 2020. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions cypress/integration/message-list-spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ describe('MessageList', () => {
})

it('shows messages', () => {
Cypress.vue.messages = ['one', 'two']
Cypress.$vue.setProps({messages: ['one', 'two']}) // using vue-test-utils

getItems().should('have.length', 2)
cy.then(() => {
Cypress.vue.messages.push('three')
Cypress.vue.messages.push('three') // using the prop directly
getItems().should('have.length', 3)
})
})
Expand Down
34 changes: 34 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import Vue, { ComponentOptions } from "vue";

declare global {
namespace Cypress {
import Vue from "vue";
import { Wrapper, VueClass } from '@vue/test-utils';

interface Cypress {
vue: Vue;
$vue: Wrapper<Vue>
}
}
}

interface Options {
mountId?: string;
html?: string;
base?: string;
extensions: {
components: {[name: string]: any};
filters: {[name: string]: any};
use: any[];
plugins: any[];
mixin: any[];
mixins: any[];
};
}

function mountVue<V extends Vue>(
component: Vue.VueConstructor,
optionsOrProps?: Options
): () => void;

export = mountVue;
144 changes: 136 additions & 8 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
},
"files": [
"src/*.js",
"index.d.ts",
"preprocessor/*.js",
"!src/*-spec.js"
],
Expand All @@ -39,6 +40,7 @@
],
"license": "MIT",
"main": "src/",
"types": "index.d.ts",
"private": false,
"publishConfig": {
"registry": "http://registry.npmjs.org/"
Expand Down Expand Up @@ -111,7 +113,7 @@
},
"dependencies": {
"@cypress/webpack-preprocessor": "2.0.1",
"common-tags": "1.8.0",
"@kazupon/vue-i18n-loader": "0.3.0"
"@kazupon/vue-i18n-loader": "0.3.0",
"common-tags": "1.8.0"
}
}
3 changes: 2 additions & 1 deletion src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

const Vue = require('vue/dist/vue')
const { stripIndent } = require('common-tags')
const { createWrapper } = require('@vue/test-utils')

// mountVue options
const defaultOptions = ['html', 'vue', 'base', 'mountId', 'extensions']
Expand Down Expand Up @@ -201,7 +202,6 @@ const mountVue = (component, optionsOrProps = {}) => () => {
installPlugins(Vue, options)
registerGlobalComponents(Vue, options)
deleteCachedConstructors(component)

// create root Vue component
// and make it accessible via Cypress.vue
if (isConstructor(component)) {
Expand All @@ -212,6 +212,7 @@ const mountVue = (component, optionsOrProps = {}) => () => {
Cypress.vue = new Vue(component).$mount(el)
copyStyles(component)
}
Cypress.$vue = createWrapper(Cypress.vue)

return cy
.window({ log: false })
Expand Down