Skip to content

Commit

Permalink
refactor: remove sync mode (#1141)
Browse files Browse the repository at this point in the history
BREAKING CHANGE:

* Remove `sync` mode
* Remove TransitionStub
* Remove Transition
  • Loading branch information
eddyerburgh committed Feb 9, 2019
1 parent 36adbf3 commit ef613de
Show file tree
Hide file tree
Showing 41 changed files with 138 additions and 814 deletions.
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -36,7 +36,7 @@
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-vue-jsx": "^3.7.0",
"babel-polyfill": "^6.23.0",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.6.0",
"babel-preset-flow-vue": "^1.0.0",
"babel-preset-stage-2": "^6.24.1",
Expand Down
1 change: 0 additions & 1 deletion packages/create-instance/extract-instance-options.js
Expand Up @@ -11,7 +11,6 @@ const MOUNTING_OPTIONS = [
'attrs',
'listeners',
'propsData',
'sync',
'shouldProxy'
]

Expand Down
1 change: 0 additions & 1 deletion packages/server-test-utils/types/index.d.ts
Expand Up @@ -36,7 +36,6 @@ interface MountOptions<V extends Vue> extends ComponentOptions<V> {
stubs?: Stubs,
attrs?: Record<string, string>
listeners?: Record<string, Function | Function[]>
sync?: boolean
}

type ThisTypedMountOptions<V extends Vue> = MountOptions<V> & ThisType<V>
Expand Down
3 changes: 1 addition & 2 deletions packages/server-test-utils/types/test/renderToString.ts
Expand Up @@ -12,8 +12,7 @@ render(
attachToDocument: true,
scopedSlots: {
foo: `<div>Foo</div>`
},
sync: false
}
}
)

Expand Down
1 change: 0 additions & 1 deletion packages/shared/consts.js
Expand Up @@ -6,7 +6,6 @@ export const COMPONENT_SELECTOR = 'COMPONENT_SELECTOR'
export const REF_SELECTOR = 'REF_SELECTOR'
export const DOM_SELECTOR = 'DOM_SELECTOR'
export const INVALID_SELECTOR = 'INVALID_SELECTOR'
export const COMPAT_SYNC_MODE = 'COMPAT_SYNC_MODE'

export const VUE_VERSION = Number(
`${Vue.version.split('.')[0]}.${Vue.version.split('.')[1]}`
Expand Down
3 changes: 1 addition & 2 deletions packages/shared/merge-options.js
Expand Up @@ -41,7 +41,6 @@ export function mergeOptions(
provide: normalizeProvide(provide),
stubs,
mocks,
methods,
sync: !!(options.sync || options.sync === undefined)
methods
}
}
10 changes: 0 additions & 10 deletions packages/test-utils/src/components/TransitionGroupStub.js

This file was deleted.

147 changes: 0 additions & 147 deletions packages/test-utils/src/components/TransitionStub.js

This file was deleted.

7 changes: 0 additions & 7 deletions packages/test-utils/src/error-wrapper.js
Expand Up @@ -249,13 +249,6 @@ export default class ErrorWrapper implements BaseWrapper {
)
}

update(): void {
throwError(
`update has been removed from vue-test-utils.` +
`All updates are now synchronous by default`
)
}

destroy(): void {
throwError(
`find did not return ${
Expand Down
4 changes: 0 additions & 4 deletions packages/test-utils/src/index.js
@@ -1,8 +1,6 @@
import shallowMount from './shallow-mount'
import mount from './mount'
import createLocalVue from './create-local-vue'
import TransitionStub from './components/TransitionStub'
import TransitionGroupStub from './components/TransitionGroupStub'
import RouterLinkStub from './components/RouterLinkStub'
import createWrapper from './create-wrapper'
import Wrapper from './wrapper'
Expand All @@ -25,8 +23,6 @@ export default {
mount,
shallow,
shallowMount,
TransitionStub,
TransitionGroupStub,
RouterLinkStub,
Wrapper,
WrapperArray
Expand Down
63 changes: 1 addition & 62 deletions packages/test-utils/src/mount.js
Expand Up @@ -7,63 +7,11 @@ import config from './config'
import warnIfNoWindow from './warn-if-no-window'
import createWrapper from './create-wrapper'
import createLocalVue from './create-local-vue'
import { warn } from 'shared/util'
import semver from 'semver'
import { COMPAT_SYNC_MODE } from 'shared/consts'
import { validateOptions } from 'shared/validate-options'
import TransitionGroupStub from './components/TransitionGroupStub'
import TransitionStub from './components/TransitionStub'

Vue.config.productionTip = false
Vue.config.devtools = false

function getSyncOption(syncOption) {
if (syncOption === false) {
Vue.config.async = true
return false
}
if (semver.lt(Vue.version, '2.5.18')) {
warn(
`Vue Test Utils runs in sync mode by default. Due to bugs, sync mode ` +
`requires Vue > 2.5.18. In Vue Test Utils 1.0 sync mode will only be ` +
`supported with Vue 2.5.18+ running in development mode. If you are ` +
`unable to upgrade, you should rewrite your tests to run asynchronously` +
`you can do this by setting the sync mounting option to false.`
)
return COMPAT_SYNC_MODE
}

if (typeof Vue.config.async === 'undefined') {
warn(
`Sync mode only works when Vue runs in dev mode. ` +
`Please set Vue to run in dev mode, or set sync to false`
)
}

Vue.config.async = false
return true
}

function addTransitionStubs(options) {
if (config.stubs === false) {
return
}
if (
options.stubs &&
options.stubs.transition !== false &&
!options.stubs.transition
) {
options.stubs.transition = TransitionStub
}
if (
options.stubs &&
options.stubs['transition-group'] !== false &&
!options.stubs['transition-group']
) {
options.stubs['transition-group'] = TransitionGroupStub
}
}

export default function mount(component, options = {}) {
warnIfNoWindow()

Expand All @@ -72,17 +20,9 @@ export default function mount(component, options = {}) {
const _Vue = createLocalVue(options.localVue)

const mergedOptions = mergeOptions(options, config)
const sync = getSyncOption(mergedOptions.sync)

validateOptions(mergedOptions, component)

// Stub transition and transition-group if in compat sync mode to keep old
// behavior
// TODO: Remove when compat sync mode is removed
if (sync === COMPAT_SYNC_MODE) {
addTransitionStubs(mergedOptions)
}

const parentVm = createInstance(component, mergedOptions, _Vue)

const el = options.attachToDocument ? createElement() : undefined
Expand All @@ -93,8 +33,7 @@ export default function mount(component, options = {}) {
throwIfInstancesThrew(vm)

const wrapperOptions = {
attachedToDocument: !!mergedOptions.attachToDocument,
sync
attachedToDocument: !!mergedOptions.attachToDocument
}

const root = parentVm.$options._isFunctionalContainer
Expand Down
35 changes: 0 additions & 35 deletions packages/test-utils/src/order-watchers.js

This file was deleted.

0 comments on commit ef613de

Please sign in to comment.