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

Add tests for LayoutableChildren iterator #47210

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Commits on Oct 25, 2024

  1. Add tests for LayoutableChildren iterator

    Summary:
    Adds unit tests that directly cover the order in which `LayoutableChildren` iterator goes over the descendant nodes. The covered cases are as follows (nodes with `display: contents` are marked green):
    
    ### Single `display: contents` node
    
    ```mermaid
    flowchart TD
    R((R)) --> A((A))
    R --> B((B))
    R --> C((C))
    
    B --> D((D))
    B --> E((E))
    
    style B fill:facebook/yoga#90
    ```
    
    Correct order: `A, D, E, C`
    
    ### Multiple `display: contents` nodes
    
    ```mermaid
    flowchart TD
    R((R)) --> A((A))
    R --> B((B))
    R --> C((C))
    
    A --> D((D))
    A --> E((E))
    
    B --> F((F))
    B --> G((G))
    
    C --> H((H))
    C --> I((I))
    
    style A fill:facebook/yoga#90
    style B fill:facebook/yoga#90
    style C fill:facebook/yoga#90
    ```
    
    Correct order: `D, E, F, G, H, I`
    
    ### Nested `display: contents` nodes
    
    ```mermaid
    flowchart TD
    R((R)) --> A((A))
    R --> B((B))
    R --> C((C))
    
    B --> D((D))
    B --> E((E))
    
    E --> F((F))
    E --> G((G))
    
    style B fill:facebook/yoga#90
    style E fill:facebook/yoga#90
    ```
    
    Correct order: `A, D, F, G, C`
    
    ### Leaf `display: contents` node
    
    ```mermaid
    flowchart TD
    R((R)) --> A((A))
    R --> B((B))
    R --> C((C))
    
    style B fill:facebook/yoga#90
    ```
    
    Correct order: `A, C`
    
    ### Root `display: contents` node
    
    ```mermaid
    flowchart TD
    R((R)) --> A((A))
    R --> B((B))
    R --> C((C))
    
    style R fill:facebook/yoga#90
    ```
    
    Correct order: `A, B, C` - `LayoutableChildren` goes over the children with `display: contents` property, setting it on the root node should have no effect.
    
    X-link: facebook/yoga#1731
    
    Differential Revision: D64981779
    
    Pulled By: NickGerleman
    j-piasecki authored and facebook-github-bot committed Oct 25, 2024
    Configuration menu
    Copy the full SHA
    95cfa6a View commit details
    Browse the repository at this point in the history