test: fix script setup helpers tests

This commit is contained in:
Evan You
2021-06-23 10:31:32 -04:00
parent 075889ebfc
commit ac853ff4ab
3 changed files with 39 additions and 20 deletions

View File

@@ -71,6 +71,10 @@ export function useContext(): SetupContext {
`next minor release. Use \`useSlots()\` and \`useAttrs()\` instead.`
)
}
return getContext()
}
function getContext(): SetupContext {
const i = getCurrentInstance()!
if (__DEV__ && !i) {
warn(`useContext() called without active instance.`)
@@ -79,9 +83,9 @@ export function useContext(): SetupContext {
}
export function useSlots(): SetupContext['slots'] {
return useContext().slots
return getContext().slots
}
export function useAttrs(): SetupContext['attrs'] {
return useContext().attrs
return getContext().attrs
}

View File

@@ -841,11 +841,14 @@ export function createSetupContext(
}
if (__DEV__) {
let attrs: Data
// We use getters in dev in case libs like test-utils overwrite instance
// properties (overwrites should not be done in prod)
return Object.freeze({
get attrs() {
return new Proxy(instance.attrs, attrDevProxyHandlers)
return (
attrs || (attrs = new Proxy(instance.attrs, attrDevProxyHandlers))
)
},
get slots() {
return shallowReadonly(instance.slots)