Page MenuHomePhabricator

Consider Not Copying ZWrapper When Validating
Closed, ResolvedPublic

Description

This copy ensures that resolution of nested types won't take place. It's not clear whether that's a virtuous quality for the system to have. It is possible that this copy could be avoided with clever management of resolved objects by the ZWrapper (or, better, by having tighter guarantees around validators and object resolution).

Event Timeline

Noting that by removing the clone, at head there would be only 3 tests failing, because they are expecting the result to be slightly less resolved:

1) orchestrate
       orchestrate msw: generic type validation error: bad list:

      AssertionError: generic type validation error: bad list returns the expected error, if any: expected { Z1K1: 'Z5', …(1) } to deeply equal { Z1K1: 'Z5', …(1) }
      + expected - actual

               }
               {
                 "Z1K1": "Z3"
                 "Z3K1": {
      -            "Z1K1": "Z7"
      -            "Z7K1": "Z881"
      -            "Z881K1": "Z6"
      +            "Z1K1": "Z4"
      +            "Z4K1": {
      +              "Z1K1": "Z7"
      +              "Z7K1": "Z881"
      +              "Z881K1": "Z6"
      +            }
      +            "Z4K2": [
      +              "Z3"
      +              {
      +                "Z1K1": "Z3"
      +                "Z3K1": "Z6"
      +                "Z3K2": "K1"
      +                "Z3K3": {
      +                  "Z12K1": [
      +                    "Z11"
      +                    {
      +                      "Z11K1": "Z1002"
      +                      "Z11K2": "head"
      +                      "Z1K1": "Z11"
      +                    }
      +                  ]
      +                  "Z1K1": "Z12"
      +                }
      +              }
      +              {
      +                "Z1K1": "Z3"
      +                "Z3K1": {
      +                  "Z1K1": "Z7"
      +                  "Z7K1": "Z881"
      +                  "Z881K1": "Z6"
      +                }
      +                "Z3K2": "K2"
      +                "Z3K3": {
      +                  "Z12K1": [
      +                    "Z11"
      +                    {
      +                      "Z11K1": "Z1002"
      +                      "Z11K2": "tail"
      +                      "Z1K1": "Z11"
      +                    }
      +                  ]
      +                  "Z1K1": "Z12"
      +                }
      +              }
      +            ]
      +            "Z4K3": "Z831"
                 }
                 "Z3K2": "K2"
                 "Z3K3": {
                   "Z12K1": [
      
      at Context.<anonymous> (test/features/v1/mswOrchestrateTest.js:138:11)

  2) orchestrate
       orchestrate msw: good user-defined type:

      good user-defined type returns the expected output, if any
      + expected - actual

           "Z4K2": [
             "Z3"
             {
               "Z1K1": "Z3"
      -        "Z3K1": "Z88402"
      +        "Z3K1": {
      +          "Z1K1": "Z4"
      +          "Z4K1": "Z88402"
      +          "Z4K2": [
      +            "Z3"
      +            {
      +              "Z1K1": "Z3"
      +              "Z3K1": "Z6"
      +              "Z3K2": "Z88402K1"
      +              "Z3K3": {
      +                "Z12K1": [
      +                  "Z11"
      +                ]
      +                "Z1K1": "Z12"
      +              }
      +            }
      +          ]
      +          "Z4K3": "Z831"
      +        }
               "Z3K2": "Z88401K1"
               "Z3K3": {
                 "Z12K1": [
                   "Z11"
      
      at Context.<anonymous> (test/features/v1/mswOrchestrateTest.js:137:11)

  3) orchestrate
       orchestrate msw: bad user-defined type:

      bad user-defined type returns the expected error, if any
      + expected - actual

             "Z4K2": [
               "Z3"
               {
                 "Z1K1": "Z3"
      -          "Z3K1": "Z88402"
      +          "Z3K1": {
      +            "Z1K1": "Z4"
      +            "Z4K1": "Z88402"
      +            "Z4K2": [
      +              "Z3"
      +              {
      +                "Z1K1": "Z3"
      +                "Z3K1": "Z6"
      +                "Z3K2": "Z88402K1"
      +                "Z3K3": {
      +                  "Z12K1": [
      +                    "Z11"
      +                  ]
      +                  "Z1K1": "Z12"
      +                }
      +              }
      +            ]
      +            "Z4K3": "Z831"
      +          }
                 "Z3K2": "Z88401K1"
                 "Z3K3": {
                   "Z12K1": [
                     "Z11"
--
               "Z4K2": [
                 "Z3"
                 {
                   "Z1K1": "Z3"
      -            "Z3K1": "Z88402"
      +            "Z3K1": {
      +              "Z1K1": "Z4"
      +              "Z4K1": "Z88402"
      +              "Z4K2": [
      +                "Z3"
      +                {
      +                  "Z1K1": "Z3"
      +                  "Z3K1": "Z6"
      +                  "Z3K2": "Z88402K1"
      +                  "Z3K3": {
      +                    "Z12K1": [
      +                      "Z11"
      +                    ]
      +                    "Z1K1": "Z12"
      +                  }
      +                }
      +              ]
      +              "Z4K3": "Z831"
      +            }
                   "Z3K2": "Z88401K1"
                   "Z3K3": {
                     "Z12K1": [
                       "Z11"
      
      at Context.<anonymous> (test/features/v1/mswOrchestrateTest.js:138:11)
Jdforrester-WMF triaged this task as Medium priority.
DSantamaria changed the task status from Open to In Progress.Mar 25 2025, 4:12 PM