{"abstract":"Pending other workspaces.","category":"Client state","checks":60,"contract":"Workspace switches preserve each workspace draft, detach only outgoing subscriptions and requests, retain unrelated workspace work, rewrite only the old route prefix, and keep the old workspace if access is not allowed. Operation pending-other-workspaces has the six explicit input/output oracles below.","evaluation_group":"s3-client-state-workspace-switch","failed_approach":"The partial repair `[(w,k) for w,k in pending if w==new]` still violates the explicit fixture contract.","family":"s3-client-state-workspace-switch-pending-other-workspaces","id":"FA-24091","implementations":{"attempt":{"sha256":"bb5f1562573686a1627215489536bdb40817d6e739727903f9aaaef4f93b8d85","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    old, new, drafts, resources, pending, location, allowed = s\n    if operation == 'workspace-draft-selection':\n        return drafts.get(new)\n    if operation == 'outgoing-resource-detach':\n        return [(w,k) for w,k in resources if w!=old]\n    if operation == 'outgoing-request-cancel':\n        return [k for w,k in pending if w==old]\n    if operation == 'switch-authorization':\n        return new in allowed\n    if operation == 'draft-preservation-on-switch':\n        return dict(drafts)\n    if operation == 'workspace-route-rewrite':\n        return '/'+new+location[len('/'+old):] if location=='/'+old or location.startswith('/'+old+'/') else location\n    if operation == 'same-workspace-no-switch':\n        return old!=new\n    if operation == 'resource-scope-key':\n        return [(new,k) for w,k in resources if w==new]\n    if operation == 'forbidden-switch-retains-owner':\n        return new if new in allowed else old\n    if operation == 'pending-other-workspaces':\n        return [(w,k) for w,k in pending if w==new]\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('workspace-draft-selection scenario 1', solve('workspace-draft-selection', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), 2)\ncheck('workspace-draft-selection scenario 2', solve('workspace-draft-selection', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 0)\ncheck('workspace-draft-selection scenario 3', solve('workspace-draft-selection', ('a','c',{},[],[('a','p')],'/a/doc',[])), None)\ncheck('workspace-draft-selection scenario 4', solve('workspace-draft-selection', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), None)\ncheck('workspace-draft-selection scenario 5', solve('workspace-draft-selection', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), False)\ncheck('workspace-draft-selection scenario 6', solve('workspace-draft-selection', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), None)\ncheck('outgoing-resource-detach scenario 1', solve('outgoing-resource-detach', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','y')])\ncheck('outgoing-resource-detach scenario 2', solve('outgoing-resource-detach', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('outgoing-resource-detach scenario 3', solve('outgoing-resource-detach', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('outgoing-resource-detach scenario 4', solve('outgoing-resource-detach', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('outgoing-resource-detach scenario 5', solve('outgoing-resource-detach', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','x')])\ncheck('outgoing-resource-detach scenario 6', solve('outgoing-resource-detach', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\ncheck('outgoing-request-cancel scenario 1', solve('outgoing-request-cancel', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), ['p'])\ncheck('outgoing-request-cancel scenario 2', solve('outgoing-request-cancel', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('outgoing-request-cancel scenario 3', solve('outgoing-request-cancel', ('a','c',{},[],[('a','p')],'/a/doc',[])), ['p'])\ncheck('outgoing-request-cancel scenario 4', solve('outgoing-request-cancel', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('outgoing-request-cancel scenario 5', solve('outgoing-request-cancel', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])\ncheck('outgoing-request-cancel scenario 6', solve('outgoing-request-cancel', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), ['p','q'])\ncheck('switch-authorization scenario 1', solve('switch-authorization', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), True)\ncheck('switch-authorization scenario 2', solve('switch-authorization', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), True)\ncheck('switch-authorization scenario 3', solve('switch-authorization', ('a','c',{},[],[('a','p')],'/a/doc',[])), False)\ncheck('switch-authorization scenario 4', solve('switch-authorization', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)\ncheck('switch-authorization scenario 5', solve('switch-authorization', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)\ncheck('switch-authorization scenario 6', solve('switch-authorization', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)\ncheck('draft-preservation-on-switch scenario 1', solve('draft-preservation-on-switch', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), {'a':N,'b':2})\ncheck('draft-preservation-on-switch scenario 2', solve('draft-preservation-on-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), {'a':0})\ncheck('draft-preservation-on-switch scenario 3', solve('draft-preservation-on-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), {})\ncheck('draft-preservation-on-switch scenario 4', solve('draft-preservation-on-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), {'b':None})\ncheck('draft-preservation-on-switch scenario 5', solve('draft-preservation-on-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), {'b':False})\ncheck('draft-preservation-on-switch scenario 6', solve('draft-preservation-on-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), {'a':N})\ncheck('workspace-route-rewrite scenario 1', solve('workspace-route-rewrite', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), '/b/doc')\ncheck('workspace-route-rewrite scenario 2', solve('workspace-route-rewrite', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), '/a')\ncheck('workspace-route-rewrite scenario 3', solve('workspace-route-rewrite', ('a','c',{},[],[('a','p')],'/a/doc',[])), '/c/doc')\ncheck('workspace-route-rewrite scenario 4', solve('workspace-route-rewrite', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), '/a')\ncheck('workspace-route-rewrite scenario 5', solve('workspace-route-rewrite', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), '/shared')\ncheck('workspace-route-rewrite scenario 6', solve('workspace-route-rewrite', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), '/b')\ncheck('same-workspace-no-switch scenario 1', solve('same-workspace-no-switch', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), True)\ncheck('same-workspace-no-switch scenario 2', solve('same-workspace-no-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), False)\ncheck('same-workspace-no-switch scenario 3', solve('same-workspace-no-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), True)\ncheck('same-workspace-no-switch scenario 4', solve('same-workspace-no-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)\ncheck('same-workspace-no-switch scenario 5', solve('same-workspace-no-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)\ncheck('same-workspace-no-switch scenario 6', solve('same-workspace-no-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)\ncheck('resource-scope-key scenario 1', solve('resource-scope-key', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','y')])\ncheck('resource-scope-key scenario 2', solve('resource-scope-key', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [('a','x')])\ncheck('resource-scope-key scenario 3', solve('resource-scope-key', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('resource-scope-key scenario 4', solve('resource-scope-key', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('resource-scope-key scenario 5', solve('resource-scope-key', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])\ncheck('resource-scope-key scenario 6', solve('resource-scope-key', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\ncheck('forbidden-switch-retains-owner scenario 1', solve('forbidden-switch-retains-owner', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), 'b')\ncheck('forbidden-switch-retains-owner scenario 2', solve('forbidden-switch-retains-owner', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 'a')\ncheck('forbidden-switch-retains-owner scenario 3', solve('forbidden-switch-retains-owner', ('a','c',{},[],[('a','p')],'/a/doc',[])), 'a')\ncheck('forbidden-switch-retains-owner scenario 4', solve('forbidden-switch-retains-owner', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), 'a')\ncheck('forbidden-switch-retains-owner scenario 5', solve('forbidden-switch-retains-owner', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), 'b')\ncheck('forbidden-switch-retains-owner scenario 6', solve('forbidden-switch-retains-owner', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), 'b')\ncheck('pending-other-workspaces scenario 1', solve('pending-other-workspaces', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','q')])\ncheck('pending-other-workspaces scenario 2', solve('pending-other-workspaces', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('pending-other-workspaces scenario 3', solve('pending-other-workspaces', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('pending-other-workspaces scenario 4', solve('pending-other-workspaces', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('pending-other-workspaces scenario 5', solve('pending-other-workspaces', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','p')])\ncheck('pending-other-workspaces scenario 6', solve('pending-other-workspaces', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"5262e319b86379e1a8d987cc0a2de1a244451092d4b88c2d8de623ea1ebbca8c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    old, new, drafts, resources, pending, location, allowed = s\n    if operation == 'workspace-draft-selection':\n        return drafts.get(new)\n    if operation == 'outgoing-resource-detach':\n        return [(w,k) for w,k in resources if w!=old]\n    if operation == 'outgoing-request-cancel':\n        return [k for w,k in pending if w==old]\n    if operation == 'switch-authorization':\n        return new in allowed\n    if operation == 'draft-preservation-on-switch':\n        return dict(drafts)\n    if operation == 'workspace-route-rewrite':\n        return '/'+new+location[len('/'+old):] if location=='/'+old or location.startswith('/'+old+'/') else location\n    if operation == 'same-workspace-no-switch':\n        return old!=new\n    if operation == 'resource-scope-key':\n        return [(new,k) for w,k in resources if w==new]\n    if operation == 'forbidden-switch-retains-owner':\n        return new if new in allowed else old\n    if operation == 'pending-other-workspaces':\n        return []\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('workspace-draft-selection scenario 1', solve('workspace-draft-selection', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), 2)\ncheck('workspace-draft-selection scenario 2', solve('workspace-draft-selection', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 0)\ncheck('workspace-draft-selection scenario 3', solve('workspace-draft-selection', ('a','c',{},[],[('a','p')],'/a/doc',[])), None)\ncheck('workspace-draft-selection scenario 4', solve('workspace-draft-selection', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), None)\ncheck('workspace-draft-selection scenario 5', solve('workspace-draft-selection', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), False)\ncheck('workspace-draft-selection scenario 6', solve('workspace-draft-selection', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), None)\ncheck('outgoing-resource-detach scenario 1', solve('outgoing-resource-detach', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','y')])\ncheck('outgoing-resource-detach scenario 2', solve('outgoing-resource-detach', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('outgoing-resource-detach scenario 3', solve('outgoing-resource-detach', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('outgoing-resource-detach scenario 4', solve('outgoing-resource-detach', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('outgoing-resource-detach scenario 5', solve('outgoing-resource-detach', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','x')])\ncheck('outgoing-resource-detach scenario 6', solve('outgoing-resource-detach', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\ncheck('outgoing-request-cancel scenario 1', solve('outgoing-request-cancel', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), ['p'])\ncheck('outgoing-request-cancel scenario 2', solve('outgoing-request-cancel', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('outgoing-request-cancel scenario 3', solve('outgoing-request-cancel', ('a','c',{},[],[('a','p')],'/a/doc',[])), ['p'])\ncheck('outgoing-request-cancel scenario 4', solve('outgoing-request-cancel', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('outgoing-request-cancel scenario 5', solve('outgoing-request-cancel', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])\ncheck('outgoing-request-cancel scenario 6', solve('outgoing-request-cancel', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), ['p','q'])\ncheck('switch-authorization scenario 1', solve('switch-authorization', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), True)\ncheck('switch-authorization scenario 2', solve('switch-authorization', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), True)\ncheck('switch-authorization scenario 3', solve('switch-authorization', ('a','c',{},[],[('a','p')],'/a/doc',[])), False)\ncheck('switch-authorization scenario 4', solve('switch-authorization', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)\ncheck('switch-authorization scenario 5', solve('switch-authorization', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)\ncheck('switch-authorization scenario 6', solve('switch-authorization', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)\ncheck('draft-preservation-on-switch scenario 1', solve('draft-preservation-on-switch', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), {'a':N,'b':2})\ncheck('draft-preservation-on-switch scenario 2', solve('draft-preservation-on-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), {'a':0})\ncheck('draft-preservation-on-switch scenario 3', solve('draft-preservation-on-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), {})\ncheck('draft-preservation-on-switch scenario 4', solve('draft-preservation-on-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), {'b':None})\ncheck('draft-preservation-on-switch scenario 5', solve('draft-preservation-on-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), {'b':False})\ncheck('draft-preservation-on-switch scenario 6', solve('draft-preservation-on-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), {'a':N})\ncheck('workspace-route-rewrite scenario 1', solve('workspace-route-rewrite', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), '/b/doc')\ncheck('workspace-route-rewrite scenario 2', solve('workspace-route-rewrite', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), '/a')\ncheck('workspace-route-rewrite scenario 3', solve('workspace-route-rewrite', ('a','c',{},[],[('a','p')],'/a/doc',[])), '/c/doc')\ncheck('workspace-route-rewrite scenario 4', solve('workspace-route-rewrite', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), '/a')\ncheck('workspace-route-rewrite scenario 5', solve('workspace-route-rewrite', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), '/shared')\ncheck('workspace-route-rewrite scenario 6', solve('workspace-route-rewrite', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), '/b')\ncheck('same-workspace-no-switch scenario 1', solve('same-workspace-no-switch', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), True)\ncheck('same-workspace-no-switch scenario 2', solve('same-workspace-no-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), False)\ncheck('same-workspace-no-switch scenario 3', solve('same-workspace-no-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), True)\ncheck('same-workspace-no-switch scenario 4', solve('same-workspace-no-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)\ncheck('same-workspace-no-switch scenario 5', solve('same-workspace-no-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)\ncheck('same-workspace-no-switch scenario 6', solve('same-workspace-no-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)\ncheck('resource-scope-key scenario 1', solve('resource-scope-key', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','y')])\ncheck('resource-scope-key scenario 2', solve('resource-scope-key', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [('a','x')])\ncheck('resource-scope-key scenario 3', solve('resource-scope-key', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('resource-scope-key scenario 4', solve('resource-scope-key', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('resource-scope-key scenario 5', solve('resource-scope-key', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])\ncheck('resource-scope-key scenario 6', solve('resource-scope-key', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\ncheck('forbidden-switch-retains-owner scenario 1', solve('forbidden-switch-retains-owner', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), 'b')\ncheck('forbidden-switch-retains-owner scenario 2', solve('forbidden-switch-retains-owner', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 'a')\ncheck('forbidden-switch-retains-owner scenario 3', solve('forbidden-switch-retains-owner', ('a','c',{},[],[('a','p')],'/a/doc',[])), 'a')\ncheck('forbidden-switch-retains-owner scenario 4', solve('forbidden-switch-retains-owner', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), 'a')\ncheck('forbidden-switch-retains-owner scenario 5', solve('forbidden-switch-retains-owner', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), 'b')\ncheck('forbidden-switch-retains-owner scenario 6', solve('forbidden-switch-retains-owner', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), 'b')\ncheck('pending-other-workspaces scenario 1', solve('pending-other-workspaces', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','q')])\ncheck('pending-other-workspaces scenario 2', solve('pending-other-workspaces', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('pending-other-workspaces scenario 3', solve('pending-other-workspaces', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('pending-other-workspaces scenario 4', solve('pending-other-workspaces', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('pending-other-workspaces scenario 5', solve('pending-other-workspaces', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','p')])\ncheck('pending-other-workspaces scenario 6', solve('pending-other-workspaces', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"d38ae48ac38b6921e638a559ae8047d19f9c0a463cae33403bc4a2483eaf85d4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(operation, s):\n    old, new, drafts, resources, pending, location, allowed = s\n    if operation == 'workspace-draft-selection':\n        return drafts.get(new)\n    if operation == 'outgoing-resource-detach':\n        return [(w,k) for w,k in resources if w!=old]\n    if operation == 'outgoing-request-cancel':\n        return [k for w,k in pending if w==old]\n    if operation == 'switch-authorization':\n        return new in allowed\n    if operation == 'draft-preservation-on-switch':\n        return dict(drafts)\n    if operation == 'workspace-route-rewrite':\n        return '/'+new+location[len('/'+old):] if location=='/'+old or location.startswith('/'+old+'/') else location\n    if operation == 'same-workspace-no-switch':\n        return old!=new\n    if operation == 'resource-scope-key':\n        return [(new,k) for w,k in resources if w==new]\n    if operation == 'forbidden-switch-retains-owner':\n        return new if new in allowed else old\n    if operation == 'pending-other-workspaces':\n        return [(w,k) for w,k in pending if w!=old]\n    raise ValueError('unknown modeled operation')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('workspace-draft-selection scenario 1', solve('workspace-draft-selection', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), 2)\ncheck('workspace-draft-selection scenario 2', solve('workspace-draft-selection', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 0)\ncheck('workspace-draft-selection scenario 3', solve('workspace-draft-selection', ('a','c',{},[],[('a','p')],'/a/doc',[])), None)\ncheck('workspace-draft-selection scenario 4', solve('workspace-draft-selection', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), None)\ncheck('workspace-draft-selection scenario 5', solve('workspace-draft-selection', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), False)\ncheck('workspace-draft-selection scenario 6', solve('workspace-draft-selection', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), None)\ncheck('outgoing-resource-detach scenario 1', solve('outgoing-resource-detach', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','y')])\ncheck('outgoing-resource-detach scenario 2', solve('outgoing-resource-detach', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('outgoing-resource-detach scenario 3', solve('outgoing-resource-detach', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('outgoing-resource-detach scenario 4', solve('outgoing-resource-detach', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('outgoing-resource-detach scenario 5', solve('outgoing-resource-detach', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','x')])\ncheck('outgoing-resource-detach scenario 6', solve('outgoing-resource-detach', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\ncheck('outgoing-request-cancel scenario 1', solve('outgoing-request-cancel', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), ['p'])\ncheck('outgoing-request-cancel scenario 2', solve('outgoing-request-cancel', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('outgoing-request-cancel scenario 3', solve('outgoing-request-cancel', ('a','c',{},[],[('a','p')],'/a/doc',[])), ['p'])\ncheck('outgoing-request-cancel scenario 4', solve('outgoing-request-cancel', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('outgoing-request-cancel scenario 5', solve('outgoing-request-cancel', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])\ncheck('outgoing-request-cancel scenario 6', solve('outgoing-request-cancel', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), ['p','q'])\ncheck('switch-authorization scenario 1', solve('switch-authorization', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), True)\ncheck('switch-authorization scenario 2', solve('switch-authorization', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), True)\ncheck('switch-authorization scenario 3', solve('switch-authorization', ('a','c',{},[],[('a','p')],'/a/doc',[])), False)\ncheck('switch-authorization scenario 4', solve('switch-authorization', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)\ncheck('switch-authorization scenario 5', solve('switch-authorization', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)\ncheck('switch-authorization scenario 6', solve('switch-authorization', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)\ncheck('draft-preservation-on-switch scenario 1', solve('draft-preservation-on-switch', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), {'a':N,'b':2})\ncheck('draft-preservation-on-switch scenario 2', solve('draft-preservation-on-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), {'a':0})\ncheck('draft-preservation-on-switch scenario 3', solve('draft-preservation-on-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), {})\ncheck('draft-preservation-on-switch scenario 4', solve('draft-preservation-on-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), {'b':None})\ncheck('draft-preservation-on-switch scenario 5', solve('draft-preservation-on-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), {'b':False})\ncheck('draft-preservation-on-switch scenario 6', solve('draft-preservation-on-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), {'a':N})\ncheck('workspace-route-rewrite scenario 1', solve('workspace-route-rewrite', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), '/b/doc')\ncheck('workspace-route-rewrite scenario 2', solve('workspace-route-rewrite', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), '/a')\ncheck('workspace-route-rewrite scenario 3', solve('workspace-route-rewrite', ('a','c',{},[],[('a','p')],'/a/doc',[])), '/c/doc')\ncheck('workspace-route-rewrite scenario 4', solve('workspace-route-rewrite', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), '/a')\ncheck('workspace-route-rewrite scenario 5', solve('workspace-route-rewrite', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), '/shared')\ncheck('workspace-route-rewrite scenario 6', solve('workspace-route-rewrite', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), '/b')\ncheck('same-workspace-no-switch scenario 1', solve('same-workspace-no-switch', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), True)\ncheck('same-workspace-no-switch scenario 2', solve('same-workspace-no-switch', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), False)\ncheck('same-workspace-no-switch scenario 3', solve('same-workspace-no-switch', ('a','c',{},[],[('a','p')],'/a/doc',[])), True)\ncheck('same-workspace-no-switch scenario 4', solve('same-workspace-no-switch', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), True)\ncheck('same-workspace-no-switch scenario 5', solve('same-workspace-no-switch', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), True)\ncheck('same-workspace-no-switch scenario 6', solve('same-workspace-no-switch', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), True)\ncheck('resource-scope-key scenario 1', solve('resource-scope-key', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','y')])\ncheck('resource-scope-key scenario 2', solve('resource-scope-key', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [('a','x')])\ncheck('resource-scope-key scenario 3', solve('resource-scope-key', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('resource-scope-key scenario 4', solve('resource-scope-key', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('resource-scope-key scenario 5', solve('resource-scope-key', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [])\ncheck('resource-scope-key scenario 6', solve('resource-scope-key', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\ncheck('forbidden-switch-retains-owner scenario 1', solve('forbidden-switch-retains-owner', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), 'b')\ncheck('forbidden-switch-retains-owner scenario 2', solve('forbidden-switch-retains-owner', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), 'a')\ncheck('forbidden-switch-retains-owner scenario 3', solve('forbidden-switch-retains-owner', ('a','c',{},[],[('a','p')],'/a/doc',[])), 'a')\ncheck('forbidden-switch-retains-owner scenario 4', solve('forbidden-switch-retains-owner', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), 'a')\ncheck('forbidden-switch-retains-owner scenario 5', solve('forbidden-switch-retains-owner', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), 'b')\ncheck('forbidden-switch-retains-owner scenario 6', solve('forbidden-switch-retains-owner', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), 'b')\ncheck('pending-other-workspaces scenario 1', solve('pending-other-workspaces', ('a','b',{'a':N,'b':2},[('a','x'),('b','y')],[('a','p'),('b','q')],'/a/doc',['b'])), [('b','q')])\ncheck('pending-other-workspaces scenario 2', solve('pending-other-workspaces', ('a','a',{'a':0},[('a','x')],[], '/a', ['a'])), [])\ncheck('pending-other-workspaces scenario 3', solve('pending-other-workspaces', ('a','c',{},[],[('a','p')],'/a/doc',[])), [])\ncheck('pending-other-workspaces scenario 4', solve('pending-other-workspaces', ('b','a',{'b':None},[('b','x'),('b','y')],[], '/b', ['a','b'])), [])\ncheck('pending-other-workspaces scenario 5', solve('pending-other-workspaces', ('a','b',{'b':False},[('c','x')],[('c','p')],'/shared',['b'])), [('c','p')])\ncheck('pending-other-workspaces scenario 6', solve('pending-other-workspaces', ('a','b',{'a':N},[],[('a','p'),('a','q')],'/a',['b'])), [])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Only the explicitly specified operations and finite deterministic records are modeled; no browser or framework conformance is claimed. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-client-state-workspace-switch-pending-other-workspaces","generated_at":"2026-09-29T14:40:53.881047+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"An offline client lifecycle model that isolates a state-management defect without DOM rendering or network services.","repair":"Apply the modeled pending-other-workspaces rule: `[(w,k) for w,k in pending if w!=old]`.","root_cause":"The pending-other-workspaces client decision evaluates `[]` instead of `[(w,k) for w,k in pending if w!=old]`.","sha256":"992aba48dea82648e27bc503bbd7ba9dff82d56d72a5c9840871c5d5110cdb81","title":"Application workspace switch transaction: Pending other workspaces · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.707,"exit_code":1,"observations":[{"actual":2,"check":"workspace-draft-selection scenario 1","expected":2,"passed":true},{"actual":0,"check":"workspace-draft-selection scenario 2","expected":0,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 3","expected":null,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 4","expected":null,"passed":true},{"actual":false,"check":"workspace-draft-selection scenario 5","expected":false,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 6","expected":null,"passed":true},{"actual":[["b","y"]],"check":"outgoing-resource-detach scenario 1","expected":[["b","y"]],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 2","expected":[],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 3","expected":[],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 4","expected":[],"passed":true},{"actual":[["c","x"]],"check":"outgoing-resource-detach scenario 5","expected":[["c","x"]],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 6","expected":[],"passed":true},{"actual":["p"],"check":"outgoing-request-cancel scenario 1","expected":["p"],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 2","expected":[],"passed":true},{"actual":["p"],"check":"outgoing-request-cancel scenario 3","expected":["p"],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 4","expected":[],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 5","expected":[],"passed":true},{"actual":["p","q"],"check":"outgoing-request-cancel scenario 6","expected":["p","q"],"passed":true},{"actual":true,"check":"switch-authorization scenario 1","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 2","expected":true,"passed":true},{"actual":false,"check":"switch-authorization scenario 3","expected":false,"passed":true},{"actual":true,"check":"switch-authorization scenario 4","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 5","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 6","expected":true,"passed":true},{"actual":{"a":1,"b":2},"check":"draft-preservation-on-switch scenario 1","expected":{"a":1,"b":2},"passed":true},{"actual":{"a":0},"check":"draft-preservation-on-switch scenario 2","expected":{"a":0},"passed":true},{"actual":{},"check":"draft-preservation-on-switch scenario 3","expected":{},"passed":true},{"actual":{"b":null},"check":"draft-preservation-on-switch scenario 4","expected":{"b":null},"passed":true},{"actual":{"b":false},"check":"draft-preservation-on-switch scenario 5","expected":{"b":false},"passed":true},{"actual":{"a":1},"check":"draft-preservation-on-switch scenario 6","expected":{"a":1},"passed":true},{"actual":"/b/doc","check":"workspace-route-rewrite scenario 1","expected":"/b/doc","passed":true},{"actual":"/a","check":"workspace-route-rewrite scenario 2","expected":"/a","passed":true},{"actual":"/c/doc","check":"workspace-route-rewrite scenario 3","expected":"/c/doc","passed":true},{"actual":"/a","check":"workspace-route-rewrite scenario 4","expected":"/a","passed":true},{"actual":"/shared","check":"workspace-route-rewrite scenario 5","expected":"/shared","passed":true},{"actual":"/b","check":"workspace-route-rewrite scenario 6","expected":"/b","passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 1","expected":true,"passed":true},{"actual":false,"check":"same-workspace-no-switch scenario 2","expected":false,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 3","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 4","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 5","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 6","expected":true,"passed":true},{"actual":[["b","y"]],"check":"resource-scope-key scenario 1","expected":[["b","y"]],"passed":true},{"actual":[["a","x"]],"check":"resource-scope-key scenario 2","expected":[["a","x"]],"passed":true},{"actual":[],"check":"resource-scope-key scenario 3","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 4","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 5","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 6","expected":[],"passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 1","expected":"b","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 2","expected":"a","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 3","expected":"a","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 4","expected":"a","passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 5","expected":"b","passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 6","expected":"b","passed":true},{"actual":[["b","q"]],"check":"pending-other-workspaces scenario 1","expected":[["b","q"]],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 2","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 3","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 4","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 5","expected":[["c","p"]],"passed":false},{"actual":[],"check":"pending-other-workspaces scenario 6","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace-draft-selection scenario 1\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 1\", \"actual\": [[\"b\", \"y\"]], \"expected\": [[\"b\", \"y\"]], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 5\", \"actual\": [[\"c\", \"x\"]], \"expected\": [[\"c\", \"x\"]], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 1\", \"actual\": [\"p\"], \"expected\": [\"p\"], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 3\", \"actual\": [\"p\"], \"expected\": [\"p\"], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 6\", \"actual\": [\"p\", \"q\"], \"expected\": [\"p\", \"q\"], \"passed\": true}, {\"check\": \"switch-authorization scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"switch-authorization scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 1\", \"actual\": {\"a\": 1, \"b\": 2}, \"expected\": {\"a\": 1, \"b\": 2}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 2\", \"actual\": {\"a\": 0}, \"expected\": {\"a\": 0}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 4\", \"actual\": {\"b\": null}, \"expected\": {\"b\": null}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 5\", \"actual\": {\"b\": false}, \"expected\": {\"b\": false}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 6\", \"actual\": {\"a\": 1}, \"expected\": {\"a\": 1}, \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 1\", \"actual\": \"/b/doc\", \"expected\": \"/b/doc\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 2\", \"actual\": \"/a\", \"expected\": \"/a\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 3\", \"actual\": \"/c/doc\", \"expected\": \"/c/doc\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 4\", \"actual\": \"/a\", \"expected\": \"/a\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 5\", \"actual\": \"/shared\", \"expected\": \"/shared\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 6\", \"actual\": \"/b\", \"expected\": \"/b\", \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-scope-key scenario 1\", \"actual\": [[\"b\", \"y\"]], \"expected\": [[\"b\", \"y\"]], \"passed\": true}, {\"check\": \"resource-scope-key scenario 2\", \"actual\": [[\"a\", \"x\"]], \"expected\": [[\"a\", \"x\"]], \"passed\": true}, {\"check\": \"resource-scope-key scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 1\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 2\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 3\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 4\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 5\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 6\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 1\", \"actual\": [[\"b\", \"q\"]], \"expected\": [[\"b\", \"q\"]], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 5\", \"actual\": [], \"expected\": [[\"c\", \"p\"]], \"passed\": false}, {\"check\": \"pending-other-workspaces scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.87,"exit_code":1,"observations":[{"actual":2,"check":"workspace-draft-selection scenario 1","expected":2,"passed":true},{"actual":0,"check":"workspace-draft-selection scenario 2","expected":0,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 3","expected":null,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 4","expected":null,"passed":true},{"actual":false,"check":"workspace-draft-selection scenario 5","expected":false,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 6","expected":null,"passed":true},{"actual":[["b","y"]],"check":"outgoing-resource-detach scenario 1","expected":[["b","y"]],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 2","expected":[],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 3","expected":[],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 4","expected":[],"passed":true},{"actual":[["c","x"]],"check":"outgoing-resource-detach scenario 5","expected":[["c","x"]],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 6","expected":[],"passed":true},{"actual":["p"],"check":"outgoing-request-cancel scenario 1","expected":["p"],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 2","expected":[],"passed":true},{"actual":["p"],"check":"outgoing-request-cancel scenario 3","expected":["p"],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 4","expected":[],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 5","expected":[],"passed":true},{"actual":["p","q"],"check":"outgoing-request-cancel scenario 6","expected":["p","q"],"passed":true},{"actual":true,"check":"switch-authorization scenario 1","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 2","expected":true,"passed":true},{"actual":false,"check":"switch-authorization scenario 3","expected":false,"passed":true},{"actual":true,"check":"switch-authorization scenario 4","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 5","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 6","expected":true,"passed":true},{"actual":{"a":1,"b":2},"check":"draft-preservation-on-switch scenario 1","expected":{"a":1,"b":2},"passed":true},{"actual":{"a":0},"check":"draft-preservation-on-switch scenario 2","expected":{"a":0},"passed":true},{"actual":{},"check":"draft-preservation-on-switch scenario 3","expected":{},"passed":true},{"actual":{"b":null},"check":"draft-preservation-on-switch scenario 4","expected":{"b":null},"passed":true},{"actual":{"b":false},"check":"draft-preservation-on-switch scenario 5","expected":{"b":false},"passed":true},{"actual":{"a":1},"check":"draft-preservation-on-switch scenario 6","expected":{"a":1},"passed":true},{"actual":"/b/doc","check":"workspace-route-rewrite scenario 1","expected":"/b/doc","passed":true},{"actual":"/a","check":"workspace-route-rewrite scenario 2","expected":"/a","passed":true},{"actual":"/c/doc","check":"workspace-route-rewrite scenario 3","expected":"/c/doc","passed":true},{"actual":"/a","check":"workspace-route-rewrite scenario 4","expected":"/a","passed":true},{"actual":"/shared","check":"workspace-route-rewrite scenario 5","expected":"/shared","passed":true},{"actual":"/b","check":"workspace-route-rewrite scenario 6","expected":"/b","passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 1","expected":true,"passed":true},{"actual":false,"check":"same-workspace-no-switch scenario 2","expected":false,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 3","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 4","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 5","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 6","expected":true,"passed":true},{"actual":[["b","y"]],"check":"resource-scope-key scenario 1","expected":[["b","y"]],"passed":true},{"actual":[["a","x"]],"check":"resource-scope-key scenario 2","expected":[["a","x"]],"passed":true},{"actual":[],"check":"resource-scope-key scenario 3","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 4","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 5","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 6","expected":[],"passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 1","expected":"b","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 2","expected":"a","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 3","expected":"a","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 4","expected":"a","passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 5","expected":"b","passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 6","expected":"b","passed":true},{"actual":[],"check":"pending-other-workspaces scenario 1","expected":[["b","q"]],"passed":false},{"actual":[],"check":"pending-other-workspaces scenario 2","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 3","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 4","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 5","expected":[["c","p"]],"passed":false},{"actual":[],"check":"pending-other-workspaces scenario 6","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace-draft-selection scenario 1\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 1\", \"actual\": [[\"b\", \"y\"]], \"expected\": [[\"b\", \"y\"]], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 5\", \"actual\": [[\"c\", \"x\"]], \"expected\": [[\"c\", \"x\"]], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 1\", \"actual\": [\"p\"], \"expected\": [\"p\"], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 3\", \"actual\": [\"p\"], \"expected\": [\"p\"], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 6\", \"actual\": [\"p\", \"q\"], \"expected\": [\"p\", \"q\"], \"passed\": true}, {\"check\": \"switch-authorization scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"switch-authorization scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 1\", \"actual\": {\"a\": 1, \"b\": 2}, \"expected\": {\"a\": 1, \"b\": 2}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 2\", \"actual\": {\"a\": 0}, \"expected\": {\"a\": 0}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 4\", \"actual\": {\"b\": null}, \"expected\": {\"b\": null}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 5\", \"actual\": {\"b\": false}, \"expected\": {\"b\": false}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 6\", \"actual\": {\"a\": 1}, \"expected\": {\"a\": 1}, \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 1\", \"actual\": \"/b/doc\", \"expected\": \"/b/doc\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 2\", \"actual\": \"/a\", \"expected\": \"/a\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 3\", \"actual\": \"/c/doc\", \"expected\": \"/c/doc\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 4\", \"actual\": \"/a\", \"expected\": \"/a\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 5\", \"actual\": \"/shared\", \"expected\": \"/shared\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 6\", \"actual\": \"/b\", \"expected\": \"/b\", \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-scope-key scenario 1\", \"actual\": [[\"b\", \"y\"]], \"expected\": [[\"b\", \"y\"]], \"passed\": true}, {\"check\": \"resource-scope-key scenario 2\", \"actual\": [[\"a\", \"x\"]], \"expected\": [[\"a\", \"x\"]], \"passed\": true}, {\"check\": \"resource-scope-key scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 1\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 2\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 3\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 4\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 5\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 6\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 1\", \"actual\": [], \"expected\": [[\"b\", \"q\"]], \"passed\": false}, {\"check\": \"pending-other-workspaces scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 5\", \"actual\": [], \"expected\": [[\"c\", \"p\"]], \"passed\": false}, {\"check\": \"pending-other-workspaces scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.963,"exit_code":0,"observations":[{"actual":2,"check":"workspace-draft-selection scenario 1","expected":2,"passed":true},{"actual":0,"check":"workspace-draft-selection scenario 2","expected":0,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 3","expected":null,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 4","expected":null,"passed":true},{"actual":false,"check":"workspace-draft-selection scenario 5","expected":false,"passed":true},{"actual":null,"check":"workspace-draft-selection scenario 6","expected":null,"passed":true},{"actual":[["b","y"]],"check":"outgoing-resource-detach scenario 1","expected":[["b","y"]],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 2","expected":[],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 3","expected":[],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 4","expected":[],"passed":true},{"actual":[["c","x"]],"check":"outgoing-resource-detach scenario 5","expected":[["c","x"]],"passed":true},{"actual":[],"check":"outgoing-resource-detach scenario 6","expected":[],"passed":true},{"actual":["p"],"check":"outgoing-request-cancel scenario 1","expected":["p"],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 2","expected":[],"passed":true},{"actual":["p"],"check":"outgoing-request-cancel scenario 3","expected":["p"],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 4","expected":[],"passed":true},{"actual":[],"check":"outgoing-request-cancel scenario 5","expected":[],"passed":true},{"actual":["p","q"],"check":"outgoing-request-cancel scenario 6","expected":["p","q"],"passed":true},{"actual":true,"check":"switch-authorization scenario 1","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 2","expected":true,"passed":true},{"actual":false,"check":"switch-authorization scenario 3","expected":false,"passed":true},{"actual":true,"check":"switch-authorization scenario 4","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 5","expected":true,"passed":true},{"actual":true,"check":"switch-authorization scenario 6","expected":true,"passed":true},{"actual":{"a":1,"b":2},"check":"draft-preservation-on-switch scenario 1","expected":{"a":1,"b":2},"passed":true},{"actual":{"a":0},"check":"draft-preservation-on-switch scenario 2","expected":{"a":0},"passed":true},{"actual":{},"check":"draft-preservation-on-switch scenario 3","expected":{},"passed":true},{"actual":{"b":null},"check":"draft-preservation-on-switch scenario 4","expected":{"b":null},"passed":true},{"actual":{"b":false},"check":"draft-preservation-on-switch scenario 5","expected":{"b":false},"passed":true},{"actual":{"a":1},"check":"draft-preservation-on-switch scenario 6","expected":{"a":1},"passed":true},{"actual":"/b/doc","check":"workspace-route-rewrite scenario 1","expected":"/b/doc","passed":true},{"actual":"/a","check":"workspace-route-rewrite scenario 2","expected":"/a","passed":true},{"actual":"/c/doc","check":"workspace-route-rewrite scenario 3","expected":"/c/doc","passed":true},{"actual":"/a","check":"workspace-route-rewrite scenario 4","expected":"/a","passed":true},{"actual":"/shared","check":"workspace-route-rewrite scenario 5","expected":"/shared","passed":true},{"actual":"/b","check":"workspace-route-rewrite scenario 6","expected":"/b","passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 1","expected":true,"passed":true},{"actual":false,"check":"same-workspace-no-switch scenario 2","expected":false,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 3","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 4","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 5","expected":true,"passed":true},{"actual":true,"check":"same-workspace-no-switch scenario 6","expected":true,"passed":true},{"actual":[["b","y"]],"check":"resource-scope-key scenario 1","expected":[["b","y"]],"passed":true},{"actual":[["a","x"]],"check":"resource-scope-key scenario 2","expected":[["a","x"]],"passed":true},{"actual":[],"check":"resource-scope-key scenario 3","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 4","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 5","expected":[],"passed":true},{"actual":[],"check":"resource-scope-key scenario 6","expected":[],"passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 1","expected":"b","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 2","expected":"a","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 3","expected":"a","passed":true},{"actual":"a","check":"forbidden-switch-retains-owner scenario 4","expected":"a","passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 5","expected":"b","passed":true},{"actual":"b","check":"forbidden-switch-retains-owner scenario 6","expected":"b","passed":true},{"actual":[["b","q"]],"check":"pending-other-workspaces scenario 1","expected":[["b","q"]],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 2","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 3","expected":[],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 4","expected":[],"passed":true},{"actual":[["c","p"]],"check":"pending-other-workspaces scenario 5","expected":[["c","p"]],"passed":true},{"actual":[],"check":"pending-other-workspaces scenario 6","expected":[],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace-draft-selection scenario 1\", \"actual\": 2, \"expected\": 2, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 2\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 5\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"workspace-draft-selection scenario 6\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 1\", \"actual\": [[\"b\", \"y\"]], \"expected\": [[\"b\", \"y\"]], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 5\", \"actual\": [[\"c\", \"x\"]], \"expected\": [[\"c\", \"x\"]], \"passed\": true}, {\"check\": \"outgoing-resource-detach scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 1\", \"actual\": [\"p\"], \"expected\": [\"p\"], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 3\", \"actual\": [\"p\"], \"expected\": [\"p\"], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"outgoing-request-cancel scenario 6\", \"actual\": [\"p\", \"q\"], \"expected\": [\"p\", \"q\"], \"passed\": true}, {\"check\": \"switch-authorization scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 2\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 3\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"switch-authorization scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"switch-authorization scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 1\", \"actual\": {\"a\": 1, \"b\": 2}, \"expected\": {\"a\": 1, \"b\": 2}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 2\", \"actual\": {\"a\": 0}, \"expected\": {\"a\": 0}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 3\", \"actual\": {}, \"expected\": {}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 4\", \"actual\": {\"b\": null}, \"expected\": {\"b\": null}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 5\", \"actual\": {\"b\": false}, \"expected\": {\"b\": false}, \"passed\": true}, {\"check\": \"draft-preservation-on-switch scenario 6\", \"actual\": {\"a\": 1}, \"expected\": {\"a\": 1}, \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 1\", \"actual\": \"/b/doc\", \"expected\": \"/b/doc\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 2\", \"actual\": \"/a\", \"expected\": \"/a\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 3\", \"actual\": \"/c/doc\", \"expected\": \"/c/doc\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 4\", \"actual\": \"/a\", \"expected\": \"/a\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 5\", \"actual\": \"/shared\", \"expected\": \"/shared\", \"passed\": true}, {\"check\": \"workspace-route-rewrite scenario 6\", \"actual\": \"/b\", \"expected\": \"/b\", \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 1\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 2\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 3\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 4\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 5\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"same-workspace-no-switch scenario 6\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"resource-scope-key scenario 1\", \"actual\": [[\"b\", \"y\"]], \"expected\": [[\"b\", \"y\"]], \"passed\": true}, {\"check\": \"resource-scope-key scenario 2\", \"actual\": [[\"a\", \"x\"]], \"expected\": [[\"a\", \"x\"]], \"passed\": true}, {\"check\": \"resource-scope-key scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 5\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"resource-scope-key scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 1\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 2\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 3\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 4\", \"actual\": \"a\", \"expected\": \"a\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 5\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"forbidden-switch-retains-owner scenario 6\", \"actual\": \"b\", \"expected\": \"b\", \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 1\", \"actual\": [[\"b\", \"q\"]], \"expected\": [[\"b\", \"q\"]], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 4\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 5\", \"actual\": [[\"c\", \"p\"]], \"expected\": [[\"c\", \"p\"]], \"passed\": true}, {\"check\": \"pending-other-workspaces scenario 6\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}