Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: allow custom <transition> stubs #2185

Merged
merged 1 commit into from Sep 19, 2023

Commits on Sep 19, 2023

  1. feat: allow custom <transition> stubs

    At the moment, `@vue/test-utils` doesn't allow custom `<transition>`
    stubs. For example, setting:
    
    ```js
    config.stubs.transition = {template: '<div />'};
    ```
    
    ...will still just render the default `@vue/test-utils` stub:
    
    ```html
    <transition-stub appear="false" persisted="false" css="true">
    ```
    
    The motivation for this change is that if you're using the `@vue/compat`
    migration build, these default stubs throw up the following warning:
    
    ```
    Error: (deprecation ATTR_FALSE_VALUE) Attribute "persisted" with v-bind value `false` will render persisted="false" instead of removing it in Vue 3. To remove the attribute, use `null` or `undefined` instead. If the usage is intended, you can disable the compat behavior and suppress this warning with:
    
          configureCompat({ ATTR_FALSE_VALUE: false })
    
          Details: https://v3-migration.vuejs.org/breaking-changes/attribute-coercion.html
          at <Transition>
    ```
    
    Since `persisted` isn't actually a [boolean HTML attribute][1], and is
    actually a [prop][2], we want to ignore this false positive, but don't
    want to disable this warning everywhere (so we can catch *actual*
    errors).
    
    In order to clean up our test warnings, we would like to use a custom
    `<transition>` stub, which doesn't have these props. This change tweaks
    the `transition` stubbing logic, and only creates the default stub if
    `transition === true`. If it's any other truthy value, it falls back to
    "normal" stubbing behaviour.
    
    [1]: https://html.spec.whatwg.org/multipage/indices.html#attributes-3
    [2]: https://github.com/vuejs/core/blob/b775b71c788499ec7ee58bc2cf4cd04ed388e072/packages/runtime-core/src/components/BaseTransition.ts#L37
    alecgibson committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    313fd2d View commit details
    Browse the repository at this point in the history