{"ScriptPreparationCode":"var features\r\nvar isDesktopAlertsAllowed = true\r\nvar isAlertsM2Allowed = true\r\n\r\n/*your preparation JavaScript code goes here\r\nTo execute async code during the script preparation, wrap it as function globalMeasureThatScriptPrepareFunction, example:*/\r\nasync function globalMeasureThatScriptPrepareFunction() {\r\n features = [\r\n \u0022Everything in Advisor Core\u0022,\r\n \u0022Short \u0026 leveraged model portfolios\u0022,\r\n \u0022Client proposals \u0026 reports (50/month)\u0022,\r\n \u0022Custom report slides\u0022,\r\n \u0022Multiple integrations\u0022,\r\n \u0022Integration auto-refresh\u0022,\r\n \u0022PDF broker statement upload\u0022,\r\n \u0022PMS integrations\u0022,\r\n \u0022Priority support\u0022\r\n ]\r\n}","TestCases":[{"Name":"Regex test","Code":"features.map((feat) =\u003E {\r\n if (/alerts/i.test(feat) \u0026\u0026 !isDesktopAlertsAllowed) {\r\n return false;\r\n }\r\n if (isAlertsM2Allowed \u0026\u0026 /watchlist alerts/i.test(feat)) {\r\n return false;\r\n }\r\n if (!isAlertsM2Allowed \u0026\u0026 /portfolio alerts/i.test(feat)) {\r\n return false;\r\n } \r\n\r\n return true;\r\n });","IsDeferred":false},{"Name":"String includes","Code":"features.map((feat) =\u003E {\r\n const lowerFeat = feat.toLowerCase();\r\n\r\n if (lowerFeat.includes(\u0027alerts\u0027) \u0026\u0026 !isDesktopAlertsAllowed) {\r\n return false;\r\n }\r\n if (isAlertsM2Allowed \u0026\u0026 lowerFeat.includes(\u0027watchlist alerts\u0027)) {\r\n return false;\r\n }\r\n if (!isAlertsM2Allowed \u0026\u0026 lowerFeat.includes(\u0027portfolio alerts\u0027)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n});","IsDeferred":false}]}