{"ScriptPreparationCode":"const pathMap = new Map()\r\npathMap.set(\u0027test\u0027, \u0027site/app\u0027)\r\npathMap.set(\u0027vendor\u0027, \u0027site/vendor\u0027)\r\nwindow.pathMap = pathMap\r\nwindow.testId = \u0027test/lib/alpaca/js/alpaca\u0027","TestCases":[{"Name":"path part splitting and joining","Code":"const pathMap = window.pathMap\r\nconst parts = window.testId.split(\u0027/\u0027)\r\nlet modified\r\nfor (let { length } = parts; length \u003E 0; --length) {\r\n const parent = parts.slice(0, length).join(\u0027/\u0027)\r\n const path = pathMap.get(parent)\r\n if (path) {\r\n parts.splice(0, length, path)\r\n modified = true\r\n break\r\n }\r\n}\r\nconst mapped = parts.join(\u0027/\u0027)\r\n","IsDeferred":false},{"Name":"looking up path separators","Code":"const pathMap = window.pathMap\r\nlet mapped = window.testId\r\nfor (let separator = mapped.length;;) {\r\n const parent = mapped.substr(0, separator)\r\n const path = pathMap.get(parent)\r\n if (path) {\r\n mapped = \u0060${path}${mapped.substr(separator)}\u0060\r\n break\r\n }\r\n separator = mapped.lastIndexOf(\u0027/\u0027, separator - 1)\r\n if (separator \u003C 0) break\r\n}\r\n","IsDeferred":false}]}