Skip to content

Commit f02b60d

Browse files
committed
test: fix tests
1 parent cf05a02 commit f02b60d

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

packages/reactivity/__tests__/ref.spec.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,6 @@ describe('reactivity/ref', () => {
196196
test('unref', () => {
197197
expect(unref(1)).toBe(1)
198198
expect(unref(ref(1))).toBe(1)
199-
expect(unref(() => 1)).toBe(1)
200199
})
201200

202201
test('shallowRef', () => {

packages/reactivity/src/ref.ts

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import {
1111
hasChanged,
1212
IfAny,
1313
isFunction,
14-
isPlainObject
14+
isString,
15+
isObject
1516
} from '@vue/shared'
1617
import {
1718
isProxy,
@@ -219,7 +220,7 @@ export function toRefs<T extends object>(object: T): ToRefs<T> {
219220
}
220221
const ret: any = isArray(object) ? new Array(object.length) : {}
221222
for (const key in object) {
222-
ret[key] = toRef(object, key)
223+
ret[key] = propertyToRef(object, key)
223224
}
224225
return ret
225226
}
@@ -285,20 +286,24 @@ export function toRef(
285286
return source
286287
} else if (isFunction(source)) {
287288
return new GetterRefImpl(source as () => unknown) as any
288-
} else if (isPlainObject(source) && key) {
289-
const val = (source as Record<string, any>)[key]
290-
return isRef(val)
291-
? val
292-
: (new ObjectRefImpl(
293-
source as Record<string, any>,
294-
key,
295-
defaultValue
296-
) as any)
289+
} else if (isObject(source) && isString(key)) {
290+
return propertyToRef(source, key, defaultValue)
297291
} else {
298292
return ref(source)
299293
}
300294
}
301295

296+
function propertyToRef(source: object, key: string, defaultValue?: unknown) {
297+
const val = (source as any)[key]
298+
return isRef(val)
299+
? val
300+
: (new ObjectRefImpl(
301+
source as Record<string, any>,
302+
key,
303+
defaultValue
304+
) as any)
305+
}
306+
302307
// corner case when use narrows type
303308
// Ex. type RelativePath = string & { __brand: unknown }
304309
// RelativePath extends object -> true

0 commit comments

Comments
 (0)