expect(`Missing required prop: "num"`).toHaveBeenWarned()
})
+ // #3495
+ test('should not warn required props using kebab-case', async () => {
+ const Comp = {
+ props: {
+ fooBar: { type: String, required: true }
+ },
+ setup() {
+ return () => null
+ }
+ }
+ render(
+ h(Comp, {
+ 'foo-bar': 'hello'
+ }),
+ nodeOps.createElement('div')
+ )
+ expect(`Missing required prop: "fooBar"`).not.toHaveBeenWarned()
+ })
+
test('merging props from mixins and extends', () => {
let setupProps: any
let renderProxy: any
for (const key in options) {
let opt = options[key]
if (opt == null) continue
- validateProp(key, resolvedValues[key], opt, !hasOwn(rawProps, key))
+ validateProp(
+ key,
+ resolvedValues[key],
+ opt,
+ !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))
+ )
}
}