{"_id":"msportalfx-test","_rev":"120-b20c867338cab51cffa9f66eae27df4a","name":"msportalfx-test","time":{"modified":"2022-06-20T12:20:01.708Z","created":"2015-09-08T17:35:14.441Z","0.1.5":"2015-09-08T17:35:14.441Z","0.2.0":"2015-09-18T10:31:10.487Z","0.2.1":"2015-09-18T23:16:20.812Z","0.2.2":"2015-09-21T17:51:57.023Z","0.2.3":"2015-09-21T17:56:27.415Z","0.2.4":"2015-09-21T18:03:46.917Z","0.2.5":"2015-09-22T17:20:37.557Z","0.2.6":"2015-09-23T23:31:46.167Z","0.2.7":"2015-09-24T05:34:05.894Z","0.2.8":"2015-09-24T17:26:39.231Z","0.2.9":"2015-09-30T16:46:24.478Z","0.2.10":"2015-09-30T18:36:06.459Z","0.2.11":"2015-09-30T21:35:46.726Z","0.2.12":"2015-10-02T05:50:51.753Z","0.2.13":"2015-10-07T16:32:01.780Z","0.3.0":"2015-10-08T18:41:28.402Z","0.3.1":"2015-10-09T13:40:39.653Z","0.3.2":"2015-10-13T15:11:31.882Z","0.3.3":"2015-10-13T21:34:10.153Z","0.3.4":"2015-10-15T00:54:10.830Z","0.4.0":"2015-10-26T23:19:24.090Z","0.4.1":"2015-11-06T18:21:39.085Z","0.4.2":"2015-11-06T18:25:21.411Z","0.4.3":"2015-11-06T18:38:44.556Z","0.4.4":"2015-11-06T18:52:00.175Z","0.4.5":"2015-11-17T19:22:16.697Z","0.4.6":"2015-11-17T19:45:37.517Z","0.5.0":"2015-12-09T19:56:30.394Z","0.5.1":"2015-12-10T16:53:24.840Z","0.5.2":"2015-12-10T18:35:28.209Z","0.5.3":"2015-12-22T01:57:22.808Z","0.5.4":"2015-12-22T18:03:09.068Z","0.5.5":"2015-12-22T18:09:34.425Z","0.5.6":"2015-12-28T19:29:51.398Z","0.5.7":"2015-12-30T19:19:50.718Z","0.5.8":"2015-12-31T08:14:52.394Z","0.5.9":"2015-12-31T20:14:11.387Z","0.5.10":"2016-01-22T21:28:50.222Z","0.5.11":"2016-02-12T23:40:45.917Z","0.5.12":"2016-03-02T23:58:26.501Z","0.5.13":"2016-03-03T02:58:43.171Z","0.5.14":"2016-03-12T01:49:17.143Z","0.5.15":"2016-03-21T23:20:23.208Z","0.5.16":"2016-03-25T23:47:15.255Z","0.5.17":"2016-03-29T01:30:56.219Z","0.5.18":"2016-03-29T02:28:47.613Z","0.5.19":"2016-04-02T01:56:24.796Z","0.5.20":"2016-04-06T15:47:21.061Z","0.5.21":"2016-04-06T21:22:56.451Z","0.5.22":"2016-04-11T21:51:35.157Z","0.5.23":"2016-04-26T18:26:17.088Z","0.5.24":"2016-05-05T22:24:23.643Z","0.5.25":"2016-05-19T22:53:11.942Z","0.5.26":"2016-06-01T19:37:13.884Z","0.5.27":"2016-08-18T01:26:42.440Z","0.5.28":"2016-09-21T21:34:58.949Z","0.5.29":"2016-09-28T21:26:46.636Z","0.5.30":"2016-09-30T22:36:42.552Z","0.5.31":"2016-09-30T23:27:02.732Z","0.5.32":"2016-10-21T01:22:56.055Z","0.5.34":"2016-11-11T19:19:01.299Z","0.5.36":"2016-11-22T20:02:02.505Z","0.5.38":"2017-01-04T19:00:24.999Z","0.5.39":"2017-03-21T21:41:56.964Z","0.5.41":"2017-04-03T21:35:06.395Z","0.5.42":"2017-05-11T22:25:23.120Z","0.5.43":"2017-05-12T23:13:39.686Z","0.5.44":"2017-06-30T00:03:46.754Z","0.5.45":"2017-08-07T19:12:56.051Z","0.5.47":"2017-08-24T20:51:40.289Z","0.5.49":"2017-08-31T21:12:46.454Z","0.5.50":"2017-09-05T23:54:10.220Z","0.5.51":"2017-09-06T21:42:20.011Z","0.5.52":"2017-09-14T23:34:15.582Z","0.5.53":"2017-09-22T23:21:38.941Z","0.5.54":"2017-09-28T23:18:00.269Z","0.5.55":"2017-10-03T23:56:41.804Z","0.5.56":"2018-03-08T23:08:40.973Z","0.5.57":"2018-03-09T00:39:09.111Z","0.5.58":"2018-04-10T21:53:24.034Z","0.5.59":"2018-04-11T20:40:55.291Z","0.5.60-0":"2018-04-11T22:34:16.057Z","0.5.60":"2018-04-11T22:50:09.661Z","0.6.0":"2018-05-24T20:49:07.855Z","0.7.0":"2018-07-09T21:57:26.935Z","0.7.2":"2018-09-17T19:13:18.748Z","1.0.0":"2018-12-14T01:12:57.160Z","1.0.1":"2018-12-15T00:01:21.283Z","1.0.4":"2019-01-31T03:46:11.671Z","1.0.6":"2019-05-16T21:42:01.339Z","1.0.7":"2019-05-17T00:22:28.143Z","1.0.10":"2019-05-20T19:18:08.322Z","1.0.11":"2019-05-29T18:24:15.534Z","1.0.12-0":"2019-06-03T19:06:58.734Z","1.0.12-2":"2019-06-03T23:24:32.130Z","1.0.12":"2019-06-11T19:23:52.456Z","1.0.13":"2019-06-28T21:18:23.076Z","1.0.16":"2019-07-24T20:52:50.314Z","1.0.17":"2019-08-08T19:29:16.504Z","1.0.18":"2019-09-24T22:27:52.085Z","1.0.19":"2019-09-28T00:53:56.215Z","1.0.20":"2019-10-07T21:32:00.723Z","1.0.21":"2019-10-18T01:42:36.420Z","1.0.22":"2019-11-06T01:45:11.187Z","1.0.23":"2020-02-11T00:58:40.371Z","1.0.24":"2020-04-04T00:40:39.406Z","1.0.25":"2020-04-14T22:15:28.610Z","1.0.26":"2020-05-06T21:17:58.040Z"},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"dist-tags":{"latest":"1.0.26","next":"0.5.60-0"},"description":"Microsoft Azure Portal Test Framework","readme":"\r\n<a name=\"msportalfx-test\"></a>\n# msportalfx-test\r\n\r\nGenerated on 2020-05-06\r\n\r\n* [msportalfx-test](#msportalfx-test)\n    * [Overview](#msportalfx-test-overview)\n        * [Goals](#msportalfx-test-overview-goals)\n        * [General Architecture](#msportalfx-test-overview-general-architecture)\n    * [Getting Started](#msportalfx-test-getting-started)\n        * [Installation](#msportalfx-test-getting-started-installation)\n        * [Write a test](#msportalfx-test-getting-started-write-a-test)\n        * [Add the configuration](#msportalfx-test-getting-started-add-the-configuration)\n        * [Compile and run](#msportalfx-test-getting-started-compile-and-run)\n        * [Updating](#msportalfx-test-getting-started-updating)\n        * [More Examples](#msportalfx-test-getting-started-more-examples)\n        * [Running tests in Visual Studio](#msportalfx-test-getting-started-running-tests-in-visual-studio)\n    * [Side loading a local extension during the test session](#msportalfx-test-side-loading-a-local-extension-during-the-test-session)\n    * [Running](#msportalfx-test-running)\n        * [In Dev](#msportalfx-test-running-in-dev)\n            * [From VS](#msportalfx-test-running-in-dev-from-vs)\n            * [From cmdline](#msportalfx-test-running-in-dev-from-cmdline)\n        * [CI](#msportalfx-test-running-ci)\n            * [Cloudtest](#msportalfx-test-running-ci-cloudtest)\n                * [Environment Setup](#msportalfx-test-running-ci-cloudtest-environment-setup)\n                * [Running Tests](#msportalfx-test-running-ci-cloudtest-running-tests)\n            * [Windows Azure Engineering System (WAES)](#msportalfx-test-running-ci-windows-azure-engineering-system-waes)\n            * [Jenkins](#msportalfx-test-running-ci-jenkins)\n            * [How to setup test run parallelization](#msportalfx-test-running-ci-how-to-setup-test-run-parallelization)\n    * [Debugging](#msportalfx-test-debugging)\n        * [debug tests 101](#msportalfx-test-debugging-debug-tests-101)\n        * [debugging tests in VS Code](#msportalfx-test-debugging-debugging-tests-in-vs-code)\n        * [Checking the result of the currently running test in code](#msportalfx-test-debugging-checking-the-result-of-the-currently-running-test-in-code)\n        * [How to take a screenshot of the browser](#msportalfx-test-debugging-how-to-take-a-screenshot-of-the-browser)\n        * [How to capture browser console output](#msportalfx-test-debugging-how-to-capture-browser-console-output)\n        * [Callstack](#msportalfx-test-debugging-callstack)\n        * [Test output artifacts](#msportalfx-test-debugging-test-output-artifacts)\n    * [Localization](#msportalfx-test-localization)\n    * [User Management](#msportalfx-test-user-management)\n    * [Configuration](#msportalfx-test-configuration)\n        * [Configuration options](#msportalfx-test-configuration-configuration-options)\n            * [Behavior](#msportalfx-test-configuration-configuration-options-behavior)\n            * [PortalContext](#msportalfx-test-configuration-configuration-options-portalcontext)\n            * [Running tests against the Dogfood environment](#msportalfx-test-configuration-configuration-options-running-tests-against-the-dogfood-environment)\n    * [Scenarios](#msportalfx-test-scenarios)\n        * [Create](#msportalfx-test-scenarios-create)\n            * [Opening the create blade from a deployed gallery package](#msportalfx-test-scenarios-create-opening-the-create-blade-from-a-deployed-gallery-package)\n            * [Opening the create blade from a local gallery package](#msportalfx-test-scenarios-create-opening-the-create-blade-from-a-local-gallery-package)\n            * [Validation State](#msportalfx-test-scenarios-create-validation-state)\n            * [Get the validation state of fields on your create form](#msportalfx-test-scenarios-create-get-the-validation-state-of-fields-on-your-create-form)\n            * [Wait on a fields validation state](#msportalfx-test-scenarios-create-wait-on-a-fields-validation-state)\n        * [Browse](#msportalfx-test-scenarios-browse)\n            * [How to test the context menu in browse shows your extensions commands?](#msportalfx-test-scenarios-browse-how-to-test-the-context-menu-in-browse-shows-your-extensions-commands)\n            * [How to test the grid in browse shows the expected default columns for your extension resource](#msportalfx-test-scenarios-browse-how-to-test-the-grid-in-browse-shows-the-expected-default-columns-for-your-extension-resource)\n        * [How to test the grid in browse shows additional extension resource columns that are selected](#msportalfx-test-scenarios-how-to-test-the-grid-in-browse-shows-additional-extension-resource-columns-that-are-selected)\n        * [Blades](#msportalfx-test-scenarios-blades)\n            * [Blade navigation](#msportalfx-test-scenarios-blades-blade-navigation)\n            * [Locating an open blade](#msportalfx-test-scenarios-blades-locating-an-open-blade)\n            * [Common portal blades](#msportalfx-test-scenarios-blades-common-portal-blades)\n                * [Opening the extensions Create blade](#msportalfx-test-scenarios-blades-common-portal-blades-opening-the-extensions-create-blade)\n                * [Opening the Browse blade for your resource](#msportalfx-test-scenarios-blades-common-portal-blades-opening-the-browse-blade-for-your-resource)\n                * [Opening a Resource Summary blade](#msportalfx-test-scenarios-blades-common-portal-blades-opening-a-resource-summary-blade)\n                * [Spec Picker Blade](#msportalfx-test-scenarios-blades-common-portal-blades-spec-picker-blade)\n                * [Properties Blade](#msportalfx-test-scenarios-blades-common-portal-blades-properties-blade)\n                * [QuickStart Blade](#msportalfx-test-scenarios-blades-common-portal-blades-quickstart-blade)\n                * [Users Blade](#msportalfx-test-scenarios-blades-common-portal-blades-users-blade)\n                * [Move Resource Blade](#msportalfx-test-scenarios-blades-common-portal-blades-move-resource-blade)\n            * [Blade Dialogs](#msportalfx-test-scenarios-blades-blade-dialogs)\n        * [Parts](#msportalfx-test-scenarios-parts)\n            * [How to get the reference to a part on a blade](#msportalfx-test-scenarios-parts-how-to-get-the-reference-to-a-part-on-a-blade)\n            * [CollectionPart](#msportalfx-test-scenarios-parts-collectionpart)\n            * [Grid](#msportalfx-test-scenarios-parts-grid)\n                * [Finding a row within a grid](#msportalfx-test-scenarios-parts-grid-finding-a-row-within-a-grid)\n            * [CreateComboBoxField - Obsolete](#msportalfx-test-scenarios-parts-createcomboboxfield-obsolete)\n            * [ResourceGroupDropDownField](#msportalfx-test-scenarios-parts-resourcegroupdropdownfield)\n            * [Editor](#msportalfx-test-scenarios-parts-editor)\n                * [Can read and write content](#msportalfx-test-scenarios-parts-editor-can-read-and-write-content)\n            * [essentials](#msportalfx-test-scenarios-parts-essentials)\n                * [Essentials tests](#msportalfx-test-scenarios-parts-essentials-essentials-tests)\n        * [Command](#msportalfx-test-scenarios-command)\n        * [Action Bar](#msportalfx-test-scenarios-action-bar)\n        * [Delete](#msportalfx-test-scenarios-delete)\n        * [Styling / layout regression detection](#msportalfx-test-scenarios-styling-layout-regression-detection)\n            * [...](#msportalfx-test-scenarios-styling-layout-regression-detection-)\n        * [Locators](#msportalfx-test-scenarios-locators)\n        * [Consuming Updates](#msportalfx-test-scenarios-consuming-updates)\n        * [Mocking](#msportalfx-test-scenarios-mocking)\n            * [How to show mock data into the Portal](#msportalfx-test-scenarios-mocking-how-to-show-mock-data-into-the-portal)\n                * [Mocking ARM](#msportalfx-test-scenarios-mocking-how-to-show-mock-data-into-the-portal-mocking-arm)\n        * [Code Coverage](#msportalfx-test-scenarios-code-coverage)\n            * [Interop, how to run .NET code from your tests](#msportalfx-test-scenarios-code-coverage-interop-how-to-run-net-code-from-your-tests)\n        * [Accessibility Testing](#msportalfx-test-scenarios-accessibility-testing)\n            * [Overview](#msportalfx-test-scenarios-accessibility-testing-overview-1)\n            * [Sample Test](#msportalfx-test-scenarios-accessibility-testing-sample-test)\n            * [Options](#msportalfx-test-scenarios-accessibility-testing-options)\n        * [Contributing](#msportalfx-test-scenarios-contributing)\n            * [To enlist](#msportalfx-test-scenarios-contributing-to-enlist)\n            * [To build the source](#msportalfx-test-scenarios-contributing-to-build-the-source)\n            * [To setup the tests](#msportalfx-test-scenarios-contributing-to-setup-the-tests)\n        * [To run the tests](#msportalfx-test-scenarios-to-run-the-tests)\n            * [Authoring documents](#msportalfx-test-scenarios-to-run-the-tests-authoring-documents)\n            * [Generating the docs](#msportalfx-test-scenarios-to-run-the-tests-generating-the-docs)\n            * [To submit your contribution](#msportalfx-test-scenarios-to-run-the-tests-to-submit-your-contribution)\n            * [Questions?](#msportalfx-test-scenarios-to-run-the-tests-questions)\n        * [API Reference](#msportalfx-test-scenarios-api-reference)\n\r\n\r\n<a name=\"msportalfx-test-overview\"></a>\n## Overview\r\n\r\nMsPortalFx-Test is an end-to-end test framework that runs tests against the Microsoft Azure Portal interacting with it as a user would. \r\n\r\n<a name=\"msportalfx-test-overview-goals\"></a>\n#### Goals\r\n\r\n- Strive for zero breaking changes to partner team CI\r\n- Develop tests in the same language as the extension\r\n- Focus on partner needs rather than internal portal needs\r\n- Distributed independently from the SDK\r\n- Uses an open source contribution model\r\n- Performant\r\n- Robust\r\n- Great Docs\r\n\r\n<a name=\"msportalfx-test-overview-general-architecture\"></a>\n#### General Architecture\r\n3 layers of abstraction (note the names may change but the general idea should be the same).  There may also be some future refactoring to easily differentiate between the layers.\r\n- Test layer \r\n\r\n    - Useful wrappers for testing common functionality.  Will retry if necessary.  Throws if the test/verification fails.  \r\n    - Should be used in writing tests\r\n    - Built upon the action and control layers\r\n    - EG: parts.canPinAllBladeParts\r\n    \r\n- Action layer \r\n\r\n    - Performs an action and verifies it was successful.  Will retry if necessary.\r\n    - Should be used in writing tests\r\n    - Built upon the controls layer\r\n    - EG: portal.openBrowseBlade\r\n    \r\n- Controls layer \r\n\r\n    - The basic controls used in the portal (eg blades, checkboxes, textboxes, etc).  Little to no retry logic.  Should be used mainly for composing the actions and tests layers.\r\n    - Should be used for writing test and action layers.  Should not be used directly by tests in most cases.\r\n    - Built upon webdriver primitives\r\n    - EG: part, checkbox, etc  \r\n\r\n\r\n<a name=\"msportalfx-test-getting-started\"></a>\n## Getting Started\r\n\r\n<a name=\"msportalfx-test-getting-started-installation\"></a>\n### Installation\r\n\r\n1. Install [Node.js](https://nodejs.org) if you have not done so. This will also install npm, which is the package manager for Node.js.  We have only verified support for LTS Node versions 4.5 and 5.1 which can be found in the \"previous downloads\" section.  Newer versions of Node are known to have compilation errors.  \r\n1. Install [Node Tools for Visual Studio](https://www.visualstudio.com/en-us/features/node-js-vs.aspx)\r\n1. Install [TypeScript](http://www.typescriptlang.org/) 1.8.10 or greater.\r\n1. Verify that your:\r\n    - node version is v8.11.3 LTS using `node -v`\r\n    - npm version is 5.6.0 or greater using `npm -v`.  To update npm version use `npm install npm -g`\r\n    - tsc version is 1.8.10 or greater using tsc -v.\r\n\r\n1. Open a command prompt and create a directory for your test files.\r\n\r\n\t\tmd e2etests \r\n\r\n1. Switch to the new directory and install the msportalfx-test module via npm:\r\n\r\n\t\tcd e2etests\r\n\t\tnpm install msportalfx-test --no-optional\r\n        \r\n1. The msportalfx-test module comes with some TypeScript definitions and its dependencies. To make them available to your tests, we recommend that you use the [typings](https://www.npmjs.com/package/typings) Typescript Definition Manager.\r\n\r\n1. First install the [typings](https://www.npmjs.com/package/typings) Typescript Definition Manager globally:\r\n\r\n\t\tnpm install typings -g\r\n\r\n\tNext copy the provided **typings.json** file and the **msportalfx-test.d.ts** file from the **node_modules/msportalfx-test/typescript** folder to your test root directory and use *typings* to install the provided definitions:\r\n\r\n\t\t*copy typings.json to your test root directory*\r\n        *navigate to your test root directory*\r\n\t\ttypings install\r\n\r\n1. MsPortalFx-Test needs a WebDriver server in order to be able to drive the browser. Currently only [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver) is supported, so downloaded it and place it in your machine's PATH or just install it from the [chromedriver Node module](https://www.npmjs.com/package/chromedriver).  You may also need a C++ compiler (Visual Studio includes one):\r\n\r\n\t\tnpm install chromedriver\r\n\r\n\r\n<a name=\"msportalfx-test-getting-started-write-a-test\"></a>\n### Write a test\r\nYou'll need an existing cloud service for the test you'll write below, so if you don't have one please go to the Azure Portal and [create a new cloud service](https://ms.portal.azure.com/#create/Microsoft.CloudService). Write down the dns name of your cloud service to use it in your test.\r\n\r\nWe'll use the [Mocha](https://mochajs.org/) testing framework to layout the following test, but you could use any framework that supports Node.js modules and promises. Let's install Mocha and its typescript definitions:\r\n\r\n\tnpm install mocha\r\n    npm install @types/mocha\r\n\r\nNow, create a **portaltests.ts** file in your e2etests directory and paste the following:\r\n\r\n```ts\r\n/// <reference path=\"./typings/index.d.ts\" />\r\n\r\nimport assert = require('assert');\r\nimport testFx = require('MsPortalFx-Test');\r\nimport nconf = require('nconf');\r\nimport until = testFx.until;\r\n\r\ndescribe('Cloud Service Tests', function () {\r\n\tthis.timeout(0);\r\n\t\r\n\tit('Can Browse To A Cloud Service', () => {\r\n\r\n\t\t\r\n        // Load command line arguments, environment variables and config.json into nconf\r\n        nconf.argv()\r\n            .env()\r\n            .file(__dirname + \"/config.json\");\r\n\r\n        //provide windows credential manager as a fallback to the above three\r\n        nconf[testFx.Utils.NConfWindowsCredentialManager.ProviderName] = testFx.Utils.NConfWindowsCredentialManager;\r\n        nconf.use(testFx.Utils.NConfWindowsCredentialManager.ProviderName);\r\n        \r\n\t\t\r\n\t\ttestFx.portal.portalContext.signInEmail = 'johndoe@outlook.com';\r\n\t\ttestFx.portal.portalContext.signInPassword = nconf.get('msportalfx-test/johndoe@outlook.com/signInPassword');\r\n\t\t\r\n\t\t// Update this variable to use the dns name of your actual cloud service \r\n\t\tlet dnsName = \"mycloudservice\";\r\n\t\t\r\n\t\treturn testFx.portal.openBrowseBlade('microsoft.classicCompute', 'domainNames', \"Cloud services (classic)\").then((blade) => {\r\n\t\t\treturn blade.filterItems(dnsName);\r\n\t\t}).then((blade) => {\r\n            return testFx.portal.wait<testFx.Controls.GridRow>(() => {\r\n                return blade.grid.rows.count().then((count) => {\r\n                    return count === 1 ? blade.grid.rows.first() : null;\r\n                });\r\n            }, null, \"Expected only one row matching '\" + dnsName + \"'.\");\r\n        }).then((row) => {\r\n            return row.click();\t\t\t\r\n\t\t}).then(() => {            \r\n\t\t\tlet summaryBlade = testFx.portal.blade({ title: dnsName + \" - Production\" });\r\n            return testFx.portal.wait(until.isPresent(summaryBlade));\r\n\t\t}).then(() => {\r\n\t\t\treturn testFx.portal.quit();\r\n\t\t});\r\n\t});\r\n});\r\n```\r\n1. write credentials to the windows credential manager\r\n\r\n```\r\n    cmdkey /generic:msportalfx-test/johndoe@outlook.com/signInPassword /user:johndoe@outlook.com /pass:somePassword\r\n```\r\n\r\nRemember to replace \"mycloudservice\" with the dns name of your actual cloud service.\r\n\r\nIn this test we start by importing the **MsPortalFx-Test** module. Then the credentials are specified for the user that will sign in to the Portal. These should be the credentials of a user that already has an active Azure subscription. \r\n\r\nAfter that we can use the Portal object to drive a test scenario that opens the Cloud Services Browse blade, filters the list of cloud services, checks that the grid has only one row after the filter, selects the only row and waits for the correct blade to open. Finally, the call to quit() closes the browser.\r\n\r\n<a name=\"msportalfx-test-getting-started-add-the-configuration\"></a>\n### Add the configuration\r\n\r\nCreate a file named **config.json** next to portaltests.ts. Paste this in the file:\r\n\r\n\t```json\r\n\r\n\t\t{\r\n\t\t\"capabilities\": {\r\n\t\t\t\"browserName\": \"chrome\"\r\n\t\t},\r\n\t\t\"portalUrl\": \"https://portal.azure.com\"\r\n\t\t}\r\n\r\n\t```\t\r\n\r\nThis configuration tells MsPortalFx-Test that Google Chrome should be used for the test session and [https://portal.azure.com](https://portal.azure.com) should be the Portal under test. \r\n\r\n<a name=\"msportalfx-test-getting-started-compile-and-run\"></a>\n### Compile and run\r\nCompile your TypeScript test file (note if you are using a newer version of TSC than 1.8 then you may need to pass in additional flags that aren't present in older versions of TSC):\r\n\r\n\t(TSC 1.8) tsc portaltests.ts --module commonjs  \r\n    (TSC 3+) tsc portaltests.ts --module commonjs --lib es2015 --moduleResolution classic\r\n\r\n...and then run Mocha against the generated JavaScript file (note using an elevated command prompt may cause Chrome to crash.  Use a non-elevated command prompt for best results):\r\n\r\n\tnode_modules\\.bin\\mocha portaltests.js\r\n\r\nThe following output will be sent to your console as the test progresses:\r\n\r\n\t  Portal Tests\r\n\tOpening the Browse blade for the microsoft.classicCompute/domainNames resource type...\r\n\tStarting the ChromeDriver process...\r\n\tPerforming SignIn...\r\n\tWaiting for the Portal...\r\n\tWaiting for the splash screen to go away...\r\n\tApplying filter 'mycloudservice'...\r\n\t    √ Can Browse To A Cloud Service (37822ms)\t\r\n\t\r\n\t  1 passing (38s)\r\n\r\nIf you run into a compilation error with node.d.ts, verify that the tsc version you are using matches the compilation command above.  You can check the version by running:\r\n\r\n    tsc --version\r\n\r\nIf the version is incorrect, then you may need to adjust your path variables or directly call the correct version of tsc.exe.  A version of tsc is usually included in the node_modules folder at node_modules/.bin/tsc that can be used.\r\n\r\nIf you see errors regarding duplicate identifiers due to some definitions being imported twice, you can try setting [moduleResolution compiler option](https://www.typescriptlang.org/docs/handbook/compiler-options.htm) to classic in your tsconfig.json file.\r\n\r\n<a name=\"msportalfx-test-getting-started-updating\"></a>\n### Updating\r\n\r\n1.  In order to keep up to date with the latest changes, we recommend that you update whenever a new version of MsportalFx-Test is released.  npm install will automatically pull the latest version of msportalfx-test. \r\n \r\n        Make sure to copy typescript definition files in your *typings\\* folder from the updated version in *\\node_modules\\msportalfx-test\\typescript*.  \r\n      \r\n<a name=\"msportalfx-test-getting-started-more-examples\"></a>\n### More Examples\r\nMore examples can be found\r\n- within this document\r\n- in the [msportalfx-test /test folder] (https://github.com/Azure/msportalfx-test/tree/master/test) \r\n- and the [Contacts Extension Tests](http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx#path=%2Fsrc%2FSDK%2FAcceptanceTests%2FExtensions%2FContactsExtension%2FTests). \r\n\r\nIf you don't have access, please follow the enlistment instructions below.\r\n \r\n<a name=\"msportalfx-test-getting-started-running-tests-in-visual-studio\"></a>\n### Running tests in Visual Studio\r\n \r\n1. Install [Node Tools for Visual Studio](https://www.visualstudio.com/en-us/features/node-js-vs.aspx) (Note that we recommend using the Node.js “LTS” versions rather than the “Stable” versions since sometimes NTVS doesn’t work with newer Node.js versions.)\r\n\r\n1. Once that’s done, you should be able to open Visual Studio and then create new project: *New -> Project -> Installed, Templates, TypeScript, Node.js -> From Existing Node.js code*.\r\n\r\n![NewTypeScriptNodeJsExistingProject][NewTypeScriptNodeJsExistingProject]\r\n\r\n1. Then open the properties on your typescript file and set the TestFramework property to “mocha”.\r\n\r\n![FileSetTestFrameworkPropertyMocha][FileSetTestFrameworkPropertyMocha]\r\n\r\n1. Once that is done you should be able to build and then see your test in the test explorer.  If you don’t see your tests, then make sure you don’t have any build errors.  You can also try restarting Visual Studio to see if that makes them show up.  \r\n\r\n[FileSetTestFrameworkPropertyMocha]: /docs/media/msportalfx-test/FileSetTestFrameworkPropertyMocha.png\r\n[NewTypeScriptNodeJsExistingProject]: /docs/media/msportalfx-test/NewTypeScriptNodeJsExistingProject.png\r\n\r\n\r\n<a name=\"msportalfx-test-side-loading-a-local-extension-during-the-test-session\"></a>\n## Side loading a local extension during the test session\r\n\r\nYou can use MsPortalFx-Test to write end to end tests that side load your local extension in the Portal. You can do this by specifying additional options in the Portal object. If you have not done so, please take a look at the *Installation* section of [this page](https://auxdocs.azurewebsites.net/en-us/documentation/articles/portalfx-testing-getting-started) to learn how to get started with MsPortalFx-Test. \r\n\r\nWe'll write a test that verifies that the Browse experience for our extension has been correctly implemented. But before doing that we should have an extension to test and something to browse to, so let's work on those first.\r\n\r\n**To prepare the target extension and resource:**\r\n\r\n1. Create a new Portal extension in Visual Studio following [these steps](https://auxdocs.azurewebsites.net/en-us/documentation/articles/portalfx-creating-extensions) and then hit CTRL+F5 to get it up and running. For the purpose of this example we named the extension 'LocalExtension' and we made it run in the default [https://localhost:44300](https://localhost:44300) address. \r\n\r\n1. That should have taken you to the Portal, so sign in and then go to New --> Marketplace --> Local Development --> LocalExtension --> Create.\r\n\r\n1. In the **My Resource** blade, enter **theresource** as the resource name, complete the required fields and hit Create.\r\n\r\n1. Wait for the resource to get created.\r\n\r\n\r\n**To write a test verifies the Browse experience while side loading your local extension:**\r\n\r\n1. Create a new TypeScript file called **localextensiontests.ts**.\r\n \r\n1. In the created file, import the MsPortalFx-Test module and layout the Mocha test:\r\n\r\n\t```ts\r\n\t/// <reference path=\"./typings/index.d.ts\" />\r\n\t\r\n\timport assert = require('assert');\r\n\timport testFx = require('MsPortalFx-Test');\r\n\timport until = testFx.until;\r\n\t\r\n\tdescribe('Local Extension Tests', function () {\r\n\t\tthis.timeout(0);\r\n\t\r\n\t\tit('Can Browse To The Resource Blade', () => {\r\n\t\t\t\r\n\t\t});\r\n\t});\r\n\t```\r\n\r\n1. In the **Can Browse To The Resource Blade** test body,  specify the credentials for the test session (replace with your actual Azure credentials):\r\n \r\n\t```ts\r\n\t// Hardcoding credentials to simplify the example, but you should never hardcode credentials\r\n\ttestFx.portal.portalContext.signInEmail = 'johndoe@outlook.com';\r\n\ttestFx.portal.portalContext.signInPassword = '12345';\r\n\t```\r\n\r\n1. Now, use the **features** option of the portal.PortalContext object to enable the **canmodifyextensions** feature flag and use the **testExtensions** option to specify the name and address of the local extension to load:\r\n \r\n\t```ts\r\n\ttestFx.portal.portalContext.features = [{ name: \"feature.canmodifyextensions\", value: \"true\" }];\r\n\ttestFx.portal.portalContext.testExtensions = [{ name: 'LocalExtension', uri: 'https://localhost:44300/' }];\r\n\t```\r\n\r\n1. Let's also declare a variable with the name of the resource that the test will browse to:\r\n\r\n\t```ts\r\n\tlet resourceName = 'theresource';\r\n\t```\r\n \r\n1. To be able to open the browse blade for our resource we'll need to know three things: The resource provider, the resource type and the title of the blade. You can get all that info from the Browse PDL implementation of your extension. In this case the resource provider is **Microsoft.PortalSdk**, the resource type is **rootResources** and the browse blade title is **My Resources**. With that info we can call the **openBrowseBlade** function of the Portal object:\r\n\r\n\t```ts\r\n\treturn testFx.portal.openBrowseBlade('Microsoft.PortalSdk', 'rootResources', 'My Resources')\r\n\t```\r\n \r\n1. From there on we can use the returned Blade object to filter the list, verify that only one row remains after filtering and select that row:\r\n\t\r\n\t```ts\r\n\t.then((blade) => {\r\n        return testFx.portal.wait<testFx.Controls.GridRow>(() => {\r\n            return blade.grid.rows.count().then((count) => {\r\n                return count === 1 ? blade.grid.rows.first() : null;\r\n            });\r\n        }, null, \"Expected only one row matching '\" + resourceName + \"'.\");\r\n    }).then((row) => {\r\n        return row.click();\t\t\t\t\r\n\t})\r\n\t```\r\n\r\n1. And finally we'll verify the correct blade opened and will close the Portal when done:\r\n\r\n\t```ts\r\n\t.then(() => {\r\n\t\tlet summaryBlade = testFx.portal.blade({ title: resourceName });\r\n\t\treturn testFx.portal.wait(until.isPresent(summaryBlade));\r\n\t}).then(() => {\r\n\t\treturn testFx.portal.quit();\r\n\t});\r\n\t```\r\n\r\n1. Here for the complete test:\r\n\r\n```ts\r\n/// <reference path=\"./typings/index.d.ts\" />\r\n\r\nimport assert = require('assert');\r\nimport testFx = require('MsPortalFx-Test');\r\nimport until = testFx.until;\r\n\r\ndescribe('Local Extension Tests', function () {\r\n    this.timeout(0);\r\n\r\n    it('Can Browse To The Resource Blade', () => {\r\n        // Hardcoding credentials to simplify the example, but you should never hardcode credentials\r\n        testFx.portal.portalContext.signInEmail = 'johndoe@outlook.com';\r\n        testFx.portal.portalContext.signInPassword = '12345';\r\n        testFx.portal.portalContext.features = [{ name: \"feature.canmodifyextensions\", value: \"true\" }];\r\n        testFx.portal.portalContext.testExtensions = [{ name: 'LocalExtension', uri: 'https://localhost:44300/' }];\r\n        \r\n        let resourceName = 'theresource';\r\n        \r\n        return testFx.portal.openBrowseBlade('Microsoft.PortalSdk', 'rootResources', 'My Resources').then((blade) => {\r\n            return blade.filterItems(resourceName);\r\n        }).then((blade) => {\r\n            return testFx.portal.wait<testFx.Controls.GridRow>(() => {\r\n                return blade.grid.rows.count().then((count) => {\r\n                    return count === 1 ? blade.grid.rows.first() : null;\r\n                });\r\n            }, null, \"Expected only one row matching '\" + resourceName + \"'.\");\r\n        }).then((row) => {\r\n            return row.click();\t\t\t\t\r\n        }).then(() => {\r\n            let summaryBlade = testFx.portal.blade({ title: resourceName });\r\n            return testFx.portal.wait(until.isPresent(summaryBlade));\r\n        }).then(() => {\r\n            return testFx.portal.quit();\r\n        });\r\n    });\r\n});\r\n```\r\n\r\n**To add the required configuration and run the test:**\r\n\r\n1. Create a file named **config.json** next to localextensiontests.ts. Paste this in the file:\r\n\r\n\t```json\r\n\t{\r\n\t  \"capabilities\": {\r\n\t    \"browserName\": \"chrome\"\r\n\t  },\r\n\t  \"portalUrl\": \"https://portal.azure.com\"\r\n\t}\r\n\t```\t\t\r\n\r\n1. Compile your TypeScript test file:\r\n\r\n\t\ttsc localextensiontests.ts --module commonjs\r\n\r\n1. Run Mocha against the generated JavaScript file:\r\n\r\n\t\tnode_modules\\.bin\\mocha localextensiontests.js\r\n\r\nThe following output will be sent to your console as the test progresses:\r\n\r\n\t  Local Extension Tests\r\n\tOpening the Browse blade for the Microsoft.PortalSdk/rootResources resource type...\r\n\tStarting the ChromeDriver process...\r\n\tPerforming SignIn...\r\n\tWaiting for the Portal...\r\n\tWaiting for the splash screen...\r\n\tAllowing trusted extensions...\r\n\tWaiting for the splash screen to go away...\r\n\tApplying filter 'theresource'...\r\n\t    √ Can Browse To The Resource Blade (22872ms)\r\n\t\r\n\t\r\n\t  1 passing (23s)\r\n\r\n<a name=\"msportalfx-test-running\"></a>\n## Running\r\n\r\n<a name=\"msportalfx-test-running-in-dev\"></a>\n### In Dev\r\n\r\n<a name=\"msportalfx-test-running-in-dev-from-vs\"></a>\n#### From VS\r\n\r\n<a name=\"msportalfx-test-running-in-dev-from-cmdline\"></a>\n#### From cmdline\r\n\r\n<a name=\"msportalfx-test-running-ci\"></a>\n### CI\r\n\r\n<a name=\"msportalfx-test-running-ci-cloudtest\"></a>\n#### Cloudtest\r\n\r\nRunning mocha nodejs tests in cloudtest requires a bit of engineering work to set up the test VM. Unfortunetly, the nodejs test adaptor cannot be used with vs.console.exe since it requires a full installation of Visual Studio which is absent on the VMs. Luckily, we can run a script to set up our environment and then the Exe Execution type for our TestJob against the powershell/cmd executable.\r\n\r\n<a name=\"msportalfx-test-running-ci-cloudtest-environment-setup\"></a>\n##### Environment Setup\r\nNodejs (and npm) is already installed on the cloudtest VMs. Chrome is not installed by default, so we can include the chrome executable in our build drop for quick installation.\r\n\r\nsetup.bat\r\n```\r\ncd UITests\r\ncall npm install --no-optional\r\ncall npm install -g typescript\r\ncall \"%APPDATA%\\npm\\tsc.cmd\"\r\ncall chrome_installer.exe /silent /install\r\nexit 0\r\n```\r\n\r\n<a name=\"msportalfx-test-running-ci-cloudtest-running-tests\"></a>\n##### Running Tests\r\nUse the Exe execution type in your TestJob to specify the powershell (or cmd) exe. Then, point to a script which will run your tests:\r\n\r\nTestGroup.xml\r\n```\r\n<TestJob Name=\"WorkspaceExtension.UITests\" Type=\"SingleBox\" Size=\"Small\" Tags=\"Suite=Suite0\">\r\n    <Execution Type=\"Exe\" Path=\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" Args='[SharedWorkingDirectory]\\UITests\\RunTests.ps1' />\r\n</TestJob>\r\n```\r\n\r\nAt the end of your script you will need to copy the resulting trx file to the TestResults folder where Cloudtest expects to pick it up from. To generate a trx file, we used the mocha-trx-reporter npm package. To pass secrets to cloudtest, you can either use test secretstore which has been configured to use a certificate installed on all cloudtest VMs for particular paths, or one of the other solutions shown [here](https://stackoverflow.microsoft.com/questions/11589/getting-ais-token-in-cloudtest-machine/11665#11665)\r\n\r\nRunTests.ps1\r\n```\r\ncd ..\\UITests\r\n\r\n$env:USER_EMAIL = ..\\StashClient\\StashClient.exe -env:test pgetdecrypted -name:Your/Secret/Path -cstorename:My -cstorelocation:LocalMachine -cthumbprint:0000000000000000000000000000000000000000\r\n\r\n$env:USER_PASSWORD = ..\\StashClient\\StashClient.exe -env:test pgetdecrypted -name:Your/Secret/Path -cstorename:My -cstorelocation:LocalMachine -cthumbprint:0000000000000000000000000000000000000000\r\n\r\n$env:TEST_ENVIRONMENT = [environment]::GetEnvironmentVariable(\"TEST_ENVIRONMENT\",\"Machine\")\r\n\r\nmocha WorkspaceTests.js --reporter mocha-trx-reporter --reporter-file ./TestResults/result.trx\r\n\r\nxcopy TestResults\\* ..\\TestResults\r\n```\r\n\r\nTo pass non-secret parameters to your cloudtest session (and the msportalfx-tests) use the props switch when kicking off a cloudtest session. The properties will become machine level environment variables on your cloudtest VM. Once these are set as environment variables of the session, you can use nconf to pick them up in your UI test configuration.\r\n```\r\nct -t \"amd64\\CloudTest\\TestMap.xml\" -tenant Default -BuildId \"GUID\" -props worker:TEST_ENVIRONMENT=canary\r\n```\r\n\r\n<a name=\"msportalfx-test-running-ci-windows-azure-engineering-system-waes\"></a>\n#### Windows Azure Engineering System (WAES)\r\n\r\nSee [WAES](http://aka.ms/WAES)\r\n\r\n<a name=\"msportalfx-test-running-ci-jenkins\"></a>\n#### Jenkins\r\n\r\n<a name=\"msportalfx-test-running-ci-how-to-setup-test-run-parallelization\"></a>\n#### How to setup test run parallelization\r\n\r\n<a name=\"msportalfx-test-debugging\"></a>\n## Debugging\r\n\r\n<a name=\"msportalfx-test-debugging-debug-tests-101\"></a>\n### debug tests 101\r\n\r\n<a name=\"msportalfx-test-debugging-debugging-tests-in-vs-code\"></a>\n### debugging tests in VS Code\r\nIf you run mocha with the --debug-brk flag, you can press F5 and the project will attach to a debugger. \r\n\r\n<a name=\"msportalfx-test-debugging-checking-the-result-of-the-currently-running-test-in-code\"></a>\n### Checking the result of the currently running test in code\r\n\r\nSometimes it is useful to get the result of the currently running test, for example: you want to take a screenshot only when the test fails.\r\n\r\n```ts\r\n\r\n    afterEach(function () {\r\n        if (this.currentTest.state === \"failed\") {\r\n            return testSupport.GatherTestFailureDetails(this.currentTest.title);\r\n        }\r\n    });\r\n\r\n```\r\n\r\nOne thing to watch out for in typescript is how lambda functions, \"() => {}\", behave.  Lambda functions (also called \"fat arrow\" sometimes) in Typescript capture the \"this\" variable from the surrounding context.  This can cause problems when trying to access Mocha's current test state.  See [arrow functions](https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html) for details.\r\n\r\n<a name=\"msportalfx-test-debugging-how-to-take-a-screenshot-of-the-browser\"></a>\n### How to take a screenshot of the browser\r\n\r\nThis is an example of how to take a screenshot of what is currently displayed in the browser.  \r\n\r\n```ts\r\n//1. import test fx\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n    var screenshotPromise = testFx.portal.takeScreenshot(ScreenshotTitleHere);\r\n```\r\n\r\nTaking a screenshot when there is a test failure is a handy way to help diagnose issues.  If you are using the mocha test runner, then you can do the following to take a screenshot whenever a test fails:\r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n    afterEach(function () {\r\n        if (this.currentTest.state === \"failed\") {\r\n            return testSupport.GatherTestFailureDetails(this.currentTest.title);\r\n        }\r\n    });\r\n\r\n```\r\n\r\n<a name=\"msportalfx-test-debugging-how-to-capture-browser-console-output\"></a>\n### How to capture browser console output\r\n\r\nWhen trying to identify reasons for failure of a test its useful to capture the console logs of the browser that was used to execute your test. You can capture the logs at a given level e.g error, warning, etc or at all levels using the LogLevel parameter. The following example demonstrates how to call getBrowserLogs and how to work with the result. getBrowserLogs will return a Promise of string[] which when resolved will contain the array of logs that you can view during debug or write to the test console for later analysis.    \r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        await testFx.portal.goHome(20000);\r\n        const logs = await testFx.portal.getBrowserLogs(LogLevel.All);\r\n        assert.ok(logs.length > 0, \"Expected to collect at least one log.\");\r\n\r\n```\r\n\r\n<a name=\"msportalfx-test-debugging-callstack\"></a>\n### Callstack\r\n\r\n<a name=\"msportalfx-test-debugging-test-output-artifacts\"></a>\n### Test output artifacts\r\n\r\n<a name=\"msportalfx-test-localization\"></a>\n## Localization\r\n\r\n<a name=\"msportalfx-test-user-management\"></a>\n## User Management\r\n\r\n<a name=\"msportalfx-test-configuration\"></a>\n## Configuration\r\n\r\n<a name=\"msportalfx-test-configuration-configuration-options\"></a>\n### Configuration options\r\nThis document will describe the behavior and list common configuration settings used by the MsPortalFx-Test framework.\r\n\r\n<a name=\"msportalfx-test-configuration-configuration-options-behavior\"></a>\n#### Behavior\r\nThe test framework will search for a config.json in the current working directory (usually the directory the test is invoked from).  If no config.json is found then it will check the parent folder for a config.json (and so on...).\r\n\r\n<a name=\"msportalfx-test-configuration-configuration-options-portalcontext\"></a>\n#### PortalContext\r\nThis file contains a list of configuration values used by the test framework for context when running tests against the portal.\r\nThese values are mutable to allow test writers to set the values in cases where they prefer not to store them in the config.json.\r\n**We strongly recommend that passwords should not be stored in the config.json file.**\r\n\r\n```ts\r\n﻿import TestExtension = require(\"./TestExtension\");\r\nimport Feature = require(\"./Feature\");\r\nimport BrowserResolution = require(\"./BrowserResolution\");\r\nimport Timeout = require(\"./Timeout\");\r\n\r\n/**\r\n * Represents The set of options used to configure a Portal instance.\r\n */\r\ninterface PortalContext {\r\n    /**\r\n     * The set of capabilities enabled in the webdriver session.\r\n     * For a list of available capabilities, see https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities\r\n     */\r\n    capabilities: {\r\n        /**\r\n         * The name of the browser being used; should be one of {chrome}\r\n         */\r\n        browserName: string;\r\n\r\n        /**\r\n         * Chrome-specific supported capabilities.\r\n         */\r\n        chromeOptions: {\r\n            /**\r\n             * List of command-line arguments to use when starting Chrome.\r\n             */\r\n            args: string[]\r\n        };\r\n\r\n        /**\r\n         * The desired starting browser's resolution in pixels.\r\n         */\r\n        browserResolution: BrowserResolution;\r\n    };\r\n    /**\r\n     * The path to the ChromeDriver binary.\r\n     */\r\n    chromeDriverPath?: string;\r\n    /**\r\n     * The url of the Portal.\r\n     */\r\n    portalUrl: string;\r\n    /**\r\n     * The url of the page where signin is performed.\r\n     */\r\n    signInUrl?: string;\r\n    /**\r\n     * Email of the user used to sign in to the Portal.\r\n     */\r\n    signInEmail?: string;\r\n    /**\r\n     * Password of the user used to sign in to the Portal.\r\n     */\r\n    signInPassword?: string;\r\n    /**\r\n     * The set of features to enable while navigating within the Portal.\r\n     */\r\n    features?: Feature[];\r\n    /**\r\n     * The list of patch files to load within the Portal.\r\n     */\r\n    patches?: string[];\r\n    /**\r\n     * The set of extensions to side load while navigating within the Portal.\r\n     */\r\n    testExtensions?: TestExtension[];\r\n    /**\r\n     * The set of timeouts used to override the default timeouts.\r\n     * e.g.\r\n     * timeouts: {\r\n     *      timeout: 15000  //Overrides the default short timeout of 10000 (10 seconds).\r\n     *      longTimeout: 70000 //Overrides the default long timetout of 60000 (60 seconds).\r\n     * }\r\n     */\r\n    timeouts?: Timeout;\r\n}\r\n\r\nexport = PortalContext;\r\n\r\n```\r\n\r\n<a name=\"msportalfx-test-configuration-configuration-options-running-tests-against-the-dogfood-environment\"></a>\n#### Running tests against the Dogfood environment\r\nIn order to run tests against the Dogfood test environment, you will need to update the follow configuration settings in the config.json:\r\n\r\n```json\r\n{\r\n  portalUrl: https://df.onecloud.azure-test.net/,\r\n  signInUrl: https://login.windows-ppe.net/\r\n}\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios\"></a>\n## Scenarios\r\n\r\n<a name=\"msportalfx-test-scenarios-create\"></a>\n### Create\r\n\r\n<a name=\"msportalfx-test-scenarios-create-opening-the-create-blade-from-a-deployed-gallery-package\"></a>\n#### Opening the create blade from a deployed gallery package\r\n\r\nTo open/navigate to the create blade a gallery package previously deployed to the Azure Marketplace you can use `portal.openGalleryCreateBlade`.  The returned promise will resolve with the CreateBlade defined by that gallery package. \r\n\r\n```ts \r\nimport TestFx = require('MsPortalFx-Test');\r\n...\r\nFromLocalPackage\r\n        await testFx.portal.openGalleryCreateBladeFromLocalPackage(\r\n            extensionResources.samplesExtensionStrings.Engine.engineNoPdl,     //title of the item in the marketplace e.g \"EngineNoPdlV1\"\r\n            extensionResources.samplesExtensionStrings.Engine.createEngine, //the title of the blade that will be opened e.g \"Create Engine\"\r\n            10000);                                                         //an optional timeout to wait on the blade\r\n        await createEngineBlade.checkFieldValidation();\r\n        await createEngineBlade.fillRequiredFields(resourceName, \"800cc\", \"type1\", subscriptionName, resourceName, locationDescription);\r\n        await createEngineBlade.reviewAndCreateButton.click();\r\n        await testFx.portal.wait(async () => !await createEngineBlade.createButton.hasClass(CssClassNames.Controls.buttonDisabled));\r\n        await createEngineBlade.createButton.click();\r\n        await testFx.portal.wait(\r\n            until.isPresent(testFx.portal.blade({ title: `${extensionResources.samplesExtensionStrings.Engine.engineNoPdl} - Overview` })),\r\n            120000,\r\n            \"The resource blade was not opened, could be deployment timeout.\");\r\n        \r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-create-opening-the-create-blade-from-a-local-gallery-package\"></a>\n#### Opening the create blade from a local gallery package\r\n\r\nTo open/navigate to the create blade a local gallery package that has been side loaded into the portal along with your extension you can use `portal.openGalleryCreateBladeFromLocalPackage`.  The returned promise will resolve with the CreateBlade defined by that gallery package. \r\n\r\n```ts \r\nimport TestFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        await testFx.portal.openGalleryCreateBladeFromLocalPackage(\r\n            extensionResources.samplesExtensionStrings.Engine.engineNoPdl,     //title of the item in the marketplace e.g \"EngineNoPdlV1\"\r\n            extensionResources.samplesExtensionStrings.Engine.createEngine, //the title of the blade that will be opened e.g \"Create Engine\"\r\n            10000);                                                         //an optional timeout to wait on the blade\r\n        await createEngineBlade.checkFieldValidation();\r\n        await createEngineBlade.fillRequiredFields(resourceName, \"800cc\", \"type1\", subscriptionName, resourceName, locationDescription);\r\n        await createEngineBlade.reviewAndCreateButton.click();\r\n        await testFx.portal.wait(async () => !await createEngineBlade.createButton.hasClass(CssClassNames.Controls.buttonDisabled));\r\n        await createEngineBlade.createButton.click();\r\n        await testFx.portal.wait(\r\n            until.isPresent(testFx.portal.blade({ title: `${extensionResources.samplesExtensionStrings.Engine.engineNoPdl} - Overview` })),\r\n            120000,\r\n            \"The resource blade was not opened, could be deployment timeout.\");\r\n        \r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-create-validation-state\"></a>\n#### Validation State\r\n\r\n<a name=\"msportalfx-test-scenarios-create-get-the-validation-state-of-fields-on-your-create-form\"></a>\n#### Get the validation state of fields on your create form\r\n\r\n`FormElement` exposes two useful functions for working with the ValidationState of controls. \r\n\r\nThe function `getValidationState` returns a promise that resolves with the current state of the control and can be used as follows\r\n\r\n```ts\r\nimport TestFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        //click the createButton on the create blade to fire validation\r\n        await this.createButton.click();\r\n        //get the validation state of the control\r\n        await this.element(By.chained(By.className(\"fxs-blade-statusbg\"), By.className(\"fxs-bg-error\")));\r\n        await this.element(By.className(tabClass)).click();\r\n        const state = await this.primaryEngine.getValidationState();\r\n        //assert state matches expected\r\n        assert.equal(state, testFx.Constants.ControlValidationState.invalid, \"name should have invalid state\");\r\n        \r\n...\r\n\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-create-wait-on-a-fields-validation-state\"></a>\n#### Wait on a fields validation state\r\n\r\nThe function `waitOnValidationState(someState, optionalTimeout)` returns a promise that resolves when the current state of the control is equivalent to someState supplied.  This is particularly useful for scenarions where you may be performing serverside validation and the control remains in a pending state for the duration of the network IO.\r\n\r\n```ts\r\nimport TestFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        //change the value to initiate validation\r\n        await this.element(By.className(tabClass)).click();\r\n        await this.primaryEngine.sendKeys(nameTxt + webdriver.Key.TAB);\r\n        //wait for the control to reach the valid state\r\n        await this.primaryEngine.waitOnValidationState(testFx.Constants.ControlValidationState.valid);\r\n...\r\n\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-browse\"></a>\n### Browse\r\n\r\n<a name=\"msportalfx-test-scenarios-browse-how-to-test-the-context-menu-in-browse-shows-your-extensions-commands\"></a>\n#### How to test the context menu in browse shows your extensions commands?\r\n\r\nThere is a simple abstraction available in MsPortalFx.Tests.Browse.  You can use it as follows: \r\n\r\n```ts\r\n//1. import test fx\r\nimport TestFx = require('MsPortalFx-Test');\r\n\r\n...\r\n\r\nit(\"Can Use Context Click On Browse Grid Rows\", () => {\r\n    ...\r\n//2. Setup an array of commands that are expected to be present in the context menu\r\n//  and call the contextMenuContainsExpectedCommands on Tests.Browse. \r\n    //  The method will assert expectedCommands match what was displayed  \r\n    \r\n        const expectedContextMenuCommands: Array<string> = [\r\n            PortalFxResources.pinToDashboard,\r\n            extensionResources.hubsExtension.resourceGroups.deleteResourceGroupLabel\r\n        ];\r\n        await testFx.Tests.Browse.contextMenuContainsExpectedCommands(\r\n            resourceProvider, // the resource provider e.g \"microsoft.classicCompute\"\r\n            resourceType, // the resourceType e.g \"domainNames\"\r\n            resourceBladeTitle, // the resource blade title \"Cloud services (classic)\"\r\n            2, // Invoke context menu with right click on a column that does not contain links\r\n            expectedContextMenuCommands) \r\n});\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-browse-how-to-test-the-grid-in-browse-shows-the-expected-default-columns-for-your-extension-resource\"></a>\n#### How to test the grid in browse shows the expected default columns for your extension resource\r\n\r\nThere is a simple abstraction available in MsPortalFx.Tests.Browse.  You can use it as follows:\r\n\r\n```ts\r\n//1. import test fx\r\nimport TestFx = require('MsPortalFx-Test');\r\n\r\n...\r\n\r\nit(\"Browse contains default columns with expected column header\", () => {\r\n // 2. setup an array of expectedDefaultColumns to be shown in browse\r\n\r\n    const expectedDefaultColumns: Array<testFx.Tests.Browse.ColumnTestOptions> =\r\n        [\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.name },\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.subscription },\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.location },\r\n        ];\r\n\r\n// 3. call the TestFx.Tests.Browse.containsExpectedDefaultColumns function.\r\n// This function this will perform a reset columns action in browse and then assert\r\n// the expectedDefaultColumns match what is displayed\r\n\r\n        return testFx.Tests.Browse.containsExpectedDefaultColumns(\r\n            resourceProvider,\r\n            resourceType,\r\n            resourceBladeTitle,\r\n            expectedDefaultColumns);\r\n}\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-how-to-test-the-grid-in-browse-shows-additional-extension-resource-columns-that-are-selected\"></a>\n### How to test the grid in browse shows additional extension resource columns that are selected\r\n\r\nThere is a simple abstraction available in MsPortalFx.Tests.Browse that asserts extension resource specific columns can be selected in browse and that after selection they show up in the browse grid.  \r\nthe function is called `canSelectResourceColumns`. You can use it as follows:\r\n\r\n```ts\r\n// 1. import test fx\r\nimport TestFx = require('MsPortalFx-Test');\r\n\r\n...\r\n\r\nit(\"Can select additional columns for the resourcetype and columns have expected title\", () => {\r\n\r\n// 2. setup an array of expectedDefaultColumns to be shown in browse\r\n\r\n    const expectedDefaultColumns: Array<testFx.Tests.Browse.ColumnTestOptions> =\r\n        [\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.name },\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.subscription },\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.location },\r\n        ];\r\n\r\n// 3. setup an array of columns to be selected and call the TestFx.Tests.Browse.canSelectResourceColumns function.\r\n// This function this will perform:\r\n//   - a reset columns action in browse \r\n//   - select the provided columnsToSelect\r\n//   - assert that brows shows the union of \r\n// the expectedDefaultColumns match what is displayed expectedDefaultColumns and columnsToSelect\r\n\r\n        const columnsToSelect: Array<testFx.Tests.Browse.ColumnTestOptions> =\r\n            [\r\n                { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.locationId },\r\n                { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.resourceGroupId },\r\n                { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.status },\r\n                { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.subscriptionId },\r\n            ];\r\n        return testFx.Tests.Browse.canSelectResourceColumns(\r\n            resourceProvider,\r\n            resourceType,\r\n            resourceBladeTitle,\r\n            expectedDefaultColumns,\r\n            columnsToSelect); \r\n}\r\n```\r\n\r\n\r\n<a name=\"msportalfx-test-scenarios-blades\"></a>\n### Blades\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-blade-navigation\"></a>\n#### Blade navigation\r\n\r\nTo navigate to blades within msportalfx-test can use one of several approaches\r\n\r\n- via a deep link to the blade using the `portal.navigateToUriFragment` function e.g\r\n\r\n    ```ts\r\n    import testFx = require('MsPortalFx-Test');\r\n    ...\r\n    \r\n        const resourceName = resourcePrefix + guid.newGuid();\r\n        const createOptions = {\r\n            name: resourceName,\r\n            resourceGroup: resourceGroupName,\r\n            location: locationId,\r\n            resourceProvider: resourceProvider,\r\n            resourceType: resourceType,\r\n            resourceProviderApiVersion: resourceProviderApiVersion,\r\n            properties: {\r\n                displacement: \"600cc\",\r\n                model: \"type1\",\r\n                status: 0\r\n            }\r\n        };\r\n        const resourceId = await testSupport.armClient.createResource(createOptions);\r\n        //form deep link to the quickstart blade\r\n        await testFx.portal.navigateToUriFragment(`blade/SamplesExtension/EngineQuickStartBlade/id/${encodeURIComponent(resourceId)}`, timeouts.defaultLongTimeout);\r\n        return testFx.portal.wait(ExpectedConditions.isPresent(testFx.portal.blade({ title: resourceId, bladeType: QuickStartBlade })), timeouts.defaultLongTimeout, \"Quickstart blade was not found.\");\r\n        \r\n    ```\r\n\r\n- via clicking on another ux component that opens the blade\r\n\r\n    ```ts\r\n    // New sample needed\r\n    ```\r\n\r\n- via `portal.open*` functions open common portal blades like create, browse and resource summary blades. See [Opening common portal blades](#scenarios-opening-common-portal-blades)\r\n\r\n- via `portal.search` function to search for, and open browse and resource blades\r\n\r\n    ```ts\r\n    import testFx = require('MsPortalFx-Test');\r\n    ...\r\n    \r\n    //     const subscriptionsBlade = testFx.portal.blade({ title: testSupport.subscription });\r\n\r\n    //     testFx.portal.portalContext.features.push({ name: \"feature.resourcemenu\", value: \"true\" });\r\n    //     return testFx.portal.goHome().then(() => {\r\n    //         return testFx.portal.search(testSupport.subscription);\r\n    //     }).then((results) => {\r\n    //         return testFx.portal.wait<SearchResult>(() => {\r\n    //             const result = results[0];\r\n    //             return result.title.getText().then((title) => {\r\n    //                 return title === testSupport.subscription ? result : null;\r\n    //             });\r\n    //         });\r\n    //     }).then((result) => {\r\n    //         return result.click();\r\n    //     }).then(() => {\r\n    //         return testFx.portal.wait(until.isPresent(subscriptionsBlade));\r\n    //     }); \r\n    ```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-locating-an-open-blade\"></a>\n#### Locating an open blade\r\n\r\nThere are several approaches that can be used for locating an already opened blade use `testfx.portal.blade`.\r\n\r\n- by blade title\r\n    ```ts\r\n    \r\n        const resourceBlade = testFx.portal.blade({ title: resourceGroupName });\r\n    ```  \r\n \r\n- by using an existing blade type and its predefined locator\r\n    ```ts\r\n    \r\n                        var pickerBlade = testFx.portal.blade({ bladeType: SpecPickerBlade, title: resources.choosePricingTier });\r\n                        \r\n    ```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades\"></a>\n#### Common portal blades\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-opening-the-extensions-create-blade\"></a>\n##### Opening the extensions Create blade\r\n\r\nSee [Opening an extensions gallery package create blade](#scenarios-create-opening-an-extensions-gallery-package-create-blade)\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-opening-the-browse-blade-for-your-resource\"></a>\n##### Opening the Browse blade for your resource\r\n\r\nTo open/navigate to the Browse blade from resource type you can use `portal.openBrowseBlade`.  The returned promise will resolve with the browse blade. \r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        const blade = await testFx.portal.openBrowseBlade(resourceProvider, resourceType, resourceBladeTitle, timeouts.defaultLongTimeout);\r\n        \r\n...\r\n```\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-opening-a-resource-summary-blade\"></a>\n##### Opening a Resource Summary blade\r\n\r\nTo open/navigate to the Resource Summary blade for a specific resource you can use `portal.openResourceBlade`.  The returned promise will resolve with the Resource summary blade for the given resource. \r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        const result = await testSupport.armClient.createResourceGroup(resourceGroupName, locationId);\r\n        await testFx.portal.openResourceBlade(result.resourceGroup.id, result.resourceGroup.name, 70000);\r\n        await resourceBlade.clickCommand(extensionResources.hubsExtension.resourceGroups.deleteResourceGroupLabel);\r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-spec-picker-blade\"></a>\n##### Spec Picker Blade\r\n\r\nThe `SpecPickerBlade` can be used to select/change the current spec of a resource.  The following example demonstrates how to navigate to the spec picker for a given resource then changes the selected spec.    \r\n\r\n```ts\r\n//1. imports\r\nimport testFx = require('MsPortalFx-Test');\r\nimport SpecPickerBlade = testFx.Parts.SpecPickerBlade;\r\n\r\n\r\n        const pricingTierBlade = testFx.portal.blade({ title: extensionResources.samplesExtensionStrings.PricingTierBlade.title });\r\n        //2. Open navigate blade and select the pricing tier part.  \r\n        // Note if navigating to a resourceblade use testFx.portal.openResourceBlade and blade.element\r\n        await testFx.portal.navigateToUriFragment(\"blade/SamplesExtension/PricingTierV3Blade\", 75000);\r\n        await pricingTierBlade.waitUntilBladeAndAllTilesLoaded();\r\n        const pricingTierPart: PricingTierPart = testFx.portal.element(PricingTierPart);\r\n        await pricingTierPart.click();\r\n        //3. get a reference to the picker blade and pick a spec \r\n        var pickerBlade = testFx.portal.blade({ bladeType: SpecPickerBlade, title: extensionResources.choosePricingTier });\r\n        await pickerBlade.pickSpec(extensionResources.M);\r\n        \r\n```\r\n\r\nThere are also several API's available to make testing common functionality within browse such as context menu commands and column picking fucntionality for more details see [Browse Scenarios](#scenarios-browse).\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-properties-blade\"></a>\n##### Properties Blade\r\n\r\nNavigation to the `PropertiesBlade` is done via the resource summary blade. The following demonstrates how to navigate to the properties blade\r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n//2. navigate to the properties blade from the resource blade and check the value of one of the properties\r\n\r\n        const resourceBlade = await testFx.portal.openResourceBlade(resourceId, resourceName, 70000);\r\n        await resourceBlade.openMenuItem(PortalFxResources.properties);\r\n        const expectedPropertiesCount = 6;\r\n        await testFx.portal.wait(async () => {\r\n            const properties = resourcePropertiesParentBlade.getAllDetailBladeItems(testFx.Parts.PartProperty);\r\n            const count = await properties.count();\r\n            return count === expectedPropertiesCount;\r\n        }, null, testFx.Utils.String.format(\"Expected to have {0} properties in the Properties blade.\", expectedPropertiesCount));\r\n        const locator = new testFx.Parts.PartProperty().buildLocator({ name: PortalFxResources.nameLabel });\r\n        const property = resourcePropertiesParentBlade.detailBlade.element(locator).asType(testFx.Parts.PartProperty);\r\n        const nameProperty = await testFx.portal.wait(async () => {\r\n            const copyableLabel = property.value.element(testFx.Controls.CopyableLabel);\r\n            const present = await copyableLabel.isPresent();\r\n            const nameProperty = present && await copyableLabel.value();\r\n            return nameProperty || await property.value.getText();\r\n        });\r\n        return assert.equal(nameProperty, resourceName, testFx.Utils.String.format(\"Expected the value for the 'NAME' property to be '{0}' but found '{1}'.\", resourceName, nameProperty));\r\n        \r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-quickstart-blade\"></a>\n##### QuickStart Blade\r\n\r\nUsing a deep link you can navigate directly into a `QuickStartBlade` for a resource with `Portal.navigateToUriFragment`.\r\n   \r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        const resourceName = resourcePrefix + guid.newGuid();\r\n        const createOptions = {\r\n            name: resourceName,\r\n            resourceGroup: resourceGroupName,\r\n            location: locationId,\r\n            resourceProvider: resourceProvider,\r\n            resourceType: resourceType,\r\n            resourceProviderApiVersion: resourceProviderApiVersion,\r\n            properties: {\r\n                displacement: \"600cc\",\r\n                model: \"type1\",\r\n                status: 0\r\n            }\r\n        };\r\n        const resourceId = await testSupport.armClient.createResource(createOptions);\r\n        //form deep link to the quickstart blade\r\n        await testFx.portal.navigateToUriFragment(`blade/SamplesExtension/EngineQuickStartBlade/id/${encodeURIComponent(resourceId)}`, timeouts.defaultLongTimeout);\r\n        return testFx.portal.wait(ExpectedConditions.isPresent(testFx.portal.blade({ title: resourceId, bladeType: QuickStartBlade })), timeouts.defaultLongTimeout, \"Quickstart blade was not found.\");\r\n        \r\n```\r\n\r\nWhile deeplinking is fast it does not validate that the user can actually navigate to a QuickStartBlade via a `ResourceSummaryPart` on a resource summary blade.  The following demonstrates how to verify the user can do so.\r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n//1. model your resource summary blade which contains a resource summary part\r\n\r\nimport Blade = testFx.Blades.Blade;\r\nimport ResourceSummaryControl = testFx.Controls.Essentials;\r\n\r\nclass SummaryBlade extends Blade {\r\n    public essentialsPart = this.element(ResourceSummaryControl);\r\n}\r\n\r\n...\r\n//2. navigate to the quickstart and click a link\r\n\r\n        const expectedEndTitle = resourceGroupName + \" - \" + PortalFxResx.quickStartMenu;\r\n\r\n        const resourceBlade = await testFx.portal.openResourceBlade(resourceGroupId, resourceGroupName, timeouts.defaultLongTimeout);\r\n        //click to open the quickstart blade\r\n        await resourceBlade.openMenuItem(PortalFxResx.quickStartMenu);\r\n        await testFx.portal.wait(() => {\r\n            return testFx.portal.blade({ title: expectedEndTitle });\r\n        }, null, \"Title of the blade should update to include the Quickstart suffix\");\r\n        \r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-users-blade\"></a>\n##### Users Blade\r\n\r\nUsing a deep link you can navigate directly into the user access blade for a resource with `Portal.navigateToUriFragment`.\r\n   \r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        const resourceName = resourcePrefix + guid.newGuid();\r\n        const createOptions = {\r\n            name: resourceName,\r\n            resourceGroup: resourceGroupName,\r\n            location: locationId,\r\n            resourceProvider: resourceProvider,\r\n            resourceType: resourceType,\r\n            resourceProviderApiVersion: resourceProviderApiVersion,\r\n            properties: {\r\n                displacement: \"600cc\",\r\n                model: \"type2\",\r\n                status: 0\r\n            }\r\n        };\r\n\r\n        const resourceId = await testSupport.armClient.createResource(createOptions);\r\n        //form deep link to the quickstart blade\r\n        await testFx.portal.navigateToUriFragment(`blade/Microsoft_Azure_AD/UserAssignmentsBlade/scope/${resourceId}`, timeouts.defaultLongTimeout);\r\n        return await testFx.portal.wait(ExpectedConditions.isPresent(testFx.portal.element(testFx.Blades.UsersBlade)));\r\n        \r\n```\r\n\r\nWhile deeplinking is fast it does not validate that the user can actually navigate to a UsersBlade via a `ResourceSummaryPart` on a resource summary blade.  The following demonstrates how to verify the user can do so.\r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n//1. model your resource summary blade which contains a resource summary part\r\n\r\nimport Blade = testFx.Blades.Blade;\r\nimport ResourceSummaryControl = testFx.Controls.Essentials;\r\n\r\nclass SummaryBlade extends Blade {\r\n    public essentialsPart = this.element(ResourceSummaryControl);\r\n}\r\n\r\n...\r\n//2. navigate to the quickstart and click a link\r\n\r\n        const expectedEndTitle = resourceGroupName + \" - \" + PortalFxResx.usersMenu;\r\n\r\n        const resourceBlade = await testFx.portal.openResourceBlade(resourceGroupId, resourceGroupName, timeouts.defaultLongTimeout);\r\n        //click to open the user access blade\r\n        await resourceBlade.openMenuItem(PortalFxResx.usersMenu);\r\n        await testFx.portal.wait(() => {\r\n            return testFx.portal.blade({ title: expectedEndTitle });\r\n        }, null, \"Title of the blade should update to include the Users suffix\");\r\n        \r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-move-resource-blade\"></a>\n##### Move Resource Blade\r\n\r\nThe `MoveResourcesBlade` represents the portals blade used to move resources from a resource group to a new resource group `portal.startMoveResource` provides a simple abstraction that will iniate the move of an existing resource to a new resource group.  The following example demonstrates how to initiate the move and then wait on successful notification of completion.\r\n  \r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        await testFx.portal.startMoveResource(\r\n            {\r\n                resourceId: resourceId,\r\n                targetResourceGroup: newResourceGroup,\r\n                createNewGroup: true,\r\n                subscriptionName: subscriptionName,\r\n                timeout: 120000\r\n            });\r\n        return await testFx.portal.element(NotificationsPane).waitForNewNotification(portalFxResources.movingResourcesComplete, null, 5 * 60 * 1000);\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-blade-dialogs\"></a>\n#### Blade Dialogs\r\n\r\nOn some blades you may use commands that cause a blade dialog that generally required the user to perform some acknowledgement action.  \r\nThe `Blade` class exposes a `dialog` function that can be used to locate the dialog on the given blade and perform an action against it. \r\nThe following example demonstrates how to:\r\n\r\n- get a reference to a dialog by title\r\n- find a field within the dialog and sendKeys to it \r\n- clicking on a button in a dialog\r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        const samplesBlade = testFx.portal.blade({ title: \"Samples\", bladeType: SamplesBlade });\r\n        await testFx.portal.goHome(70000);\r\n        await testFx.portal.navigateToUriFragment(\"blade/InternalSamplesExtension/BladeWithToolbar\")","versions":{"0.2.0":{"name":"msportalfx-test","version":"0.2.0","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.19.0","dotenv":"^1.2.0","mocha":"^2.2.5","nconf":"^0.7.2","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14"},"scripts":{"prepublish":"tsc.cmd"},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","gitHead":"1f6c988f27332fad2da3bed67121e91ed96b5e9f","_id":"msportalfx-test@0.2.0","_shasum":"c04ba4721f0d5a8ef57c27a4e7106078a2720fc7","_from":".","_npmVersion":"3.3.2","_nodeVersion":"0.12.7","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"c04ba4721f0d5a8ef57c27a4e7106078a2720fc7","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.0.tgz","integrity":"sha512-NxA1DUnEaLc3fuWaBBqsI8SzJnPC1zNeVdAG57kbbRnVcupxfRmmTBXWsRrer4C51ZnYY4IoKIbM+8w/Lxzp/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpkaZYw5C9Ixx7t9DIyBCyuF6RaFKzFf0pURVttWfdrgIhAOrNOw0RtCsr5y1mNjhqiV1J9amZJC9vhwP6sBSi26WE"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.1":{"name":"msportalfx-test","version":"0.2.1","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1","nconf":"^0.7.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.19.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14"},"scripts":{"prepublish":"tsc.cmd"},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","gitHead":"7295dc92cde19c35c3ddfe4ea1dbbea224b213c6","_id":"msportalfx-test@0.2.1","_shasum":"f93d89a9b686dc85f12163757ffcdc7b0599a874","_from":".","_npmVersion":"3.3.2","_nodeVersion":"0.12.7","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"f93d89a9b686dc85f12163757ffcdc7b0599a874","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.1.tgz","integrity":"sha512-Qmv7mbrR9wWGmXLfE0S9Xd/Co/aT2NJx6Tz4WuCXPKnMoUM/UhsWAQZqY1nyL5B/3/LCMG2wuylPtCpMZI56Lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE1aaJl47y/KwZ3+qmafdVtb3aGczs5VQqFqtmksECdpAiEA35Jc4sRxxYB9qUHfFXrCq5aXVdqO1oFWJxuPiRTo4LE="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.2":{"name":"msportalfx-test","version":"0.2.2","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1","nconf":"^0.7.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.19.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14"},"scripts":{"prepublish":"tsc.cmd"},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","gitHead":"311b97303fad197d360ed90b5a25d63c5cc14380","_id":"msportalfx-test@0.2.2","_shasum":"b00160927ddd8682284389c722648b6a5e4cac71","_from":".","_npmVersion":"3.3.2","_nodeVersion":"0.12.7","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"b00160927ddd8682284389c722648b6a5e4cac71","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.2.tgz","integrity":"sha512-Vg6uvaOkORi6LCrV7Du5GqJHR3+RElGfEuT4+okP2PDqgHRych7CswvR8EhfQRYy21wYM4k6hz68oSKUnxyeiw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzXe4w07Uhdt74v/oPOkpZ+k4NTfO9+r4zl+8xGtHkGgIgCqIpAboH63lak/FUitpo0zlaz2uSNj8xzuEIU6SVkQU="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.3":{"name":"msportalfx-test","version":"0.2.3","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1","nconf":"^0.7.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.19.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14"},"scripts":{"prepublish":"tsc.cmd"},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","gitHead":"ea720487983ef535f275d4e635aa97a754c1060b","_id":"msportalfx-test@0.2.3","_shasum":"a892d03096ce5adbc6a5795da6ad5c927162080b","_from":".","_npmVersion":"3.3.2","_nodeVersion":"0.12.7","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"a892d03096ce5adbc6a5795da6ad5c927162080b","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.3.tgz","integrity":"sha512-JDuA5N8PeuzIGYGyAmiQf7qDQa7HY/dUQJ9Qw+99pJMyCcR8WslRJIG21aKaj9Ld6GseITPDdTjYYTDYyBu6pQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCE0Qys+9A5uoX5wD/Vn/9siOWeh4xSbrRFvFEgwrioxQIgWlsHqWol7Aiv68IWjeSshdQO6vWgH/QcCuYJnlxPPi0="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.4":{"name":"msportalfx-test","version":"0.2.4","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1","nconf":"^0.7.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.19.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14"},"scripts":{"prepublish":"tsc.cmd"},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"826610d7e00244560f19569709437582e974d062","_id":"msportalfx-test@0.2.4","_shasum":"85548e224f49d03a70c7155a435e06fad4919446","_from":".","_npmVersion":"3.3.2","_nodeVersion":"0.12.7","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"85548e224f49d03a70c7155a435e06fad4919446","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.4.tgz","integrity":"sha512-zUoWgTgkSOnn+3An/b/F1HpKEpdTOFekDoHxUI6ZjQuJqHD7hVq7f+JoiXXlPAc673xmP6fKhAhL7WI5lwUYmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEUXjLT5WgnonacuxL9MRwLkDDPPpzjQy0AOq5soX2NQAiEAhyfONN+Pr1ImwHnyil5wzmorlrhzTv89J5WK+j0WfiI="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.5":{"name":"msportalfx-test","version":"0.2.5","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1","nconf":"^0.7.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.19.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14"},"scripts":{"prepublish":"tsc.cmd"},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"c8f850a626510dbaf5357a100d10c0b56a3e2d0a","_id":"msportalfx-test@0.2.5","_shasum":"3eea7a30b86bc526c9e3a6cd1d30a100bd2a4463","_from":".","_npmVersion":"3.3.2","_nodeVersion":"0.12.7","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"3eea7a30b86bc526c9e3a6cd1d30a100bd2a4463","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.5.tgz","integrity":"sha512-HN6omk2iqMsnj/M4T6AgptkhK7/Z5Nl/z7ToeXwElmVewIyRzPzm1LHO1/Nn60Ye/wcBW7WElUrnRhPWR0HN/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBtnftMUloEtYcRM0cdCmHQlFE48i1rW3IQDsVhCdl0IAiEAqbZpr98lAv3wr2dJDuejCa0I7qgor5yA+rT6RVVpPwA="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.6":{"name":"msportalfx-test","version":"0.2.6","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1","nconf":"^0.7.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.19.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14"},"scripts":{"prepublish":"tsc.cmd"},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"dd3985b5b95d604af3086ea2b58932fa2d919325","_id":"msportalfx-test@0.2.6","_shasum":"5510f95b51c98d4c973bb11371469a4dbe3f8126","_from":".","_npmVersion":"3.3.2","_nodeVersion":"0.12.7","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"5510f95b51c98d4c973bb11371469a4dbe3f8126","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.6.tgz","integrity":"sha512-2YgPOvQ5j9wysUpcvr+gmgB2LaQiOBiWLW43VZU4CGBBk2bEjTU2iqws2hWQq/6ai1hl4HNcdIEHyyetWSj4NA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDepT/v7JbFOJ5XoC+uv3koX6v6kDspvgC/4PW75OizBgIhAJirrHPASf7z0oVZgBASXnkU5aMwlt0DEVaWCxEZA5C8"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.7":{"name":"msportalfx-test","version":"0.2.7","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.19.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":"tsc.cmd"},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"e8bd650fb78a686ae2e9ce8d8cca8cb3b9778e40","_id":"msportalfx-test@0.2.7","_shasum":"1d495d3bc2c7f2daa49b0635511d9f2d1d392307","_from":".","_npmVersion":"3.3.2","_nodeVersion":"0.12.7","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"1d495d3bc2c7f2daa49b0635511d9f2d1d392307","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.7.tgz","integrity":"sha512-38kSkNnnW/ZAPUQptmuW9FNs9qMa0Tvc/57o77RWZVng5DsIlDd3gJWHIuI6ycHY85kCQNEb172faagaIHrxTA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHTY9Ntw37tDU7s2XSF/+Jjsr9FSPyGV24+v3jkLd3RUAiAJOZ3vBm1OfsfdAOegEW4OaX5uikmfMAp9Q5GiQP6kQg=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.8":{"name":"msportalfx-test","version":"0.2.8","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.19.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":"tsc.cmd"},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"868f606bc59a4f8f065e81bb7189fd3a3078bcdc","_id":"msportalfx-test@0.2.8","_shasum":"86851e445e6694f99884e32823af750060f8a9f6","_from":".","_npmVersion":"3.3.2","_nodeVersion":"0.12.7","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"86851e445e6694f99884e32823af750060f8a9f6","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.8.tgz","integrity":"sha512-cuCZHNKWJd3RCXe1ioGKbnIGTu00DtnWNBrdMuPltTJ/3Zn4MqDWmAm/HquTXv0JWWallKphwwUbcMciuoxhsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG46HATV2zUyAd/upIsGpQQZrxHpd3Cg1XifcXN1tRelAiA5U/UDEV9LVP1VNgMH+MpEyCRbZQx5X+Gb8reEkUP09A=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.9":{"name":"msportalfx-test","version":"0.2.9","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.12.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":"tsc.cmd"},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"942a80f9a455706415000e671546823bdc5a7f29","_id":"msportalfx-test@0.2.9","_shasum":"cfdb68e7d61ad040573b32490315c3ad13a5185d","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"cfdb68e7d61ad040573b32490315c3ad13a5185d","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.9.tgz","integrity":"sha512-aocoVs1/MFlUJhVbLSIi4aqxSpcg66jL/rxZR9IZ9eZ7A9M/vGn9p429VhNDUwGJEUJ0bitQAKwWWhMhmlOGeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQfIC/8jfTiCd562YboLAJRieso7rWmTlkE/sz8rFx5wIgROsMEvMS3z9ZMLrv77QzRfd9OcAhvDGLdSX61aKO4J0="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.10":{"name":"msportalfx-test","version":"0.2.10","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.12.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":"tsc.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"71023e7e41ed9c408544fa8d03f102cb6cfd7f63","_id":"msportalfx-test@0.2.10","_shasum":"db0479cc0a3add2a95c5211a9a71710074323311","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"db0479cc0a3add2a95c5211a9a71710074323311","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.10.tgz","integrity":"sha512-6AbroIxm7VNqf0OkhcuU0B90DzgYTTxse427R4rIEydN+zBhNFnIKLDWvkTY6zy3iDb/Nt7XLvhEXLxxfB6kOA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtoLgddG5Vw17TFLFXPF236HxuUt3Pv+Q1IfAcK+gBywIhAMza78fm/c7ywR/WbFPcVPCSmTxUbiDKQYl2Ho7YA8Xg"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.11":{"name":"msportalfx-test","version":"0.2.11","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.12.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":"tsc.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.2.11","_shasum":"fb9ba068e8839ce69504d66a3407e7dd7c829973","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"fb9ba068e8839ce69504d66a3407e7dd7c829973","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.11.tgz","integrity":"sha512-7YfRrD9Sql5fLy0R/+hi1nxbAKLFN/Kt/K5TeM6QO1PGt2szTZNtgO2IbUDcAQx+JNKGGHPw7YzcaeZzoTccXw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDVcrfJ+31a3KT/5k2CxKkdIPFn0eyihz3m3q/FZAadmAiEAgNyGoVgCaZ1C1JxcpJQi6tawZYJV7TeBgcNpYGVekjI="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.12":{"name":"msportalfx-test","version":"0.2.12","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.12.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":"tsc.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"93e1d20bd775810e9a274f1ea4c865cf26e54d9e","_id":"msportalfx-test@0.2.12","_shasum":"7543fb8b9f7759ce359502177795b73ff4e636cc","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"7543fb8b9f7759ce359502177795b73ff4e636cc","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.12.tgz","integrity":"sha512-vSaCwh+ezTmEEIJTLTEFSsDomljq3T+B+Y1b+4nNQVvZSKekpd90/nNfYWGXQgwCYZ/JstCINsFXFyEtDe2h8A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA0rH07Tx3XtrobhVleFPT+z5MATmnb/AUYYmoMmsfA2AiEAwadEr8G//LGdPsF8c3QhCUtFjphWnLnCz/V1j7i5FCg="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.2.13":{"name":"msportalfx-test","version":"0.2.13","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.12.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":"tsc.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"bfbd990b700b587d4d576cc94b4c82951a3426ec","_id":"msportalfx-test@0.2.13","_shasum":"ebf3838605203250b4779e76745865473140db7f","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"ebf3838605203250b4779e76745865473140db7f","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.2.13.tgz","integrity":"sha512-yUFKDGNarc/qD5Qc73TaYQftJL0NjcmPRXCM61dgQyII5EQK8g0jlOJ1yKpbL0VHc9uaHAZy5EjeVwMf1xVI4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF4AjzYKc6nYVf+N91AkIGj7R159CMYypUzZ+M9fTEUJAiEApY10aQ9Z4YLDgxUcP7j4pkXgKirO6I4V+RatERvgAkI="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.3.0":{"name":"msportalfx-test","version":"0.3.0","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.12.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"a5305a58fd6fc982d574f2e1dd2e8225f3cb5ecb","_id":"msportalfx-test@0.3.0","_shasum":"af1162791053976083bf4cd759a0263236348ec7","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"af1162791053976083bf4cd759a0263236348ec7","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.3.0.tgz","integrity":"sha512-7ePU0g4kRGnvGTsDgNBDXq+9qQuuw2fa/aW1LAQjOalhpJ/L31ast3MlJaiHLllfCnFjYzgaHQhIiSQbFwpDkA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0++JeJ0zcBJXYg8C/1IpVCYtr6H/sbrA/4jCJMU+OIgIgOA1FQQNJu/h0eGs0I8yKvYW/RpIMWs5yliffkWT6f8o="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.3.1":{"name":"msportalfx-test","version":"0.3.1","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.12.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"11a67c5bf933e160600eac49ff9af9205fdeec52","_id":"msportalfx-test@0.3.1","_shasum":"ecf824a4a596fa539d2cb1043a4a34eb6d66ff82","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"ecf824a4a596fa539d2cb1043a4a34eb6d66ff82","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.3.1.tgz","integrity":"sha512-YjfdQv4U8Ojwl6Jl+4qqazMKv01jLEKehqIgD9+VlISECnbESDZpq2kUiAJEjtkADGgC1aNNn9/HVDXAYcJuaQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE1BUe6frJdX0FAL3nMqCHIiceLJ8Jz5DQSZ8azWVmwfAiBE+Fy2Hqs4hx3lUsMOaidyzCTsHoxfUUVgYonU199n/w=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.3.2":{"name":"msportalfx-test","version":"0.3.2","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.12.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"80db6f02765cde97fe7a512fa3b55abbc3980823","_id":"msportalfx-test@0.3.2","_shasum":"58a0ca50f14088d736c91d647778ad9fd60f841a","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"58a0ca50f14088d736c91d647778ad9fd60f841a","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.3.2.tgz","integrity":"sha512-9jCyrZ5D8GZZZjfnod73+9N5ZKoS08B3SerVjTNwZ3FOFUXOPJo1ODBqFu0kuz2VOjHGCha02n1IL6pmQYTFTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWFZYoaDelphWd3TnIYprJszWsVO6ammHTKAGip2lbdgIhAJJWniT/Ousuw1+HSHSksKRqe/ZqlkXcFmwE/7k/Hg5s"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.3.3":{"name":"msportalfx-test","version":"0.3.3","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.12.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.3.3","_shasum":"b7f4b076bca21cb4bee428c1087c83933353c5af","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"b7f4b076bca21cb4bee428c1087c83933353c5af","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.3.3.tgz","integrity":"sha512-cl7TGrOA42GFW+6slK8KAANiG6APKzu/QpwJa+EWYNhPklW7+iT+ibYHLoAFtQWXbvjUVl2s43fUxrvOzXVrdg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpDf5sc2k9P4JynTW3bLYzieYnEsyrMSzzmSDodjArpwIhAOEu9q0pyowDwVEWQ/AE+HLvx+Ys+zzpApZTdN0TOAo2"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.3.4":{"name":"msportalfx-test","version":"0.3.4","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.46.1"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.12.0","dotenv":"^1.2.0","mocha":"^2.2.5","typescript":"^1.5.3","adal-node":"^0.1.16","azure-arm-resource":"^0.10.4","azure-common":"^0.9.14","nconf":"^0.7.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.3.4","_shasum":"e2c51f7f5add4e2370050df814737f2d12cf02bf","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"e2c51f7f5add4e2370050df814737f2d12cf02bf","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.3.4.tgz","integrity":"sha512-N9V7NY3zqeAg2uGUnzEqmQTEKBqgYqlFR2eR0TzGPptt7Vdmo4KDYm8Lg/LnY3/091BvdFonmlOuOZgbYDHKnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICK4PQKX4407T+tjsYaSu9KAPeKeIjSBGGLj+ud50flyAiAfidGUqU83nxRjAzi9Nwo5nWaSEtU6baGWvjqUJUKc0Q=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.4.0":{"name":"msportalfx-test","version":"0.4.0","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.0"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.14","chromedriver":"^2.19.0","dotenv":"^1.2.0","mocha":"^2.2.5","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.4.0","_shasum":"4f4eded91cc93be7288b0aa1cedf22696f371c43","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"4f4eded91cc93be7288b0aa1cedf22696f371c43","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.4.0.tgz","integrity":"sha512-4Pd+gGqoeJNFfMqrk9p40UUPbZJ7htDW+u5tHDudMTfKsi2iG2tIwNVAPWcZ5RhXMamAyQ4E9jOWE3tnyVPKsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDww17qlWmCtkr+jEPQN+Vt0El9am2E0GwOBgCzw7xKNgIgb38Ar7kNHI3JiW6Z2qo2wDrhUSJnNcfMnq6lldsUxXA="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.4.1":{"name":"msportalfx-test","version":"0.4.1","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.0"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.14","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.0-pre.1","mocha":"^2.2.5","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.4.1","_shasum":"ff331a20b1858366f8b1169ec961a12ad39da654","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"ff331a20b1858366f8b1169ec961a12ad39da654","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.4.1.tgz","integrity":"sha512-oTGeS/mAFLg7R1v8hr5NFNjYOfFqksrENrgGTddqvBOgbF8/whYzthXAi1Kp8ObklPG0nXbPnpTpmHGZCRFkug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID+SzJZoiXG+4IATJ2I8ohX8Sc5S53l3ipe1YGw2yYMTAiBDZkRZ+DMkZkZK6T2UJK2yXi/XhZkR598ej99XrEc3lg=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.4.2":{"name":"msportalfx-test","version":"0.4.2","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.0"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.14","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.0-pre.1","mocha":"^2.2.5","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.4.2","_shasum":"89ed62b623b3bfb206230e46f6dcfeecbfeff338","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"89ed62b623b3bfb206230e46f6dcfeecbfeff338","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.4.2.tgz","integrity":"sha512-xAUa8KsAU9cixfeGMi+emIBd07hOei/PKONJEYHK7swiXm9A9Ot7M/d/qzel57/G4wyenTX06zHniz9aHaPk/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwlPBQcjdC7Yi0stlnCHCEhOj/H3qh4NTytaKo4xzKYQIhAP0uH8pzlbzfufHKpeK3Swrvf15dGeQSQqNWtSX8b3Vz"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.4.3":{"name":"msportalfx-test","version":"0.4.3","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.0"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.14","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.0-pre.1","mocha":"^2.2.5","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"https://msazure.visualstudio.com/DefaultCollection/AzureUX/_git/portalfx-msportalfx-test"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.4.3","_shasum":"e30439bc037138f523ebd3de8613c6ce778c91d2","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"e30439bc037138f523ebd3de8613c6ce778c91d2","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.4.3.tgz","integrity":"sha512-4b37lhagOI/N5dTl0BV2ZXlFkTmm+CXgYQR3li+mAibKBUE2JMT/LznwQL1eKnPghClO/kNbiMEq5uPAKEP6QQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEAmqtcAFJyuTHM+a4ERTqYIfyrtHbTMEukzJC81svLuAiB6TaGLtzn86u7FlLEc0YHMJBU+QXerAJQl1m1J0Ttd1w=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.4.4":{"name":"msportalfx-test","version":"0.4.4","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.0"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.14","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.0-pre.1","mocha":"^2.2.5","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.4.4","_shasum":"32895434f5497b23d389eb05de33421b9cca082f","_from":".","_npmVersion":"2.14.4","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"32895434f5497b23d389eb05de33421b9cca082f","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.4.4.tgz","integrity":"sha512-4SYPm0itYD7zyxKeQox0OvrB398jEO1+9SspLzmG9dJKhnRDr0rkqtvYNnPJ9d+R7VCS54R4FtixbiW6cclnCw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH7KndcFKXZlkprjvcfr6z6kcq2SnSheso79pJXzieLSAiEAzglV2FHs1jaVUYYM/qjT15U1BHC9uTv4dXx61DDBEMI="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.4.5":{"name":"msportalfx-test","version":"0.4.5","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.4.5","_shasum":"407b491e8d688599563be172e08938c257e8644e","_from":".","_npmVersion":"3.4.1","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"407b491e8d688599563be172e08938c257e8644e","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.4.5.tgz","integrity":"sha512-bc4sxKxkmFEQ1fPKfTtHUwPsjEW6ElazvmPCMxzsfO+fSBNWvronD09e7PHpKCoM6AgKGdJgS61sat+KTMcJUg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmbwS1U9osI1kyNntvzS6vgNEv/0lduxqyv8L0DF50AQIhALPsxZMaEtCKvv6Qpm/aM43MHjkjzbCY/JrW9ld65f1e"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.4.6":{"name":"msportalfx-test","version":"0.4.6","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.4.6","_shasum":"3fb555fc6e373d76f42f34c02180e761d1256d17","_from":".","_npmVersion":"3.4.1","_nodeVersion":"4.1.1","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"3fb555fc6e373d76f42f34c02180e761d1256d17","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.4.6.tgz","integrity":"sha512-C8Utq0lCpWmKQqkyd0Jej7OhNCthHl53D7QWuTBIdwEC2LNtjjEG5uPB/+yqjNkCROVuPQR4LIjvjQw4CLbUPA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMm70Luf3OUMdbfQzt1BgLoYO+Fy4oN/p47GgtWj9fXgIgD1WlBQNT/AmxCGfEnjD+SkFJpbcXWc9A64eBU4w/nMI="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.0":{"name":"msportalfx-test","version":"0.5.0","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.0","_shasum":"33066a23d9277e591dadf2529ea4dc36c542e8f6","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"33066a23d9277e591dadf2529ea4dc36c542e8f6","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.0.tgz","integrity":"sha512-9cLdbWNBjliEX3eG1OKxa3mkFV02ZHS6t6x13UwOXrulilk7Di4anfzMIn6XxTYPxZ3T3XH21w9ARZeL2PFDIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmG0j6bfaagYd1jxRM/VZiQZlKu/6puSdWMlQPUYVfzgIgeXwp0N8WQGlGGtNZCRydkHCPjekGYtDDZmX+a4q4vF8="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.1":{"name":"msportalfx-test","version":"0.5.1","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.1","_shasum":"e97612dd3bb89c0d39a2bfc1faf4a9dc5c684601","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"e97612dd3bb89c0d39a2bfc1faf4a9dc5c684601","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.1.tgz","integrity":"sha512-qx1ctGILW5oTRp5mabvzVCuc4aJ/7eSIoJQWVN/nSmgU+23KOrzHan4e4Gp0bZx6rF2CciC2TR+bWP0s9jFBwQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDCk8GWE8iuT/07hsjGlrVEv7jZMou4DjhS40qVYNfNtAiBvQLvsqgswOBT8hfv+w3v+bztlToi4WJ9zxLDAOibPxw=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.2":{"name":"msportalfx-test","version":"0.5.2","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.2","_shasum":"c7fd102537de20d7b721c0cbb9ce3aa2eafb58c9","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"c7fd102537de20d7b721c0cbb9ce3aa2eafb58c9","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.2.tgz","integrity":"sha512-6q9P72EVm7NeO77eh+n1KBehH6/hs10xJ9qOVQO308XpkJr3IB5ZOCcfX2+zPHTsphoTuvg0nbm9/REJKwXz7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDXgAtR3/zQci7+5xcsZz0MXwwshHC5KLBluCZNNxIyoAiEA+1fMQtNnvCZT/uKE72/ji2rAS0a+XHGPHzlYVbSYmsA="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.3":{"name":"msportalfx-test","version":"0.5.3","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.3","_shasum":"c6646ef25058a444980a4099d0b10e25aa8964e1","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"c6646ef25058a444980a4099d0b10e25aa8964e1","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.3.tgz","integrity":"sha512-TnEz8p8fF8OvMrNOiEuSksilguaLrbAGFU8YQ184h2VyspfHay1/FITLXLbBmVu6hWcsiWAYp6TGxOHEQTo20w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9TSoFqOyOO+F9VkvDa9zIoVRE5ON15grH0GWfhUaZ9AIhAN7YUCgkIcGi5rxQyjQXM3yR6jb+vh4plCE4IJrAW3LG"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.4":{"name":"msportalfx-test","version":"0.5.4","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.4","_shasum":"44a3c220244a21cdd55e8ef0988f7664f8982af0","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"44a3c220244a21cdd55e8ef0988f7664f8982af0","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.4.tgz","integrity":"sha512-sUo1u1h1+uRISaaEE5QN0FScvglLGLzjH0UJtil7sArGRX50jC1nx1bV1v4MVE7iD5VckpNX3u+K98gXYmf05w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICeHc0MzamwslPbgkQBCJFvM1xiXKVxifEu/TsKxYzbHAiEA+VCdIpy/A3vd4SBCZ7OK8JLlsi1EdrQiWazS1mXazUQ="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.5":{"name":"msportalfx-test","version":"0.5.5","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.5","_shasum":"571263ceac5871ccc7e570f01bb79828d970a45e","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"571263ceac5871ccc7e570f01bb79828d970a45e","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.5.tgz","integrity":"sha512-ikT1Tqh5fRTC8VdAjugNdCFdHN+jsfJ2A/WLrbhsl9L6m3tUcVQbmaZ/Hp7XT8blGq+rGceqGul5ylVrDRkWSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmLIYaJ4Ifm94Suyt14nZqtgPPEOsGrzBcDCg+oP6aiAIgTs0khbMOdSkXklokqN5QWObu5KzcHPqO3/OvPJBw2ew="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.6":{"name":"msportalfx-test","version":"0.5.6","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"http://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.6","_shasum":"867cde9c353fa4fdc3f5ae4917f17d3b723a033f","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"867cde9c353fa4fdc3f5ae4917f17d3b723a033f","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.6.tgz","integrity":"sha512-W1X0Eo/eDVHnjpIslXYCf+GYhwD+Tir3BzpdpogB1hPeBmfD8xpMAcCr/GyP8YjFaaDw6nBRLSLt850Iw9Itlw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGDZOrYbHLkxqHNvZqAxwuzvxSfC6RziwYuyaABGhDImAiB8j5l2NK6opqn2zqJVE/gMkrwlnkNh3qmrVPriPCeYZA=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.7":{"name":"msportalfx-test","version":"0.5.7","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":".\\scripts\\postinstall.cmd","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.7","_shasum":"94da22f0e369ef0a0c9cd3519cb9b233ee98f2d4","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"94da22f0e369ef0a0c9cd3519cb9b233ee98f2d4","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.7.tgz","integrity":"sha512-pvOfF5at6GPoYRvK5EDFLj/jMalM6KNHagmetUBbvDmuyZrYC5C8XcAnbrbte7/fKUq2q+IulkROBzEu6Mnnfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBX9fTq5zW9s1GM0/7ovfU1QOYQ0pi+Gxc+sI0CTMjRvAiEA4FfvZe5qRkm6Pua1JYnX4pl2wg1/UMzLIuW+qt9qHFc="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.8":{"name":"msportalfx-test","version":"0.5.8","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.8","_shasum":"1a15b279dd1a15e9ab9985d8a1f5b33989bd91da","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"1a15b279dd1a15e9ab9985d8a1f5b33989bd91da","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.8.tgz","integrity":"sha512-1sNexpF9gTGvycYqSf39ZcLge4yxWXyQpuiaYs+py8YYo0fZdub3H+1v/o1GsNe4RgdBllEeLigvXYp02iFq2Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICazC4KiAQj09pFAEr/YamFyXA4c4pq1m1I+jLAj9/qnAiEA8pPkBOd2AqMdh1rXaDxSp761248bhsfl5uDuXvCefKo="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.9":{"name":"msportalfx-test","version":"0.5.9","description":"Microsoft Azure Portal Test Framework","author":{"name":"Julio Casal","email":"julioct@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.9","_shasum":"e3df8d0eb934ca1928f5c3d9190b9abdb71f2343","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"julioct","email":"julioct@microsoft.com"},"dist":{"shasum":"e3df8d0eb934ca1928f5c3d9190b9abdb71f2343","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.9.tgz","integrity":"sha512-ctb1zSpzVn5GLZIhKHNTEUfR1aIoPjaKnA7lnv/L2Ec7CywbJJB21M3v9UpIiJEyqPMGpd0A0cbyh3/lyiDWsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAGE1UpJRs8Mye6/ThvB1lrS3zRFzTaRIVbAn7konvaQAiEA9e43CPeAHLZIuyFG5gI/E77rVtJ0+LfgSYvM6TPlOT4="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.10":{"name":"msportalfx-test","version":"0.5.10","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","q":"^1.4.1","selenium-webdriver":"^2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.19.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.10","_shasum":"31313699628f13c25b08ba0b02835f20e183fbb9","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.1","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"31313699628f13c25b08ba0b02835f20e183fbb9","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.10.tgz","integrity":"sha512-fQXlZ9gvmrqyQqt+DjobSF85jnC3BIzkT+HsFkRWZXrA3bkVB9KP7tqZ4il2HovDwJq7qxbjH9aWpWxJQUyNZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAMvv7bwiASBhVqjrb2Kp0nV1Lt5qlo2MJkXIiQy5VzoAiAeD72jbax3+LAcHRHg6M5HE2h85sBEFqURy3H7tzrEwg=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.11":{"name":"msportalfx-test","version":"0.5.11","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"_id":"msportalfx-test@0.5.11","_shasum":"2c60cd9d2655ba8b1ddafb102c0e1986cc598215","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.1","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"2c60cd9d2655ba8b1ddafb102c0e1986cc598215","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.11.tgz","integrity":"sha512-ZMiRHMSQjvui1SaO16FOqdtgQkaY5LbtqLYxl4Ig1s56wvZN60UE84QJ9GUGblwW2pSI5PGApe2ABog4HcfjdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGGItBrD3S61FPPIB/sRr04ybPVjmRHJ1ZQWYgQYW9R4AiAAlRbme2/hWGUfg+a63zgonCNToGOjYeEFLghfkQeoQg=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.11.tgz_1455320442694_0.1492614180315286"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.12":{"name":"msportalfx-test","version":"0.5.12","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"6a03963bdd0662370b8bff2e5ceee02c901cb4df","_id":"msportalfx-test@0.5.12","_shasum":"0ba4b48c396ddaa05c24040e0a95dd628452ed8a","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"0ba4b48c396ddaa05c24040e0a95dd628452ed8a","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.12.tgz","integrity":"sha512-cfDAvSJeKPi4iTmCo8By2vsy1aswM5cDDW2tzq6cTtrN9dGS1G2Wiht4bc6MxjCLzlqkZ8atA9LJkt43/CyjMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaCV983j9BJ/gBUs8647GxMac/XzoIG45ntBYAfpikMgIgJHcFcTcwvwpYIGMGrdsd0b3Ei7iWGJkFgtrnqjGLqek="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.12.tgz_1456963105712_0.7382469666190445"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.13":{"name":"msportalfx-test","version":"0.5.13","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"6a03963bdd0662370b8bff2e5ceee02c901cb4df","_id":"msportalfx-test@0.5.13","_shasum":"753af0695ac13de62a6ff0667bb0fd9255952fc8","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"753af0695ac13de62a6ff0667bb0fd9255952fc8","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.13.tgz","integrity":"sha512-eTH9+eZUN6AAWTNEIo7kRgomXJ5vFTU8LFjzVFmwDKA64iz4BpwFDx1u9k1RRtuSe1Uu2ajMEwHrzUmf7ZkWkg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEnzSqdSPCG7wGxulxNYiOYn9KR+YVJcrCXrooyNsjJwIhAORzeUkJ40+Lf3i+pIRFf2aVThhSRIcpXv1/o2fdN8+E"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.13.tgz_1456973919783_0.9581507928669453"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.14":{"name":"msportalfx-test","version":"0.5.14","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"ae362821314d50a169d3b55913c5d7f1368d71b9","_id":"msportalfx-test@0.5.14","_shasum":"b35f723b1b4238685cfb59e283fa6d8698f7a8d0","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.1","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"b35f723b1b4238685cfb59e283fa6d8698f7a8d0","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.14.tgz","integrity":"sha512-JWFjgZQ8FZKo6NLbjDgP0tzKsEc3z2/yrphUirid0tVTeO84c7kNP+a7gqJvbIRcVqDifhyD8SU5LQGRqFngIg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGzc3eUIyw2SpaBeVU3zroZWze5fezkUiBV/XgPc1ZgFAiBAzJiA2snhVwQRLWucKvCcZoFft+qeTH4xP+4Xf+cvIw=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.14.tgz_1457747354311_0.2913037305697799"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.15":{"name":"msportalfx-test","version":"0.5.15","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"5724b2f111cdea23bf775b3aae7f2a761dbce679","_id":"msportalfx-test@0.5.15","_shasum":"8dbc66c0c56b6f1bb6a68c8ba50f52771c41d0f7","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"8dbc66c0c56b6f1bb6a68c8ba50f52771c41d0f7","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.15.tgz","integrity":"sha512-13klctfGgmphuZB8Mb5s2iwtSVMfMrdQxzbwqqgsnWsd3ZFSscjk2OpnUXn8bjjCi688FnLg3EMQktX3EM803A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDqaTE5SsZt7cJy6E/OsgzFrhbdAcpbAnn6IFFcm2LB6AiEA+YNAxssVtoEnYBf/luk4G7+aAG83SQXPSMjY8d8tgME="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.15.tgz_1458602420720_0.609182994114235"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.16":{"name":"msportalfx-test","version":"0.5.16","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"ae9d573096e0f04da926ffe5355d737d68b69360","_id":"msportalfx-test@0.5.16","_shasum":"804220fb75802dccc8d6b088358e16988eeb52ef","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.1","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"804220fb75802dccc8d6b088358e16988eeb52ef","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.16.tgz","integrity":"sha512-3t9BRailC3juSXQw5jbQKZZWed2B3heUZ5Jo1HRN2G766FfzufXD6wd693N6niSwg1O49GpqoCkbalvY/9ugtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEfUBh1mLyrgZ2BULYSTsOB/XeFQaCffLZWSl2cXPlTIAiEA2+g9gSCjBcnyLf1p8mcoT5tXoziyj0CNJ/tl0Fg2wfg="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.16.tgz_1458949634895_0.1058170273900032"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.17":{"name":"msportalfx-test","version":"0.5.17","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"df65c55f03dd91e0a08a6736bf0aca307c64ed58","_id":"msportalfx-test@0.5.17","_shasum":"32210543c946eab3dc0d38599b235c31df58cc06","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"32210543c946eab3dc0d38599b235c31df58cc06","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.17.tgz","integrity":"sha512-q4ZfPbGCN0L7SdNArnQp9bmS7W6w0WI3pwaFJq7xrtz3X1mnF6nWN6/gxGgPEn/cF5DiWxG7nZNbFOat/Jfp+Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXJ2M+7pXqer8Qjgea4l8vrSvT8pbMMlSAZWXiaN6lEQIgJ4AhTA63Eb5oO2DboONouwsTvI9OyOREoovZEUDPhEU="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.17.tgz_1459215053507_0.25582901993766427"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.18":{"name":"msportalfx-test","version":"0.5.18","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"3df2cc9b68a3448881c1ee6263c730a1217321f1","_id":"msportalfx-test@0.5.18","_shasum":"7872ea4442c999e65a052fd550a6214c1061305e","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.1","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"7872ea4442c999e65a052fd550a6214c1061305e","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.18.tgz","integrity":"sha512-spt5kDhNIwhzlr9rq9hpH1BIU/eabicDdQuH5nrcCYXMxyNjrbkmW+lmWBakHaEvsF/Oz5gElJ/W8msBWXAyvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB6CORc++Rx3bQq+g5t/Y9CxIqOYXatk1SYUDUMDmB1RAiEA7XJX5qZus0oO4Hr4XwcvoIENU/vuaIj2h+8YT9RYKqQ="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.18.tgz_1459218527208_0.5944021535106003"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.19":{"name":"msportalfx-test","version":"0.5.19","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"3518d8876892ad56ede758d040156af65ecf8799","_id":"msportalfx-test@0.5.19","_shasum":"0bcb90a23efa90253e3da4eba89bc933811230d0","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"0bcb90a23efa90253e3da4eba89bc933811230d0","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.19.tgz","integrity":"sha512-dE+Ty0txcA0TPVOhD5M1JSXFFhfYep0WOV+Js5OpB1ZH6DCLfWvJDnNqeDoO2D/ihJ2AOcoEyRf5P8v32XSxWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHnH2tNmGvtYgxLf3K7CAovZFwu9/SMphzK2fJNRJH1dAiA5dujreQo8H7aXCj9/dfOpgOFsoLJs7Ml8Komu1lz5bA=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.19.tgz_1459562184331_0.008512466214597225"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.20":{"name":"msportalfx-test","version":"0.5.20","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"38dd61825cb692ed3b8bac2f3ef236df80444fcb","_id":"msportalfx-test@0.5.20","_shasum":"36c1d48ac7373cf67f7a2fe69f9b8223a568e1c6","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"36c1d48ac7373cf67f7a2fe69f9b8223a568e1c6","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.20.tgz","integrity":"sha512-K6ius6DtmzfLzPS/X+QAByzS60dUqQjCUBIpyBC1g/5nzwJBCho2/tm3cwOQp1wsz2EI3i6bJG36KVnhRq2yhg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxp01pFS3pZoUjt35JCf53cyFa/C+VfaO8cC0HV7oUvAIhAJZxSpPAiGqpWmOYcM98uEO/DFXtCY3IaaTbnT8NTeg6"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.20.tgz_1459957638484_0.08842000039294362"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.21":{"name":"msportalfx-test","version":"0.5.21","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"ec713dc851f7cf172acba2cb66f6a158f004fb30","_id":"msportalfx-test@0.5.21","_shasum":"b7e334344d42a707db4dbc69b3093673c22a59cc","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"b7e334344d42a707db4dbc69b3093673c22a59cc","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.21.tgz","integrity":"sha512-yyv7x+jNu+wcbFsrFGlHi3qFfssIF5ZFnQPGM4Fa4aFfVrf23RfvFSlwWzJeIopq2tYCfg0XsS6lvLyJsPOCug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChV8jbR4I6Y6t1JSYJzOAWZKaHm0Fez2lrPl/juV2OAQIgFduWSyW4qKw7w2GWg5ZJSPpDDVgFlOwhJ+6Xdbon3Vk="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.21.tgz_1459977775882_0.8745209230110049"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.22":{"name":"msportalfx-test","version":"0.5.22","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","mocha":"^2.3.3","nconf":"^0.7.2","typescript":"^1.6.2"},"scripts":{"prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"316f5a602ec260e5e81d2e7a55af77cc75612805","_id":"msportalfx-test@0.5.22","_shasum":"66a3578a62553f27e8a7d5488e5fb62e2a84a4cf","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"66a3578a62553f27e8a7d5488e5fb62e2a84a4cf","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.22.tgz","integrity":"sha512-G6nEUNNUz8sq3SoHupxgiF7s3+tk7VnCauZcIz2aen9wn8QBv52XYxqRjAc7bONyUrjiC6QKqTx04K0htp/rTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRuRsjTdqNxvZfYopVJvTtGVpNscfZpmR1ymJFXsArJwIgetwOP3+JyaiAQ1d56JOy1msAmk9qjvfpysLlTM6EVns="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.22.tgz_1460411492594_0.17531189136207104"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.24":{"name":"msportalfx-test","version":"0.5.24","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","jsdoc-to-markdown":"^1.3.3","mocha":"^2.3.3","typescript":"^1.6.2"},"scripts":{"docs":"jsdoc2md src/**/*.js > ./docs/apiref.md & gulp readme","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"fafed59e4697ad8abb6d5f8e3f032c75953fac06","_id":"msportalfx-test@0.5.24","_shasum":"c015bd72bc3b472628e70acb67cf7be52ba16215","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.2","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"c015bd72bc3b472628e70acb67cf7be52ba16215","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.24.tgz","integrity":"sha512-ZDW7P9r8rhvX1sN1o7wZvO35gtUvl2Cmtpu1jlBlwQYxcsENL9WlRkmfqxMKSkFxbiohn4cP7oXBBFJBJ4N5sA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFWAypjIiTXCBjgLv7hjsrG28Ipr/9ZHT4ttgaeBd3ZwIgG8U7A5jr9RYAMB8CtC97Wpi6FrooC8npAr50w0kMQWs="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.24.tgz_1462487060535_0.6288996117655188"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.25":{"name":"msportalfx-test","version":"0.5.25","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","azure-storage":"^0.10.0","chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^2.3.3","typescript":"^1.6.2"},"scripts":{"docs":"jsdoc2md src/**/*.js > ./docs/apiref.md & gulp readme","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"f7a09e63c0a9d03a90d1d8ac6c4a97c544262f07","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.25","_shasum":"39c3ecba0a8cfc7226cda07686ee3e215880e40d","_from":".","_npmVersion":"3.8.9","_nodeVersion":"4.3.2","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"39c3ecba0a8cfc7226cda07686ee3e215880e40d","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.25.tgz","integrity":"sha512-padmljwhLR3cTnoj7K5Y1SU1JKo+RepuQuT9HHEdBRNWVK9igHpufnLHa8Klr+4V3vE465MO6WAqmXCyvZMi8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAZtKQlwV/B1H2mV4jU2RQc4uzUZ4sj2EZTE/pbhr4mAIgcNDDT/qvuHGG9kmBcCx8N4O0A12r3Z6y6kRCNlEgS7c="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.25.tgz_1463698388836_0.608493382576853"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.26":{"name":"msportalfx-test","version":"0.5.26","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","azure-storage":"^0.10.0","chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"^2.21.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^2.3.3","typescript":"^1.6.2"},"scripts":{"docs":"jsdoc2md src/**/*.js > ./docs/apiref.md & gulp readme","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha ."},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"c64b66f2b106e25f6444acee91e12d713cfe17fa","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.26","_shasum":"70b13580e84d1c431374d882b8e7f580ba53fe06","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.1","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"70b13580e84d1c431374d882b8e7f580ba53fe06","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.26.tgz","integrity":"sha512-CgmmM9iRoLhN/wnDlAlzWYOyb+IpDAy5HG4W78qfGUrUNFwwgPMP/0cioafq/bSABl8fm27SuKpBVk3VzdoKQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRVoYrBJAEO7/5KUj8M7NLsnca39cDsSeltg8h9Jm10QIgP7hmg8ht/K6mj+WjauOJnq7ocxXeMofMpMYbl4kIzMQ="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.26.tgz_1464809830919_0.7912160989362746"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.27":{"name":"msportalfx-test","version":"0.5.27","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","azure-storage":"^0.10.0","chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.21.2","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^2.3.3","mocha-jenkins-reporter":"0.2.3","typescript":"^1.6.2"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"819f5b0cdece1355cc8a4d37685fd05bebcf7f73","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.27","_shasum":"eb72b6edf3962bac2efe5e9c843113716691594c","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.1","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"eb72b6edf3962bac2efe5e9c843113716691594c","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.27.tgz","integrity":"sha512-TEd0aCtPPz+ASJyREJcI19yKGX8tjBUehtSX8U9BM4QuZ9LjGSUgqV7g2fvTC4Kd/EMLYxhZAKTuoUlarLRTJA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBTP8KOC05KuAlA18Bcur2aUGoFtDpsqYiiuGVAST8dRAiEAyW2zc9bqwmRXS+HMoZmvcWOEdvy+nK/z63WiV8lvp38="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.27.tgz_1471483601389_0.009676205925643444"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.28":{"name":"msportalfx-test","version":"0.5.28","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","azure-storage":"^0.10.0","chalk":"^1.1.1","findup-sync":"^0.3.0","minimatch":"^3.0.0","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.21.2","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^2.3.3","mocha-jenkins-reporter":"0.2.3","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"32c6e72fe39d53a2c2b238796cdfbb5747080d81","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.28","_shasum":"887fb520e69497156a50a4f70d5bca96aff1085e","_from":".","_npmVersion":"3.10.6","_nodeVersion":"4.5.0","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"887fb520e69497156a50a4f70d5bca96aff1085e","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.28.tgz","integrity":"sha512-t3hlXRr5R7Gv3EGump8Junq2+441hG1d/3cU1ZLAQNL1CPf9LKwVn+uIURvJl1eh58YPBXzaAObE6Q/Uo5EZMA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEBc3g30FAT0KE1urmOcOJf9dZ0yTLpw30WRcqs9QWXDAiEAjU1GFiSSbw+D4FugLUq0XItQb5RDjsvXz3ZBErjP6lo="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.28.tgz_1474493698031_0.8164131976664066"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.29":{"name":"msportalfx-test","version":"0.5.29","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^0.10.6","azure-common":"^0.9.16","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","minimatch":"^3.0.0","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.21.2","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"a8a9b7b1d67df199c41846f5ccb04b6425f790bd","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.29","_shasum":"389a18aeac41127b9cb24277765d5dace34e32e1","_from":".","_npmVersion":"3.10.6","_nodeVersion":"4.5.0","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"389a18aeac41127b9cb24277765d5dace34e32e1","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.29.tgz","integrity":"sha512-qdPz1mboAJTWHwjfFwlD3YuoLtxVtBFFcVBMChiVFjrbSxxf5L+hDypX48gUR6WcTavimO9dRG7ed1SZNfpeOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/6JYRzVjzhNAAPgkSQ61Uhmjv241oZXQ3ohP5Ep1zQQIgEaN5LRI3E728rRNN+ObmBI7Kh5tWqppt9QFfVwR2yNk="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.29.tgz_1475098005684_0.9558210161048919"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.30":{"name":"msportalfx-test","version":"0.5.30","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","minimatch":"^3.0.0","ms-rest-azure":"1.15.0","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.21.2","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"33a763c2f7f451d5c24077b1e4d195ea1392dd74","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.30","_shasum":"9c1361270cf03bccda4198821ad69989fb860ca1","_from":".","_npmVersion":"3.10.6","_nodeVersion":"4.5.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"9c1361270cf03bccda4198821ad69989fb860ca1","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.30.tgz","integrity":"sha512-o10YyFHMsH7x5oNqPW7bStSY3fy1RU+6GE2MMJQrUSGMyFfvSvlD8tvKpLb4Yj9uXFjh1mLU9VQbXHsBU60OeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCL6NjkaR0nZ2RJWNd1VgqR4JKOz/kX8dvVDix9PwESuQIgcJ5PAvAoShhFd7IAgFgvzGaAVErWdvGjdSsl3zBgL2o="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.30.tgz_1475275000041_0.5642798251938075"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.31":{"name":"msportalfx-test","version":"0.5.31","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","minimatch":"^3.0.0","ms-rest-azure":"1.15.0","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.21.2","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"98d162a3f6765682c823568c695d2434acf11e12","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.31","_shasum":"e56b88c4691e60879018bc63682e4378562e1dce","_from":".","_npmVersion":"3.10.6","_nodeVersion":"4.5.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"e56b88c4691e60879018bc63682e4378562e1dce","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.31.tgz","integrity":"sha512-Z7FPhnF0bxmCRkTeuLBB5w2Rey+Kboy7mhbTFkWK/bwnQ458CQBiEinb8XnL8Yvj17IptefYRYuGMg1dZCsYVg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjvn7WlINopJWzWL1BZ1Njx3zN93UmR1PMyeZKPZLCVgIgbT4GLUYyA/zWrVugetsuhNg0eBLa00hFg+EBQ6wkOQI="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.31.tgz_1475278020447_0.5172609840519726"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.32":{"name":"msportalfx-test","version":"0.5.32","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","minimatch":"^3.0.0","ms-rest-azure":"1.15.0","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.21.2","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"f32e66a773f772a3bd0fb00a331884625c82d926","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.32","_shasum":"49adf526eee1074ce8d9d3460d40ebbe9db4c21f","_from":".","_npmVersion":"3.10.6","_nodeVersion":"4.5.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"49adf526eee1074ce8d9d3460d40ebbe9db4c21f","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.32.tgz","integrity":"sha512-FSy2qRjth3Kug3kyGhUIegz4Mqn+JpbwL0paZavE1+0G+G4JIbuz3Hg4ZqR2hC0RkqWPgfjq3XJ26E1OnGH2PQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNyRNx+gqdSjVa2vOrQ9ZOGfT0E+WqTWudOF84JLXxYQIgaln46HiWqpuwlxLOSAnwOe9nuTV6hLHBFe2IxzRYvdE="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.32.tgz_1477012973709_0.47207116847857833"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.34":{"name":"msportalfx-test","version":"0.5.34","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","minimatch":"^3.0.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.1","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.24.1","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"28d38d9976c6fdf03ee92a1499703c42966e238d","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.34","_shasum":"1dff4dbcf2b75cacf903a07aa194f02243c26efa","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"maftab","email":"maftab@microsoft.com"},"dist":{"shasum":"1dff4dbcf2b75cacf903a07aa194f02243c26efa","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.34.tgz","integrity":"sha512-lus6yUblssf68u71XdMpdOff46kT7wdD9WdXMFZwaBmonCHX4OcCrtUjySPj7gZGrtQnUWev1T1yccZYcgAhBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFXBcbbnvvWEdbsEvezsye7pbm/HuuoTkS1xxwTiySrQAiAjliKmTyc8XVNIKU21e9d47tCvQF7rbH1Q8TK3vLiISw=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.34.tgz_1478891940397_0.8266416657716036"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.36":{"name":"msportalfx-test","version":"0.5.36","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","minimatch":"^3.0.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.1","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.24.1","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"4db1d3f507b61887e2226896dab1e747502f9ea5","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.36","_shasum":"a8215c586f21fc36074f12433be6b1f0274a239d","_from":".","_npmVersion":"3.10.6","_nodeVersion":"4.5.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"a8215c586f21fc36074f12433be6b1f0274a239d","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.36.tgz","integrity":"sha512-XVPyaaDW8iohaMshqCdk5eQ8BYhM22apvgtkNOrwFJNdOGaeJjPl3yTnGHadAcxarPVwH/6pSGRc6vNLTK1OjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRu4YeYRViV0krYOl/H9N/vw3My1GUR3FTrm2qu9BLmQIhAJuCzF2MjhZ3tSR8ZFWv7VK9mGVajKOEkZ24xvHwFxuG"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.36.tgz_1479844922266_0.49089539307169616"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.38":{"name":"msportalfx-test","version":"0.5.38","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","minimatch":"^3.0.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"lib":"lib"},"devDependencies":{"chromedriver":"2.24.1","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"gitHead":"797903bcdaa996fa46749fe840a361477c8708cb","bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"_id":"msportalfx-test@0.5.38","_shasum":"9bcf81a09fb9462022463936f5d6a48f12dcd11d","_from":".","_npmVersion":"3.10.6","_nodeVersion":"4.5.0","_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"dist":{"shasum":"9bcf81a09fb9462022463936f5d6a48f12dcd11d","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.38.tgz","integrity":"sha512-irro+tBJWEllemCsiZaImyJInkPgwSB5Hist+MEztgviWGdBkxZEEEqpoEBYiaZp2qISnlJR7OhtQ7vhSW4zpA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDh1KHWLMO3o/F8UylO1hfLpv9CPJaqB4++00BcfY9MuAIhAMRP+W+zcBMU5pMnGLkgus/AYQ+DOb0r3touCpCGq9Mv"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.38.tgz_1483556422650_0.3915887887123972"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.39":{"name":"msportalfx-test","version":"0.5.39","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","minimatch":"^3.0.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.24.1","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"f4653cdd9f978e59c7032c383a7d0c1cbf0ecda6","_id":"msportalfx-test@0.5.39","_shasum":"b59baee21e3cfc3b04bb50db4920e91a1305015b","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"b59baee21e3cfc3b04bb50db4920e91a1305015b","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.39.tgz","integrity":"sha512-Ng3gdoBWkIPpEOuHAfmjumDyhgmgbJo6Z1Wk37p5xGHkJc8oUwO7xTgfJdVY6/TICX5WaelnyvXfzuMrm7Rxsw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF2MnN/t9Mt8B+L76Zkido9Y8liQjgcl45KsiP7lT+zQAiBDhftVtaN7VfEIQ225ir3KfrdqLRq8/SmS138RzxbJDQ=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.39.tgz_1490132514420_0.06269284547306597"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.41":{"name":"msportalfx-test","version":"0.5.41","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","minimatch":"^3.0.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.24.1","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"e8672ba69a37a3ff2ae70ae0c56d96e453ffa90a","_id":"msportalfx-test@0.5.41","_shasum":"d687ca1ab9adb8a1078164ab1da79e20fae1bcaa","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"d687ca1ab9adb8a1078164ab1da79e20fae1bcaa","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.41.tgz","integrity":"sha512-VYxSH98myFs/R65vr90xgPHELbIdsVJ8EZyMmE9qYKFg2URzeP0wsAdQNoNYnfFMNXAQSOzzmRJ1i6xBlkX9EA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1CDeOsi4DZ7y2Gv8VxT0OqKXhAhDC8GSuspVFkZYRPAIhAME0dNivOfyWSFij7TGtzMhqUCb9qQCEevfVItTLgJYQ"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.41.tgz_1491255304155_0.1842780918814242"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.42":{"name":"msportalfx-test","version":"0.5.42","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"05e6d778ab9d05c4da6cb02e5474ae191dc3ac5f","_id":"msportalfx-test@0.5.42","_shasum":"3c1691a53e9df204faa2893fd2a663450ad338e1","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"3c1691a53e9df204faa2893fd2a663450ad338e1","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.42.tgz","integrity":"sha512-ag8EXD3V58mVy9w/2M816uRTuHaG3Ysq57nLTqx9srs9oxL9Vp3FrioImnUpAsJ4QL45enhxkE7riNeWus4pzA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGOYAFe0iGPgGLDNPyh5sX8WIyizXhEa4koNbd3KhcCgIgIx3PVfmVyVQdPUPp3DZRybMNP2nWa25UJw35XXxfTxU="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.42.tgz_1494541521350_0.724085655529052"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.43":{"name":"msportalfx-test","version":"0.5.43","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"cf286ba276d20e710fd7839df5e269be15c4e688","_id":"msportalfx-test@0.5.43","_shasum":"1e3d10cc36627b5d5c2df0dea93845541aa8387c","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"1e3d10cc36627b5d5c2df0dea93845541aa8387c","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.43.tgz","integrity":"sha512-w3Os5xCgL6825UfK/t9ZzJ45RHvvGu7wh95FFS4pQgR1FpuH1Rlg/sOHI0+ELwooPfuWBfr730/a7f4UTndGPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDe9PhxoUbHm5XLmOTZv+I2a1wrQDbbeFpW1fgXRGU79AIhALZ7QaIghFBftg+0l3bqvoyuwHWsw5BKWPuddKIKTL1k"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/msportalfx-test-0.5.43.tgz_1494630817960_0.449141139164567"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.44":{"name":"msportalfx-test","version":"0.5.44","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"5b8193d6b7ea03bde0e2c3e85bbff2a6d75152cb","_id":"msportalfx-test@0.5.44","_shasum":"4da988725309cf4e6c21e382abfe256ae3a0585e","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"4da988725309cf4e6c21e382abfe256ae3a0585e","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.44.tgz","integrity":"sha512-XaoNfR56rgU5kP1aSIJ62MIBeY+V1QdHLzHi0o8xs6tnW/sASiPHYvtjfG1hzZs6GJSlaV66s0F0IfUGJMDFWQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAgGoIY2BLZncSM4sZiM8EHwp58QZLICWOVFw8Kl8pTEAiEA6LaI4j18fUGLMF/Rwyh4ruXGALkRwQk36Q0f9TX5Dp8="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test-0.5.44.tgz_1498781025160_0.11036887601949275"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.45":{"name":"msportalfx-test","version":"0.5.45","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"28056d9bd42ed6a0db95bbc944cbd68d6feae45d","_id":"msportalfx-test@0.5.45","_shasum":"40fa620168c18cd3cd0f8e05086d2f80087471f0","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"40fa620168c18cd3cd0f8e05086d2f80087471f0","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.45.tgz","integrity":"sha512-1MAWidAH4TJmDCNHCrUbqWMU6eaRO3A0k5j3Gnl1fQNrC2DfVE8KokxWo4z08i++NaEBuj/1xw9VTMoIBovjIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuAD74uC5hPizcx6eD1a0o3vmkNtHMC3etAJmqibTfhAIhAP0Kkxwa+j0AH1L5kOjA6XbQCParlae8LqfZNRedTQ06"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test-0.5.45.tgz_1502133175486_0.7955796362366527"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.47":{"name":"msportalfx-test","version":"0.5.47","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"d0d4db16311f696837255900fde6d83dd1937da4","_id":"msportalfx-test@0.5.47","_shasum":"a7834f4b17f2d2e79ac03c3bf09df96ede6a13df","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"a7834f4b17f2d2e79ac03c3bf09df96ede6a13df","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.47.tgz","integrity":"sha512-3YUgvoCkOEOey1bZJiQxjChEQPZGmmzhbSimYrG/WGurcwT3MnV/0R7mEOiTQWHqmd8g1N8Q8Ff4H7bppfAzjg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXwFr8MwVNnXi2EZRUFzEbShXE5C2d7HR98cSIoI5rMgIgGJIaX14apBMmRHg5YvEJ6OJIRCxBnup3280Rt0b2Z1o="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test-0.5.47.tgz_1503607898702_0.3831409264821559"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.49":{"name":"msportalfx-test","version":"0.5.49","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"18b43789baba21368a173274c44197a179e88cf0","_id":"msportalfx-test@0.5.49","_shasum":"8a307a02282e9209be2300bad2bd3bf177855ffa","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"8a307a02282e9209be2300bad2bd3bf177855ffa","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.49.tgz","integrity":"sha512-xTx19mOzSvJoH2mmFsFqjtIIVhtJEUqpYTlw0X+2dvEDC8iTp2S3r1mBh69a5mcUkHi07re3y86goCrnA+3UHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFu7TrK/vo2gtyqknE0QyJ33qfxuZDEdEf32f1/EJqNhAiA8dPQu+gJXKIlic0RnMBXYZzQFVvfT/1UKUyZbmA5WdA=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test-0.5.49.tgz_1504213964866_0.5935905661899596"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.50":{"name":"msportalfx-test","version":"0.5.50","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"a7220d4d12dcaf85e370443f2d308ab2892c5160","_id":"msportalfx-test@0.5.50","_shasum":"068b42906f026b9f1341c1738907bd5ead1741d1","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"068b42906f026b9f1341c1738907bd5ead1741d1","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.50.tgz","integrity":"sha512-IpgUJ4cjJajUq7x/c6XIZEvej3+y1iWwF1ot3s9mFQVoclJbDO2zjqQary7sPlvqjyWE8J15c4Wi3/QxRNq98A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJ0R4IGbV55Mde7H9DDdfGBhsQFqo+CFLVhL8VXDQ95AIgak+10LvVWEcWOhyx4dETmOvFp08jfm6CKPc+PqtZYCU="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test-0.5.50.tgz_1504655648274_0.4210655309725553"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.51":{"name":"msportalfx-test","version":"0.5.51","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"440b6db6396ddc1a2dbf6f6cfdf7288504db9246","_id":"msportalfx-test@0.5.51","_shasum":"acbd0d2ad4ee4b22ef5e0eb36919d7dd1ec15255","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"acbd0d2ad4ee4b22ef5e0eb36919d7dd1ec15255","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.51.tgz","integrity":"sha512-vhJ3ar4JQg3sFuH8PRXpvFo4+yZCaj9ZqS4DpHYG60iw7Zy4WgUouT8g5J7mTu/3OmTiFalqFqoQ5UStiX+e5A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDITD7toB+tvLPE8ikYCw3F1aYjPDt+rceX/0doBzuh6AIhAJI9ULX1kZ7J9RI+rX43cqmpXcjKPLoNHG9AVPYjIxBC"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test-0.5.51.tgz_1504734139681_0.9936973303556442"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.52":{"name":"msportalfx-test","version":"0.5.52","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"1b5463a80ee60f3f61866ec1d3e453bb42bd5c44","_id":"msportalfx-test@0.5.52","_shasum":"28e5f5340db09c304ec7320ef268a0060fc3555c","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"28e5f5340db09c304ec7320ef268a0060fc3555c","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.52.tgz","integrity":"sha512-n0qkeyP6VmzAU7UYtC/vegNwth/wE8mDm1MV5siuyiYpWK/NjxVwwuZl2elrgjRmFSQLVDPhZnQQ8ipcrr08uw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGTVGbXWBHmOClktHFTS+z6eWhgaNGO8e5bcLZ47C3KTAiEAigVX+EnljHm/ssD5/SuohU3k5kNLmmBetke8hYSCR+s="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test-0.5.52.tgz_1505432055254_0.11149509227834642"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.53":{"name":"msportalfx-test","version":"0.5.53","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"89bacec481dac130fac026f86ab736a548e14e83","_id":"msportalfx-test@0.5.53","_shasum":"3aac124e35fcbd6b3287d5cbfe328f7531b4542d","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"3aac124e35fcbd6b3287d5cbfe328f7531b4542d","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.53.tgz","integrity":"sha512-2VEWzHx3IvDQa8qtEyc6F0aRzaPqVt78pVR8JP3vFoDrSIDllw8sF3by8f8lMIhAQe/OE1KdOcP9h+YmX4GXew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDH/Rg4xzY5j2WHYsegrHXH5YywO0R+T55fw5GwUlJxjAiAQQh31kfBuvMTtvDgTkwOUufsT5I7tTqK7yGDnOMaVmw=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test-0.5.53.tgz_1506122498601_0.05458815745078027"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.54":{"name":"msportalfx-test","version":"0.5.54","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"4af5dd2344e730b76dcb9d9224fd450e2a81a21d","_id":"msportalfx-test@0.5.54","_shasum":"a53f321bc74292c0d8819f7ccf774d61f55bfc48","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"a53f321bc74292c0d8819f7ccf774d61f55bfc48","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.54.tgz","integrity":"sha512-3RPfrFm09DnKl39zs1/eWdKS9tGMSTyvFQL9pCVTQTgLJBP0YFj3K8U80ddcwo5Mc8UfjoZ9zoeixDr6tMg5yw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3i6ZvwNKE15RlLqrukPoLDN9XLkOCmt5pMVBut2SkrwIgF3nivEQrDpk27h4eLR/doE5G8Rk8xlyXR3RzOVW7ou4="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test-0.5.54.tgz_1506640678559_0.8069159998558462"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.55":{"name":"msportalfx-test","version":"0.5.55","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"^0.1.17","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^5.9.2","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.29.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"351a464ba805f828c3f0af2f5f6e9f198e98436c","_id":"msportalfx-test@0.5.55","_shasum":"b0c19416985aa42012d6d8c2886b9d052d9fadf8","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"b0c19416985aa42012d6d8c2886b9d052d9fadf8","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.55.tgz","integrity":"sha512-Il6kmsrsMI8z8Z4AYTdzBG8L4Wv33j8pO7W+NvOB/ZcWSxLFKk8Gbd771lMCHnnQ9moZs9WCRqdMWlp/rGs/QQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyb8WdwuLkxH9RhT2IRJPXxs2HGc7yqvrON3bVh74C4wIhAOqmla8GszpIzvYCRzpoGQ3wNbhqnIDosPDrtpNjh2Jp"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test-0.5.55.tgz_1507075001503_0.9046175046823919"},"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.57":{"name":"msportalfx-test","version":"0.5.57","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"0.1.22","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^6.5.1","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^1.6.2","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^1.6.0","gulp-typescript":"^2.13.4","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.4.5","typescript":"^1.8.10"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"251774151c23ca07fccf7b32cf35e27b0569ba58","_id":"msportalfx-test@0.5.57","_shasum":"a378297926abb52eb155381534234e4395a46c81","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"a378297926abb52eb155381534234e4395a46c81","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.57.tgz","fileCount":150,"unpackedSize":951413,"integrity":"sha512-3IFtCnwQZJJRt2laHlhPISpCu2YrdQZkOJ16OD5UVXp07ES0aHjEZR7SfzNzLuW5DlpF1SrLxoFLDDtwgFJdMQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC6Cdu/SLtElCkcreFX1zG2heTKX5zdStc8NKJyFGKmcAiAb0l0ReoDxTB3a3b0Sf6Ry9XKQ+9Ass3+2WKDBFQtX5g=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_0.5.57_1520555949001_0.29522427142810814"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.5.60-0":{"name":"msportalfx-test","version":"0.5.60-0","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"0.1.22","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^6.5.1","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.11.1","typescript":"^2.3.3"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"readme":"\r\n<a name=\"msportalfx-test\"></a>\n# msportalfx-test\r\n\r\nGenerated on 2018-04-11\r\n\r\n* [msportalfx-test](#msportalfx-test)\n    * [Overview](#msportalfx-test-overview)\n        * [Goals](#msportalfx-test-overview-goals)\n        * [General Architecture](#msportalfx-test-overview-general-architecture)\n    * [Getting Started](#msportalfx-test-getting-started)\n        * [Installation](#msportalfx-test-getting-started-installation)\n        * [Write a test](#msportalfx-test-getting-started-write-a-test)\n        * [Add the configuration](#msportalfx-test-getting-started-add-the-configuration)\n        * [Compile and run](#msportalfx-test-getting-started-compile-and-run)\n        * [Updating](#msportalfx-test-getting-started-updating)\n        * [More Examples](#msportalfx-test-getting-started-more-examples)\n        * [Running tests in Visual Studio](#msportalfx-test-getting-started-running-tests-in-visual-studio)\n    * [Side loading a local extension during the test session](#msportalfx-test-side-loading-a-local-extension-during-the-test-session)\n    * [Running](#msportalfx-test-running)\n        * [In Dev](#msportalfx-test-running-in-dev)\n            * [From VS](#msportalfx-test-running-in-dev-from-vs)\n            * [From cmdline](#msportalfx-test-running-in-dev-from-cmdline)\n        * [CI](#msportalfx-test-running-ci)\n            * [Cloudtest](#msportalfx-test-running-ci-cloudtest)\n                * [Environment Setup](#msportalfx-test-running-ci-cloudtest-environment-setup)\n                * [Running Tests](#msportalfx-test-running-ci-cloudtest-running-tests)\n            * [Windows Azure Engineering System (WAES)](#msportalfx-test-running-ci-windows-azure-engineering-system-waes)\n            * [Jenkins](#msportalfx-test-running-ci-jenkins)\n            * [How to setup test run parallelization](#msportalfx-test-running-ci-how-to-setup-test-run-parallelization)\n    * [Debugging](#msportalfx-test-debugging)\n        * [debug tests 101](#msportalfx-test-debugging-debug-tests-101)\n        * [debugging tests in VS Code](#msportalfx-test-debugging-debugging-tests-in-vs-code)\n        * [Checking the result of the currently running test in code](#msportalfx-test-debugging-checking-the-result-of-the-currently-running-test-in-code)\n        * [How to take a screenshot of the browser](#msportalfx-test-debugging-how-to-take-a-screenshot-of-the-browser)\n        * [How to capture browser console output](#msportalfx-test-debugging-how-to-capture-browser-console-output)\n        * [Callstack](#msportalfx-test-debugging-callstack)\n        * [Test output artifacts](#msportalfx-test-debugging-test-output-artifacts)\n    * [Localization](#msportalfx-test-localization)\n    * [User Management](#msportalfx-test-user-management)\n    * [Configuration](#msportalfx-test-configuration)\n        * [Configuration options](#msportalfx-test-configuration-configuration-options)\n            * [Behavior](#msportalfx-test-configuration-configuration-options-behavior)\n            * [PortalContext](#msportalfx-test-configuration-configuration-options-portalcontext)\n            * [Running tests against the Dogfood environment](#msportalfx-test-configuration-configuration-options-running-tests-against-the-dogfood-environment)\n    * [Scenarios](#msportalfx-test-scenarios)\n        * [Create](#msportalfx-test-scenarios-create)\n            * [Opening the create blade from a deployed gallery package](#msportalfx-test-scenarios-create-opening-the-create-blade-from-a-deployed-gallery-package)\n            * [Opening the create blade from a local gallery package](#msportalfx-test-scenarios-create-opening-the-create-blade-from-a-local-gallery-package)\n            * [Validation State](#msportalfx-test-scenarios-create-validation-state)\n            * [Get the validation state of fields on your create form](#msportalfx-test-scenarios-create-get-the-validation-state-of-fields-on-your-create-form)\n            * [Wait on a fields validation state](#msportalfx-test-scenarios-create-wait-on-a-fields-validation-state)\n        * [Browse](#msportalfx-test-scenarios-browse)\n            * [How to test the context menu in browse shows your extensions commands?](#msportalfx-test-scenarios-browse-how-to-test-the-context-menu-in-browse-shows-your-extensions-commands)\n            * [How to test the grid in browse shows the expected default columns for your extension resource](#msportalfx-test-scenarios-browse-how-to-test-the-grid-in-browse-shows-the-expected-default-columns-for-your-extension-resource)\n        * [How to test the grid in browse shows additional extension resource columns that are selected](#msportalfx-test-scenarios-how-to-test-the-grid-in-browse-shows-additional-extension-resource-columns-that-are-selected)\n        * [Blades](#msportalfx-test-scenarios-blades)\n            * [Blade navigation](#msportalfx-test-scenarios-blades-blade-navigation)\n            * [Locating an open blade](#msportalfx-test-scenarios-blades-locating-an-open-blade)\n            * [Common portal blades](#msportalfx-test-scenarios-blades-common-portal-blades)\n                * [Opening the extensions Create blade](#msportalfx-test-scenarios-blades-common-portal-blades-opening-the-extensions-create-blade)\n                * [Opening the Browse blade for your resource](#msportalfx-test-scenarios-blades-common-portal-blades-opening-the-browse-blade-for-your-resource)\n                * [Opening a Resource Summary blade](#msportalfx-test-scenarios-blades-common-portal-blades-opening-a-resource-summary-blade)\n                * [Spec Picker Blade](#msportalfx-test-scenarios-blades-common-portal-blades-spec-picker-blade)\n                * [Properties Blade](#msportalfx-test-scenarios-blades-common-portal-blades-properties-blade)\n                * [QuickStart Blade](#msportalfx-test-scenarios-blades-common-portal-blades-quickstart-blade)\n                * [Users Blade](#msportalfx-test-scenarios-blades-common-portal-blades-users-blade)\n                * [Move Resource Blade](#msportalfx-test-scenarios-blades-common-portal-blades-move-resource-blade)\n            * [Blade Dialogs](#msportalfx-test-scenarios-blades-blade-dialogs)\n        * [Parts](#msportalfx-test-scenarios-parts)\n            * [How to get the reference to a part on a blade](#msportalfx-test-scenarios-parts-how-to-get-the-reference-to-a-part-on-a-blade)\n            * [CollectionPart](#msportalfx-test-scenarios-parts-collectionpart)\n            * [Grid](#msportalfx-test-scenarios-parts-grid)\n                * [Finding a row within a grid](#msportalfx-test-scenarios-parts-grid-finding-a-row-within-a-grid)\n            * [CreateComboBoxField - Obsolete](#msportalfx-test-scenarios-parts-createcomboboxfield-obsolete)\n            * [ResourceGroupDropDownField](#msportalfx-test-scenarios-parts-resourcegroupdropdownfield)\n            * [Editor](#msportalfx-test-scenarios-parts-editor)\n                * [Can read and write content](#msportalfx-test-scenarios-parts-editor-can-read-and-write-content)\n            * [essentials](#msportalfx-test-scenarios-parts-essentials)\n                * [Essentials tests](#msportalfx-test-scenarios-parts-essentials-essentials-tests)\n        * [Command](#msportalfx-test-scenarios-command)\n        * [Action Bar](#msportalfx-test-scenarios-action-bar)\n        * [Delete](#msportalfx-test-scenarios-delete)\n        * [Styling / layout regression detection](#msportalfx-test-scenarios-styling-layout-regression-detection)\n            * [...](#msportalfx-test-scenarios-styling-layout-regression-detection-)\n        * [Locators](#msportalfx-test-scenarios-locators)\n        * [Consuming Updates](#msportalfx-test-scenarios-consuming-updates)\n        * [Mocking](#msportalfx-test-scenarios-mocking)\n            * [How to show mock data into the Portal](#msportalfx-test-scenarios-mocking-how-to-show-mock-data-into-the-portal)\n                * [Mocking ARM](#msportalfx-test-scenarios-mocking-how-to-show-mock-data-into-the-portal-mocking-arm)\n        * [Code Coverage](#msportalfx-test-scenarios-code-coverage)\n            * [Interop, how to run .NET code from your tests](#msportalfx-test-scenarios-code-coverage-interop-how-to-run-net-code-from-your-tests)\n        * [Contributing](#msportalfx-test-scenarios-contributing)\n            * [To enlist](#msportalfx-test-scenarios-contributing-to-enlist)\n            * [To build the source](#msportalfx-test-scenarios-contributing-to-build-the-source)\n            * [To setup the tests](#msportalfx-test-scenarios-contributing-to-setup-the-tests)\n        * [To run the tests](#msportalfx-test-scenarios-to-run-the-tests)\n            * [Authoring documents](#msportalfx-test-scenarios-to-run-the-tests-authoring-documents)\n            * [Generating the docs](#msportalfx-test-scenarios-to-run-the-tests-generating-the-docs)\n            * [To submit your contribution](#msportalfx-test-scenarios-to-run-the-tests-to-submit-your-contribution)\n            * [Questions?](#msportalfx-test-scenarios-to-run-the-tests-questions)\n        * [API Reference](#msportalfx-test-scenarios-api-reference)\n\r\n\r\n<a name=\"msportalfx-test-overview\"></a>\n## Overview\r\n\r\nMsPortalFx-Test is an end-to-end test framework that runs tests against the Microsoft Azure Portal interacting with it as a user would. \r\n\r\n<a name=\"msportalfx-test-overview-goals\"></a>\n#### Goals\r\n\r\n- Strive for zero breaking changes to partner team CI\r\n- Develop tests in the same language as the extension\r\n- Focus on partner needs rather than internal portal needs\r\n- Distributed independently from the SDK\r\n- Uses an open source contribution model\r\n- Performant\r\n- Robust\r\n- Great Docs\r\n\r\n<a name=\"msportalfx-test-overview-general-architecture\"></a>\n#### General Architecture\r\n3 layers of abstraction (note the names may change but the general idea should be the same).  There may also be some future refactoring to easily differentiate between the layers.\r\n- Test layer \r\n\r\n    - Useful wrappers for testing common functionality.  Will retry if necessary.  Throws if the test/verification fails.  \r\n    - Should be used in writing tests\r\n    - Built upon the action and control layers\r\n    - EG: parts.canPinAllBladeParts\r\n    \r\n- Action layer \r\n\r\n    - Performs an action and verifies it was successful.  Will retry if necessary.\r\n    - Should be used in writing tests\r\n    - Built upon the controls layer\r\n    - EG: portal.openBrowseBlade\r\n    \r\n- Controls layer \r\n\r\n    - The basic controls used in the portal (eg blades, checkboxes, textboxes, etc).  Little to no retry logic.  Should be used mainly for composing the actions and tests layers.\r\n    - Should be used for writing test and action layers.  Should not be used directly by tests in most cases.\r\n    - Built upon webdriver primitives\r\n    - EG: part, checkbox, etc  \r\n\r\n\r\n<a name=\"msportalfx-test-getting-started\"></a>\n## Getting Started\r\n\r\n<a name=\"msportalfx-test-getting-started-installation\"></a>\n### Installation\r\n\r\n1. Install [Node.js](https://nodejs.org) if you have not done so. This will also install npm, which is the package manager for Node.js.  We have only verified support for LTS Node versions 4.5 and 5.1 which can be found in the \"previous downloads\" section.  Newer versions of Node are known to have compilation errors.  \r\n1. Install [Node Tools for Visual Studio](https://www.visualstudio.com/en-us/features/node-js-vs.aspx)\r\n1. Install [TypeScript](http://www.typescriptlang.org/) 1.8.10 or greater.\r\n1. Verify that your:\r\n    - node version is v4.5 or v5.1 using `node -v`\r\n    - npm version is 3.10.6 or greater using `npm -v`.  To update npm version use `npm install npm -g`\r\n    - tsc version is 1.8.10 or greater using tsc -v.\r\n\r\n1. Open a command prompt and create a directory for your test files.\r\n\r\n\t\tmd e2etests \r\n\r\n1. Switch to the new directory and install the msportalfx-test module via npm:\r\n\r\n\t\tcd e2etests\r\n\t\tnpm install msportalfx-test --no-optional\r\n\r\n1. The msportalfx-test module comes with useful TypeScript definitions and its dependencies. To make them available to your tests, we recommend that you use the [typings](https://www.npmjs.com/package/typings) Typescript Definition Manager.\r\n\r\n1. First install the [typings](https://www.npmjs.com/package/typings) Typescript Definition Manager globally:\r\n\r\n\t\tnpm install typings -g\r\n\r\n\tNext copy the provided **typings.json** file from the **node_modules/msportalfx-test/typescript** folder to your test root directory and use *typings* to install the provided definitions:\r\n\r\n\t\t*copy typings.json to your test root directory*\r\n        *navigate to your test root directory*\r\n\t\ttypings install\r\n\r\n1. MsPortalFx-Test needs a WebDriver server in order to be able to drive the browser. Currently only [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver) is supported, so downloaded it and place it in your machine's PATH or just install it from the [chromedriver Node module](https://www.npmjs.com/package/chromedriver).  You may also need a C++ compiler (Visual Studio includes one):\r\n\r\n\t\tnpm install chromedriver\r\n\r\n\r\n<a name=\"msportalfx-test-getting-started-write-a-test\"></a>\n### Write a test\r\nYou'll need an existing cloud service for the test you'll write below, so if you don't have one please go to the Azure Portal and [create a new cloud service](https://ms.portal.azure.com/#create/Microsoft.CloudService). Write down the dns name of your cloud service to use it in your test.\r\n\r\nWe'll use the [Mocha](https://mochajs.org/) testing framework to layout the following test, but you could use any framework that supports Node.js modules and promises. Let's install Mocha (its typescript definitions are already installed from the typings install earlier):\r\n\r\n\tnpm install mocha\r\n\r\nNow, create a **portaltests.ts** file in your e2etests directory and paste the following:\r\n\r\n```ts\r\n/// <reference path=\"./typings/index.d.ts\" />\r\n\r\nimport assert = require('assert');\r\nimport testFx = require('MsPortalFx-Test');\r\nimport nconf = require('nconf');\r\nimport until = testFx.until;\r\n\r\ndescribe('Cloud Service Tests', function () {\r\n\tthis.timeout(0);\r\n\t\r\n\tit('Can Browse To A Cloud Service', () => {\r\n\r\n\t\t\r\n        // Load command line arguments, environment variables and config.json into nconf\r\n        nconf.argv()\r\n            .env()\r\n            .file(__dirname + \"/config.json\");\r\n\r\n        //provide windows credential manager as a fallback to the above three\r\n        nconf[testFx.Utils.NConfWindowsCredentialManager.ProviderName] = testFx.Utils.NConfWindowsCredentialManager;\r\n        nconf.use(testFx.Utils.NConfWindowsCredentialManager.ProviderName);\r\n        \r\n\t\t\r\n\t\ttestFx.portal.portalContext.signInEmail = 'johndoe@outlook.com';\r\n\t\ttestFx.portal.portalContext.signInPassword = nconf.get('msportalfx-test/johndoe@outlook.com/signInPassword');\r\n\t\t\r\n\t\t// Update this variable to use the dns name of your actual cloud service \r\n\t\tlet dnsName = \"mycloudservice\";\r\n\t\t\r\n\t\treturn testFx.portal.openBrowseBlade('microsoft.classicCompute', 'domainNames', \"Cloud services (classic)\").then((blade) => {\r\n\t\t\treturn blade.filterItems(dnsName);\r\n\t\t}).then((blade) => {\r\n            return testFx.portal.wait<testFx.Controls.GridRow>(() => {\r\n                return blade.grid.rows.count().then((count) => {\r\n                    return count === 1 ? blade.grid.rows.first() : null;\r\n                });\r\n            }, null, \"Expected only one row matching '\" + dnsName + \"'.\");\r\n        }).then((row) => {\r\n            return row.click();\t\t\t\r\n\t\t}).then(() => {            \r\n\t\t\tlet summaryBlade = testFx.portal.blade({ title: dnsName + \" - Production\" });\r\n            return testFx.portal.wait(until.isPresent(summaryBlade));\r\n\t\t}).then(() => {\r\n\t\t\treturn testFx.portal.quit();\r\n\t\t});\r\n\t});\r\n});\r\n```\r\n1. write credentials to the windows credential manager\r\n\r\n```\r\n    cmdkey /generic:msportalfx-test/johndoe@outlook.com/signInPassword /user:johndoe@outlook.com /pass:somePassword\r\n```\r\n\r\nRemember to replace \"mycloudservice\" with the dns name of your actual cloud service.\r\n\r\nIn this test we start by importing the **MsPortalFx-Test** module. Then the credentials are specified for the user that will sign in to the Portal. These should be the credentials of a user that already has an active Azure subscription. \r\n\r\nAfter that we can use the Portal object to drive a test scenario that opens the Cloud Services Browse blade, filters the list of cloud services, checks that the grid has only one row after the filter, selects the only row and waits for the correct blade to open. Finally, the call to quit() closes the browser.\r\n\r\n<a name=\"msportalfx-test-getting-started-add-the-configuration\"></a>\n### Add the configuration\r\n\r\nCreate a file named **config.json** next to portaltests.ts. Paste this in the file:\r\n\r\n\t```json\r\n\r\n\t\t{\r\n\t\t\"capabilities\": {\r\n\t\t\t\"browserName\": \"chrome\"\r\n\t\t},\r\n\t\t\"portalUrl\": \"https://portal.azure.com\"\r\n\t\t}\r\n\r\n\t```\t\r\n\r\nThis configuration tells MsPortalFx-Test that Google Chrome should be used for the test session and [https://portal.azure.com](https://portal.azure.com) should be the Portal under test. \r\n\r\n<a name=\"msportalfx-test-getting-started-compile-and-run\"></a>\n### Compile and run\r\nCompile your TypeScript test file:\r\n\r\n\ttsc portaltests.ts --module commonjs\r\n\r\n...and then run Mocha against the generated JavaScript file (note using an elevated command prompt may cause Chrome to crash.  Use a non-elevated command prompt for best results):\r\n\r\n\tnode_modules\\.bin\\mocha portaltests.js\r\n\r\nThe following output will be sent to your console as the test progresses:\r\n\r\n\t  Portal Tests\r\n\tOpening the Browse blade for the microsoft.classicCompute/domainNames resource type...\r\n\tStarting the ChromeDriver process...\r\n\tPerforming SignIn...\r\n\tWaiting for the Portal...\r\n\tWaiting for the splash screen to go away...\r\n\tApplying filter 'mycloudservice'...\r\n\t    √ Can Browse To A Cloud Service (37822ms)\t\r\n\t\r\n\t  1 passing (38s)\r\n\r\nIf you run into a compilation error with node.d.ts, verify that the tsc version you are using is 1.8.x (we do not currently support Typescript 2+).  You can check the version by running:\r\n    \r\n    tsc --version\r\n\r\nIf the version is incorrect, then you may need to adjust your path variables or directly call the correct version of tsc.exe  \r\n\r\n<a name=\"msportalfx-test-getting-started-updating\"></a>\n### Updating\r\n\r\n1.  In order to keep up to date with the latest changes, we recommend that you update whenever a new version of MsportalFx-Test is released.  npm install will automatically pull the latest version of msportalfx-test. \r\n \r\n        Make sure to copy typescript definition files in your *typings\\* folder from the updated version in *\\node_modules\\msportalfx-test\\typescript*.  \r\n      \r\n<a name=\"msportalfx-test-getting-started-more-examples\"></a>\n### More Examples\r\nMore examples can be found\r\n- within this document\r\n- in the [msportalfx-test /test folder] (https://github.com/Azure/msportalfx-test/tree/master/test) \r\n- and the [Contacts Extension Tests](http://vstfrd:8080/Azure/One/_git/AzureUX-PortalFx#path=%2Fsrc%2FSDK%2FAcceptanceTests%2FExtensions%2FContactsExtension%2FTests). \r\n\r\nIf you don't have access, please follow the enlistment instructions below.\r\n \r\n<a name=\"msportalfx-test-getting-started-running-tests-in-visual-studio\"></a>\n### Running tests in Visual Studio\r\n \r\n1. Install [Node Tools for Visual Studio](https://www.visualstudio.com/en-us/features/node-js-vs.aspx) (Note that we recommend using the Node.js “LTS” versions rather than the “Stable” versions since sometimes NTVS doesn’t work with newer Node.js versions.)\r\n\r\n1. Once that’s done, you should be able to open Visual Studio and then create new project: *New -> Project -> Installed, Templates, TypeScript, Node.js -> From Existing Node.js code*.\r\n\r\n![NewTypeScriptNodeJsExistingProject][NewTypeScriptNodeJsExistingProject]\r\n\r\n1. Then open the properties on your typescript file and set the TestFramework property to “mocha”.\r\n\r\n![FileSetTestFrameworkPropertyMocha][FileSetTestFrameworkPropertyMocha]\r\n\r\n1. Once that is done you should be able to build and then see your test in the test explorer.  If you don’t see your tests, then make sure you don’t have any build errors.  You can also try restarting Visual Studio to see if that makes them show up.  \r\n\r\n[FileSetTestFrameworkPropertyMocha]: /docs/media/msportalfx-test/FileSetTestFrameworkPropertyMocha.png\r\n[NewTypeScriptNodeJsExistingProject]: /docs/media/msportalfx-test/NewTypeScriptNodeJsExistingProject.png\r\n\r\n\r\n<a name=\"msportalfx-test-side-loading-a-local-extension-during-the-test-session\"></a>\n## Side loading a local extension during the test session\r\n\r\nYou can use MsPortalFx-Test to write end to end tests that side load your local extension in the Portal. You can do this by specifying additional options in the Portal object. If you have not done so, please take a look at the *Installation* section of [this page](https://auxdocs.azurewebsites.net/en-us/documentation/articles/portalfx-testing-getting-started) to learn how to get started with MsPortalFx-Test. \r\n\r\nWe'll write a test that verifies that the Browse experience for our extension has been correctly implemented. But before doing that we should have an extension to test and something to browse to, so let's work on those first.\r\n\r\n**To prepare the target extension and resource:**\r\n\r\n1. Create a new Portal extension in Visual Studio following [these steps](https://auxdocs.azurewebsites.net/en-us/documentation/articles/portalfx-creating-extensions) and then hit CTRL+F5 to get it up and running. For the purpose of this example we named the extension 'LocalExtension' and we made it run in the default [https://localhost:44300](https://localhost:44300) address. \r\n\r\n1. That should have taken you to the Portal, so sign in and then go to New --> Marketplace --> Local Development --> LocalExtension --> Create.\r\n\r\n1. In the **My Resource** blade, enter **theresource** as the resource name, complete the required fields and hit Create.\r\n\r\n1. Wait for the resource to get created.\r\n\r\n\r\n**To write a test verifies the Browse experience while side loading your local extension:**\r\n\r\n1. Create a new TypeScript file called **localextensiontests.ts**.\r\n \r\n1. In the created file, import the MsPortalFx-Test module and layout the Mocha test:\r\n\r\n\t```ts\r\n\t/// <reference path=\"./typings/index.d.ts\" />\r\n\t\r\n\timport assert = require('assert');\r\n\timport testFx = require('MsPortalFx-Test');\r\n\timport until = testFx.until;\r\n\t\r\n\tdescribe('Local Extension Tests', function () {\r\n\t\tthis.timeout(0);\r\n\t\r\n\t\tit('Can Browse To The Resource Blade', () => {\r\n\t\t\t\r\n\t\t});\r\n\t});\r\n\t```\r\n\r\n1. In the **Can Browse To The Resource Blade** test body,  specify the credentials for the test session (replace with your actual Azure credentials):\r\n \r\n\t```ts\r\n\t// Hardcoding credentials to simplify the example, but you should never hardcode credentials\r\n\ttestFx.portal.portalContext.signInEmail = 'johndoe@outlook.com';\r\n\ttestFx.portal.portalContext.signInPassword = '12345';\r\n\t```\r\n\r\n1. Now, use the **features** option of the portal.PortalContext object to enable the **canmodifyextensions** feature flag and use the **testExtensions** option to specify the name and address of the local extension to load:\r\n \r\n\t```ts\r\n\ttestFx.portal.portalContext.features = [{ name: \"feature.canmodifyextensions\", value: \"true\" }];\r\n\ttestFx.portal.portalContext.testExtensions = [{ name: 'LocalExtension', uri: 'https://localhost:44300/' }];\r\n\t```\r\n\r\n1. Let's also declare a variable with the name of the resource that the test will browse to:\r\n\r\n\t```ts\r\n\tlet resourceName = 'theresource';\r\n\t```\r\n \r\n1. To be able to open the browse blade for our resource we'll need to know three things: The resource provider, the resource type and the title of the blade. You can get all that info from the Browse PDL implementation of your extension. In this case the resource provider is **Microsoft.PortalSdk**, the resource type is **rootResources** and the browse blade title is **My Resources**. With that info we can call the **openBrowseBlade** function of the Portal object:\r\n\r\n\t```ts\r\n\treturn testFx.portal.openBrowseBlade('Microsoft.PortalSdk', 'rootResources', 'My Resources')\r\n\t```\r\n \r\n1. From there on we can use the returned Blade object to filter the list, verify that only one row remains after filtering and select that row:\r\n\t\r\n\t```ts\r\n\t.then((blade) => {\r\n        return testFx.portal.wait<testFx.Controls.GridRow>(() => {\r\n            return blade.grid.rows.count().then((count) => {\r\n                return count === 1 ? blade.grid.rows.first() : null;\r\n            });\r\n        }, null, \"Expected only one row matching '\" + resourceName + \"'.\");\r\n    }).then((row) => {\r\n        return row.click();\t\t\t\t\r\n\t})\r\n\t```\r\n\r\n1. And finally we'll verify the correct blade opened and will close the Portal when done:\r\n\r\n\t```ts\r\n\t.then(() => {\r\n\t\tlet summaryBlade = testFx.portal.blade({ title: resourceName });\r\n\t\treturn testFx.portal.wait(until.isPresent(summaryBlade));\r\n\t}).then(() => {\r\n\t\treturn testFx.portal.quit();\r\n\t});\r\n\t```\r\n\r\n1. Here for the complete test:\r\n\r\n```ts\r\n/// <reference path=\"./typings/index.d.ts\" />\r\n\r\nimport assert = require('assert');\r\nimport testFx = require('MsPortalFx-Test');\r\nimport until = testFx.until;\r\n\r\ndescribe('Local Extension Tests', function () {\r\n    this.timeout(0);\r\n\r\n    it('Can Browse To The Resource Blade', () => {\r\n        // Hardcoding credentials to simplify the example, but you should never hardcode credentials\r\n        testFx.portal.portalContext.signInEmail = 'johndoe@outlook.com';\r\n        testFx.portal.portalContext.signInPassword = '12345';\r\n        testFx.portal.portalContext.features = [{ name: \"feature.canmodifyextensions\", value: \"true\" }];\r\n        testFx.portal.portalContext.testExtensions = [{ name: 'LocalExtension', uri: 'https://localhost:44300/' }];\r\n        \r\n        let resourceName = 'theresource';\r\n        \r\n        return testFx.portal.openBrowseBlade('Microsoft.PortalSdk', 'rootResources', 'My Resources').then((blade) => {\r\n            return blade.filterItems(resourceName);\r\n        }).then((blade) => {\r\n            return testFx.portal.wait<testFx.Controls.GridRow>(() => {\r\n                return blade.grid.rows.count().then((count) => {\r\n                    return count === 1 ? blade.grid.rows.first() : null;\r\n                });\r\n            }, null, \"Expected only one row matching '\" + resourceName + \"'.\");\r\n        }).then((row) => {\r\n            return row.click();\t\t\t\t\r\n        }).then(() => {\r\n            let summaryBlade = testFx.portal.blade({ title: resourceName });\r\n            return testFx.portal.wait(until.isPresent(summaryBlade));\r\n        }).then(() => {\r\n            return testFx.portal.quit();\r\n        });\r\n    });\r\n});\r\n```\r\n\r\n**To add the required configuration and run the test:**\r\n\r\n1. Create a file named **config.json** next to localextensiontests.ts. Paste this in the file:\r\n\r\n\t```json\r\n\t{\r\n\t  \"capabilities\": {\r\n\t    \"browserName\": \"chrome\"\r\n\t  },\r\n\t  \"portalUrl\": \"https://portal.azure.com\"\r\n\t}\r\n\t```\t\t\r\n\r\n1. Compile your TypeScript test file:\r\n\r\n\t\ttsc localextensiontests.ts --module commonjs\r\n\r\n1. Run Mocha against the generated JavaScript file:\r\n\r\n\t\tnode_modules\\.bin\\mocha localextensiontests.js\r\n\r\nThe following output will be sent to your console as the test progresses:\r\n\r\n\t  Local Extension Tests\r\n\tOpening the Browse blade for the Microsoft.PortalSdk/rootResources resource type...\r\n\tStarting the ChromeDriver process...\r\n\tPerforming SignIn...\r\n\tWaiting for the Portal...\r\n\tWaiting for the splash screen...\r\n\tAllowing trusted extensions...\r\n\tWaiting for the splash screen to go away...\r\n\tApplying filter 'theresource'...\r\n\t    √ Can Browse To The Resource Blade (22872ms)\r\n\t\r\n\t\r\n\t  1 passing (23s)\r\n\r\n<a name=\"msportalfx-test-running\"></a>\n## Running\r\n\r\n<a name=\"msportalfx-test-running-in-dev\"></a>\n### In Dev\r\n\r\n<a name=\"msportalfx-test-running-in-dev-from-vs\"></a>\n#### From VS\r\n\r\n<a name=\"msportalfx-test-running-in-dev-from-cmdline\"></a>\n#### From cmdline\r\n\r\n<a name=\"msportalfx-test-running-ci\"></a>\n### CI\r\n\r\n<a name=\"msportalfx-test-running-ci-cloudtest\"></a>\n#### Cloudtest\r\n\r\nRunning mocha nodejs tests in cloudtest requires a bit of engineering work to set up the test VM. Unfortunetly, the nodejs test adaptor cannot be used with vs.console.exe since it requires a full installation of Visual Studio which is absent on the VMs. Luckily, we can run a script to set up our environment and then the Exe Execution type for our TestJob against the powershell/cmd executable.\r\n\r\n<a name=\"msportalfx-test-running-ci-cloudtest-environment-setup\"></a>\n##### Environment Setup\r\nNodejs (and npm) is already installed on the cloudtest VMs. Chrome is not installed by default, so we can include the chrome executable in our build drop for quick installation.\r\n\r\nsetup.bat\r\n```\r\ncd UITests\r\ncall npm install --no-optional\r\ncall npm install -g typescript\r\ncall \"%APPDATA%\\npm\\tsc.cmd\"\r\ncall chrome_installer.exe /silent /install\r\nexit 0\r\n```\r\n\r\n<a name=\"msportalfx-test-running-ci-cloudtest-running-tests\"></a>\n##### Running Tests\r\nUse the Exe execution type in your TestJob to specify the powershell (or cmd) exe. Then, point to a script which will run your tests:\r\n\r\nTestGroup.xml\r\n```\r\n<TestJob Name=\"WorkspaceExtension.UITests\" Type=\"SingleBox\" Size=\"Small\" Tags=\"Suite=Suite0\">\r\n    <Execution Type=\"Exe\" Path=\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" Args='[SharedWorkingDirectory]\\UITests\\RunTests.ps1' />\r\n</TestJob>\r\n```\r\n\r\nAt the end of your script you will need to copy the resulting trx file to the TestResults folder where Cloudtest expects to pick it up from. To generate a trx file, we used the mocha-trx-reporter npm package. To pass secrets to cloudtest, you can either use test secretstore which has been configured to use a certificate installed on all cloudtest VMs for particular paths, or one of the other solutions shown [here](https://stackoverflow.microsoft.com/questions/11589/getting-ais-token-in-cloudtest-machine/11665#11665)\r\n\r\nRunTests.ps1\r\n```\r\ncd ..\\UITests\r\n\r\n$env:USER_EMAIL = ..\\StashClient\\StashClient.exe -env:test pgetdecrypted -name:Your/Secret/Path -cstorename:My -cstorelocation:LocalMachine -cthumbprint:0000000000000000000000000000000000000000\r\n\r\n$env:USER_PASSWORD = ..\\StashClient\\StashClient.exe -env:test pgetdecrypted -name:Your/Secret/Path -cstorename:My -cstorelocation:LocalMachine -cthumbprint:0000000000000000000000000000000000000000\r\n\r\n$env:TEST_ENVIRONMENT = [environment]::GetEnvironmentVariable(\"TEST_ENVIRONMENT\",\"Machine\")\r\n\r\nmocha WorkspaceTests.js --reporter mocha-trx-reporter --reporter-file ./TestResults/result.trx\r\n\r\nxcopy TestResults\\* ..\\TestResults\r\n```\r\n\r\nTo pass non-secret parameters to your cloudtest session (and the msportalfx-tests) use the props switch when kicking off a cloudtest session. The properties will become machine level environment variables on your cloudtest VM. Once these are set as environment variables of the session, you can use nconf to pick them up in your UI test configuration.\r\n```\r\nct -t \"amd64\\CloudTest\\TestMap.xml\" -tenant Default -BuildId \"GUID\" -props worker:TEST_ENVIRONMENT=canary\r\n```\r\n\r\n<a name=\"msportalfx-test-running-ci-windows-azure-engineering-system-waes\"></a>\n#### Windows Azure Engineering System (WAES)\r\n\r\nSee [WAES](http://aka.ms/WAES)\r\n\r\n<a name=\"msportalfx-test-running-ci-jenkins\"></a>\n#### Jenkins\r\n\r\n<a name=\"msportalfx-test-running-ci-how-to-setup-test-run-parallelization\"></a>\n#### How to setup test run parallelization\r\n\r\n<a name=\"msportalfx-test-debugging\"></a>\n## Debugging\r\n\r\n<a name=\"msportalfx-test-debugging-debug-tests-101\"></a>\n### debug tests 101\r\n\r\n<a name=\"msportalfx-test-debugging-debugging-tests-in-vs-code\"></a>\n### debugging tests in VS Code\r\nIf you run mocha with the --debug-brk flag, you can press F5 and the project will attach to a debugger. \r\n\r\n<a name=\"msportalfx-test-debugging-checking-the-result-of-the-currently-running-test-in-code\"></a>\n### Checking the result of the currently running test in code\r\n\r\nSometimes it is useful to get the result of the currently running test, for example: you want to take a screenshot only when the test fails.\r\n\r\n```ts\r\n\r\n    afterEach(function () {\r\n        if (this.currentTest.state === \"failed\") {\r\n            return testSupport.GatherTestFailureDetails(this.currentTest.title);\r\n        }\r\n    });\r\n\r\n```\r\n\r\nOne thing to watch out for in typescript is how lambda functions, \"() => {}\", behave.  Lambda functions (also called \"fat arrow\" sometimes) in Typescript capture the \"this\" variable from the surrounding context.  This can cause problems when trying to access Mocha's current test state.  See [arrow functions](https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html) for details.\r\n\r\n<a name=\"msportalfx-test-debugging-how-to-take-a-screenshot-of-the-browser\"></a>\n### How to take a screenshot of the browser\r\n\r\nThis is an example of how to take a screenshot of what is currently displayed in the browser.  \r\n\r\n```ts\r\n//1. import test fx\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n    var screenshotPromise = testFx.portal.takeScreenshot(ScreenshotTitleHere);\r\n```\r\n\r\nTaking a screenshot when there is a test failure is a handy way to help diagnose issues.  If you are using the mocha test runner, then you can do the following to take a screenshot whenever a test fails:\r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n    afterEach(function () {\r\n        if (this.currentTest.state === \"failed\") {\r\n            return testSupport.GatherTestFailureDetails(this.currentTest.title);\r\n        }\r\n    });\r\n\r\n```\r\n\r\n<a name=\"msportalfx-test-debugging-how-to-capture-browser-console-output\"></a>\n### How to capture browser console output\r\n\r\nWhen trying to identify reasons for failure of a test its useful to capture the console logs of the browser that was used to execute your test. You can capture the logs at a given level e.g error, warning, etc or at all levels using the LogLevel parameter. The following example demonstrates how to call getBrowserLogs and how to work with the result. getBrowserLogs will return a Promise of string[] which when resolved will contain the array of logs that you can view during debug or write to the test console for later analysis.    \r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        return testFx.portal.goHome(20000).then(() => {\r\n            return testFx.portal.getBrowserLogs(LogLevel.All);\r\n        }).then((logs) => {\r\n            assert.ok(logs.length > 0, \"Expected to collect at least one log.\");\r\n        });\r\n\r\n```\r\n\r\n<a name=\"msportalfx-test-debugging-callstack\"></a>\n### Callstack\r\n\r\n<a name=\"msportalfx-test-debugging-test-output-artifacts\"></a>\n### Test output artifacts\r\n\r\n<a name=\"msportalfx-test-localization\"></a>\n## Localization\r\n\r\n<a name=\"msportalfx-test-user-management\"></a>\n## User Management\r\n\r\n<a name=\"msportalfx-test-configuration\"></a>\n## Configuration\r\n\r\n<a name=\"msportalfx-test-configuration-configuration-options\"></a>\n### Configuration options\r\nThis document will describe the behavior and list common configuration settings used by the MsPortalFx-Test framework.\r\n\r\n<a name=\"msportalfx-test-configuration-configuration-options-behavior\"></a>\n#### Behavior\r\nThe test framework will search for a config.json in the current working directory (usually the directory the test is invoked from).  If no config.json is found then it will check the parent folder for a config.json (and so on...).\r\n\r\n<a name=\"msportalfx-test-configuration-configuration-options-portalcontext\"></a>\n#### PortalContext\r\nThis file contains a list of configuration values used by the test framework for context when running tests against the portal.\r\nThese values are mutable to allow test writers to set the values in cases where they prefer not to store them in the config.json.\r\n**We strongly recommend that passwords should not be stored in the config.json file.**\r\n\r\n```ts\r\n﻿import TestExtension = require(\"./TestExtension\");\r\nimport Feature = require(\"./Feature\");\r\nimport BrowserResolution = require(\"./BrowserResolution\");\r\nimport Timeout = require(\"./Timeout\");\r\n\r\n/**\r\n * Represents The set of options used to configure a Portal instance.\r\n */\r\ninterface PortalContext {\r\n    /**\r\n     * The set of capabilities enabled in the webdriver session. \r\n     * For a list of available capabilities, see https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities\r\n     */    \r\n    capabilities: {\r\n        /**\r\n         * The name of the browser being used; should be one of {chrome} \r\n         */\r\n        browserName: string;\r\n\r\n        /**\r\n         * Chrome-specific supported capabilities. \r\n         */\r\n        chromeOptions: {\r\n            /**\r\n             * List of command-line arguments to use when starting Chrome.\r\n             */\r\n            args: string[]\r\n        };\r\n\r\n        /**\r\n         * The desired starting browser's resolution in pixels.\r\n         */\r\n        browserResolution: BrowserResolution;\r\n    },\r\n    /**\r\n     * The path to the ChromeDriver binary. \r\n     */\r\n    chromeDriverPath?: string;\r\n    /**\r\n     * The url of the Portal.\r\n     */\r\n    portalUrl: string;\r\n    /**\r\n     * The url of the page where signin is performed.\r\n     */\r\n    signInUrl?: string;\r\n    /**\r\n     * Email of the user used to sign in to the Portal.\r\n     */\r\n    signInEmail?: string;\r\n    /**\r\n     * Password of the user used to sign in to the Portal.\r\n     */\r\n    signInPassword?: string;    \r\n    /**\r\n     * The set of features to enable while navigating within the Portal.\r\n     */\r\n    features?: Feature[];\r\n    /**\r\n     * The list of patch files to load within the Portal.\r\n     */\r\n    patches?: string[];\r\n    /**\r\n     * The set of extensions to side load while navigating within the Portal.\r\n     */\r\n    testExtensions?: TestExtension[];\r\n    /**\r\n     * The set of timeouts used to override the default timeouts.\r\n     * e.g. \r\n     * timeouts: {\r\n     *      timeout: 15000  //Overrides the default short timeout of 10000 (10 seconds).\r\n     *      longTimeout: 70000 //Overrides the default long timetout of 60000 (60 seconds).\r\n     * }\r\n     */\r\n    timeouts?: Timeout;\r\n}\r\n\r\nexport = PortalContext;\r\n```\r\n\r\n<a name=\"msportalfx-test-configuration-configuration-options-running-tests-against-the-dogfood-environment\"></a>\n#### Running tests against the Dogfood environment\r\nIn order to run tests against the Dogfood test environment, you will need to update the follow configuration settings in the config.json:\r\n\r\n```json\r\n{\r\n  portalUrl: https://df.onecloud.azure-test.net/,\r\n  signInUrl: https://login.windows-ppe.net/\r\n}\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios\"></a>\n## Scenarios\r\n\r\n<a name=\"msportalfx-test-scenarios-create\"></a>\n### Create\r\n\r\n<a name=\"msportalfx-test-scenarios-create-opening-the-create-blade-from-a-deployed-gallery-package\"></a>\n#### Opening the create blade from a deployed gallery package\r\n\r\nTo open/navigate to the create blade a gallery package previously deployed to the Azure Marketplace you can use `portal.openGalleryCreateBlade`.  The returned promise will resolve with the CreateBlade defined by that gallery package. \r\n\r\n```ts \r\nimport TestFx = require('MsPortalFx-Test');\r\n...\r\nFromLocalPackage\r\n        ////return testFx.portal.openGalleryCreateBladeFromLocalPackage(\r\n        ////    extensionResources.samplesExtensionStrings.Engine.engineV3,     //title of the item in the marketplace e.g \"EngineV3\"\r\n        ////    extensionResources.samplesExtensionStrings.Engine.createEngine, //the title of the blade that will be opened e.g \"Create Engine\"\r\n        ////    10000)                                                          //an optional timeout to wait on the blade\r\n        ////    .then(() => createEngineBlade.checkFieldValidation())\r\n        ////    .then(() => createEngineBlade.fillRequiredFields(resourceName, \"600cc\", \"type1\", subscriptionName, resourceName, locationDescription))\r\n        ////    .then(() => createEngineBlade.actionBar.pinToDashboardCheckbox.click())\r\n        ////    .then(() => createEngineBlade.actionBar.createButton.click())\r\n        ////    .then(() => testFx.portal.wait(until.isPresent(testFx.portal.blade({ title: resourceName })), 120000, \"The resource blade was not opened, could be deployment timeout.\"));\r\n        ////\r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-create-opening-the-create-blade-from-a-local-gallery-package\"></a>\n#### Opening the create blade from a local gallery package\r\n\r\nTo open/navigate to the create blade a local gallery package that has been side loaded into the portal along with your extension you can use `portal.openGalleryCreateBladeFromLocalPackage`.  The returned promise will resolve with the CreateBlade defined by that gallery package. \r\n\r\n```ts \r\nimport TestFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        ////return testFx.portal.openGalleryCreateBladeFromLocalPackage(\r\n        ////    extensionResources.samplesExtensionStrings.Engine.engineV3,     //title of the item in the marketplace e.g \"EngineV3\"\r\n        ////    extensionResources.samplesExtensionStrings.Engine.createEngine, //the title of the blade that will be opened e.g \"Create Engine\"\r\n        ////    10000)                                                          //an optional timeout to wait on the blade\r\n        ////    .then(() => createEngineBlade.checkFieldValidation())\r\n        ////    .then(() => createEngineBlade.fillRequiredFields(resourceName, \"600cc\", \"type1\", subscriptionName, resourceName, locationDescription))\r\n        ////    .then(() => createEngineBlade.actionBar.pinToDashboardCheckbox.click())\r\n        ////    .then(() => createEngineBlade.actionBar.createButton.click())\r\n        ////    .then(() => testFx.portal.wait(until.isPresent(testFx.portal.blade({ title: resourceName })), 120000, \"The resource blade was not opened, could be deployment timeout.\"));\r\n        ////\r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-create-validation-state\"></a>\n#### Validation State\r\n\r\n<a name=\"msportalfx-test-scenarios-create-get-the-validation-state-of-fields-on-your-create-form\"></a>\n#### Get the validation state of fields on your create form\r\n\r\n`FormElement` exposes two useful functions for working with the ValidationState of controls. \r\n\r\nThe function `getValidationState` returns a promise that resolves with the current state of the control and can be used as follows\r\n\r\n```ts\r\nimport TestFx = require('MsPortalFx-Test');\r\n...\r\n\r\n            //click the createButton on the create blade to fire validation\r\n            .then(() => this.actionBar.createButton.click())\r\n            //get the validation state of the control\r\n            .then(() => this.name.getValidationState())\r\n            //assert state matches expected\r\n            .then((state) => assert.equal(state, testFx.Constants.ControlValidationState.invalid, \"name should have invalid state\"));\r\n...\r\n\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-create-wait-on-a-fields-validation-state\"></a>\n#### Wait on a fields validation state\r\n\r\nThe function `waitOnValidationState(someState, optionalTimeout)` returns a promise that resolves when the current state of the control is equivalent to someState supplied.  This is particularly useful for scenarions where you may be performing serverside validation and the control remains in a pending state for the duration of the network IO.\r\n\r\n```ts\r\nimport TestFx = require('MsPortalFx-Test');\r\n...\r\n\r\n            //change the value to initiate validation\r\n            .then(() => this.name.sendKeys(nameTxt + webdriver.Key.TAB))\r\n            //wait for the control to reach the valid state\r\n            .then(() => this.name.waitOnValidationState(testFx.Constants.ControlValidationState.valid))\r\n...\r\n\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-browse\"></a>\n### Browse\r\n\r\n<a name=\"msportalfx-test-scenarios-browse-how-to-test-the-context-menu-in-browse-shows-your-extensions-commands\"></a>\n#### How to test the context menu in browse shows your extensions commands?\r\n\r\nThere is a simple abstraction available in MsPortalFx.Tests.Browse.  You can use it as follows: \r\n\r\n```ts\r\n//1. import test fx\r\nimport TestFx = require('MsPortalFx-Test');\r\n\r\n...\r\n\r\nit(\"Can Use Context Click On Browse Grid Rows\", () => {\r\n    ...\r\n//2. Setup an array of commands that are expected to be present in the context menu\r\n//  and call the contextMenuContainsExpectedCommands on Tests.Browse. \r\n    //  The method will assert expectedCommands match what was displayed  \r\n    \r\n        const expectedContextMenuCommands: Array<string> = [\r\n            PortalFxResources.pinToDashboard,\r\n            extensionResources.hubsExtension.resourceGroups.deleteResourceGroupLabel\r\n        ];\r\n        return testFx.Tests.Browse.contextMenuContainsExpectedCommands(\r\n            resourceProvider, // the resource provider e.g \"microsoft.classicCompute\"\r\n            resourceType, // the resourceType e.g \"domainNames\"\r\n            resourceBladeTitle, // the resource blade title \"Cloud services (classic)\"\r\n            expectedContextMenuCommands) \r\n});\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-browse-how-to-test-the-grid-in-browse-shows-the-expected-default-columns-for-your-extension-resource\"></a>\n#### How to test the grid in browse shows the expected default columns for your extension resource\r\n\r\nThere is a simple abstraction available in MsPortalFx.Tests.Browse.  You can use it as follows:\r\n\r\n```ts\r\n//1. import test fx\r\nimport TestFx = require('MsPortalFx-Test');\r\n\r\n...\r\n\r\nit(\"Browse contains default columns with expected column header\", () => {\r\n // 2. setup an array of expectedDefaultColumns to be shown in browse\r\n\r\n    const expectedDefaultColumns: Array<testFx.Tests.Browse.ColumnTestOptions> =\r\n        [\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.name },\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.subscription },\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.location },\r\n        ];\r\n\r\n// 3. call the TestFx.Tests.Browse.containsExpectedDefaultColumns function.\r\n// This function this will perform a reset columns action in browse and then assert\r\n// the expectedDefaultColumns match what is displayed\r\n\r\n        return testFx.Tests.Browse.containsExpectedDefaultColumns(\r\n           resourceProvider,\r\n           resourceType,\r\n           resourceBladeTitle,\r\n           expectedDefaultColumns);\r\n}\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-how-to-test-the-grid-in-browse-shows-additional-extension-resource-columns-that-are-selected\"></a>\n### How to test the grid in browse shows additional extension resource columns that are selected\r\n\r\nThere is a simple abstraction available in MsPortalFx.Tests.Browse that asserts extension resource specific columns can be selected in browse and that after selection they show up in the browse grid.  \r\nthe function is called `canSelectResourceColumns`. You can use it as follows:\r\n\r\n```ts\r\n// 1. import test fx\r\nimport TestFx = require('MsPortalFx-Test');\r\n\r\n...\r\n\r\nit(\"Can select additional columns for the resourcetype and columns have expected title\", () => {\r\n\r\n// 2. setup an array of expectedDefaultColumns to be shown in browse\r\n\r\n    const expectedDefaultColumns: Array<testFx.Tests.Browse.ColumnTestOptions> =\r\n        [\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.name },\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.subscription },\r\n            { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.location },\r\n        ];\r\n\r\n// 3. setup an array of columns to be selected and call the TestFx.Tests.Browse.canSelectResourceColumns function.\r\n// This function this will perform:\r\n//   - a reset columns action in browse \r\n//   - select the provided columnsToSelect\r\n//   - assert that brows shows the union of \r\n// the expectedDefaultColumns match what is displayed expectedDefaultColumns and columnsToSelect\r\n\r\n        const columnsToSelect: Array<testFx.Tests.Browse.ColumnTestOptions> =\r\n           [\r\n               { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.locationId },\r\n               { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.resourceGroupId },\r\n               { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.status },\r\n               { columnLabel: extensionResources.hubsExtension.resourceGroups.browse.columnLabels.subscriptionId },\r\n           ];\r\n        return testFx.Tests.Browse.canSelectResourceColumns(\r\n           resourceProvider,\r\n           resourceType,\r\n           resourceBladeTitle,\r\n           expectedDefaultColumns,\r\n           columnsToSelect); \r\n}\r\n```\r\n\r\n\r\n<a name=\"msportalfx-test-scenarios-blades\"></a>\n### Blades\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-blade-navigation\"></a>\n#### Blade navigation\r\n\r\nTo navigate to blades within msportalfx-test can use one of several approaches\r\n\r\n- via a deep link to the blade using the `portal.navigateToUriFragment` function e.g\r\n\r\n    ```ts\r\n    import testFx = require('MsPortalFx-Test');\r\n    ...\r\n    \r\n        const resourceName = resourcePrefix + guid.newGuid();\r\n        const createOptions = {\r\n            name: resourceName,\r\n            resourceGroup: resourceGroupName,\r\n            location: locationId,\r\n            resourceProvider: resourceProvider,\r\n            resourceType: resourceType,\r\n            resourceProviderApiVersion: resourceProviderApiVersion,\r\n            properties: {\r\n                displacement: \"600cc\",\r\n                model: \"type1\",\r\n                status: 0\r\n            }\r\n        };\r\n        return testSupport.armClient.createResource(createOptions)\r\n            //form deep link to the quickstart blade\r\n            .then((resourceId) => {\r\n                return testFx.portal.navigateToUriFragment(`blade/SamplesExtension/EngineQuickStartBlade/id/${encodeURIComponent(resourceId)}`)\r\n                    .then(() =>\r\n                        testFx.portal.wait(ExpectedConditions.isPresent(testFx.portal.blade({ title: resourceId, bladeType: QuickStartBlade }))));\r\n    ```\r\n\r\n- via clicking on another ux component that opens the blade\r\n\r\n    ```ts\r\n    // New sample needed\r\n    ```\r\n\r\n- via `portal.open*` functions open common portal blades like create, browse and resource summary blades. See [Opening common portal blades](#scenarios-opening-common-portal-blades)\r\n\r\n- via `portal.search` function to search for, and open browse and resource blades\r\n\r\n    ```ts\r\n    import testFx = require('MsPortalFx-Test');\r\n    ...\r\n    \r\n        const subscriptionsBlade = testFx.portal.blade({ title: testSupport.subscription });\r\n\r\n        testFx.portal.portalContext.features.push({ name: \"feature.resourcemenu\", value: \"true\" });\r\n        return testFx.portal.goHome().then(() => {\r\n            return testFx.portal.search(testSupport.subscription);\r\n        }).then((results) => {\r\n            return testFx.portal.wait<SearchResult>(() => {\r\n                const result = results[0];\r\n                return result.title.getText().then((title) => {\r\n                    return title === testSupport.subscription ? result : null;\r\n                });\r\n            });\r\n        }).then((result) => {\r\n            return result.click();\r\n        }).then(() => {\r\n            return testFx.portal.wait(until.isPresent(subscriptionsBlade));\r\n        }); \r\n    ```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-locating-an-open-blade\"></a>\n#### Locating an open blade\r\n\r\nThere are several approaches that can be used for locating an already opened blade use `testfx.portal.blade`.\r\n\r\n- by blade title\r\n    ```ts\r\n    \r\n        const resourceBlade = testFx.portal.blade({ title: resourceGroupName });\r\n    ```  \r\n \r\n- by using an existing blade type and its predefined locator\r\n    ```ts\r\n    \r\n        ////const settingsBlade = testFx.portal.blade({ bladeType: testFx.Blades.SettingsBlade });\r\n        ////\r\n    ```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades\"></a>\n#### Common portal blades\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-opening-the-extensions-create-blade\"></a>\n##### Opening the extensions Create blade\r\n\r\nSee [Opening an extensions gallery package create blade](#scenarios-create-opening-an-extensions-gallery-package-create-blade)\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-opening-the-browse-blade-for-your-resource\"></a>\n##### Opening the Browse blade for your resource\r\n\r\nTo open/navigate to the Browse blade from resource type you can use `portal.openBrowseBlade`.  The returned promise will resolve with the browse blade. \r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        return testFx.portal.openBrowseBlade(resourceProvider, resourceType, resourceBladeTitle, 20000)\r\n            .then((blade) => blade.filterItems(resourceName))\r\n...\r\n```\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-opening-a-resource-summary-blade\"></a>\n##### Opening a Resource Summary blade\r\n\r\nTo open/navigate to the Resource Summary blade for a specific resource you can use `portal.openResourceBlade`.  The returned promise will resolve with the Resource summary blade for the given resource. \r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        return testSupport.armClient.createResourceGroup(resourceGroupName, locationId)\r\n            .then((result) => testFx.portal.openResourceBlade(result.resourceGroup.id, result.resourceGroup.name, 70000))\r\n            .then(() => resourceBlade.clickCommand(extensionResources.hubsExtension.resourceGroups.deleteResourceGroupLabel))\r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-spec-picker-blade\"></a>\n##### Spec Picker Blade\r\n\r\nThe `SpecPickerBlade` can be used to select/change the current spec of a resource.  The following example demonstrates how to navigate to the spec picker for a given resource then changes the selected spec.    \r\n\r\n```ts\r\n//1. imports\r\nimport testFx = require('MsPortalFx-Test');\r\nimport SpecPickerBlade = testFx.Parts.SpecPickerBlade;\r\n\r\n\r\n        const pricingTierBlade = testFx.portal.blade({ title: extensionResources.samplesExtensionStrings.PricingTierBlade.title });\r\n        let pricingTierPart: PricingTierPart;\r\n        //2. Open navigate blade and select the pricing tier part.  \r\n        // Note if navigating to a resourceblade use testFx.portal.openResourceBlade and blade.element\r\n        return testFx.portal.navigateToUriFragment(\"blade/SamplesExtension/PricingTierV3Blade\", 15000).then(() => {\r\n            return pricingTierBlade.waitUntilBladeAndAllTilesLoaded();\r\n        }).then(() => {\r\n            pricingTierPart = testFx.portal.element(PricingTierPart);\r\n            return pricingTierPart.click();\r\n        }).then(() => {\r\n            //3. get a reference to the picker blade and pick a spec \r\n            var pickerBlade = testFx.portal.blade({ bladeType: SpecPickerBlade, title: extensionResources.choosePricingTier});\r\n            return pickerBlade.pickSpec(extensionResources.M);\r\n        }).then(() => {\r\n        \r\n```\r\n\r\nThere are also several API's available to make testing common functionality within browse such as context menu commands and column picking fucntionality for more details see [Browse Scenarios](#scenarios-browse).\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-properties-blade\"></a>\n##### Properties Blade\r\n\r\nNavigation to the `PropertiesBlade` is done via the resource summary blade. The following demonstrates how to navigate to the properties blade\r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n//2. navigate to the properties blade from the resource blade and check the value of one of the properties\r\n\r\n                return testFx.portal.openResourceBlade(resourceId, resourceName, 70000);\r\n            })\r\n            .then((resourceBlade) => {\r\n                return resourceBlade.openMenuItem(PortalFxResources.properties)\r\n            })\r\n            .then(() => {\r\n                const expectedPropertiesCount = 6;\r\n                return testFx.portal.wait(() => {\r\n                    return propertiesBlade.properties.count().then((count) => {\r\n                        return count === expectedPropertiesCount;\r\n                    });\r\n                }, null, testFx.Utils.String.format(\"Expected to have {0} properties in the Properties blade.\", expectedPropertiesCount));\r\n            }).then(() => propertiesBlade.property({ name: PortalFxResources.nameLabel }).value.getText())\r\n            .then((nameProperty) => assert.equal(nameProperty, resourceName, testFx.Utils.String.format(\"Expected the value for the 'NAME' property to be '{0}' but found '{1}'.\", resourceName, nameProperty)));\r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-quickstart-blade\"></a>\n##### QuickStart Blade\r\n\r\nUsing a deep link you can navigate directly into a `QuickStartBlade` for a resource with `Portal.navigateToUriFragment`.\r\n   \r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        const resourceName = resourcePrefix + guid.newGuid();\r\n        const createOptions = {\r\n            name: resourceName,\r\n            resourceGroup: resourceGroupName,\r\n            location: locationId,\r\n            resourceProvider: resourceProvider,\r\n            resourceType: resourceType,\r\n            resourceProviderApiVersion: resourceProviderApiVersion,\r\n            properties: {\r\n                displacement: \"600cc\",\r\n                model: \"type1\",\r\n                status: 0\r\n            }\r\n        };\r\n        return testSupport.armClient.createResource(createOptions)\r\n            //form deep link to the quickstart blade\r\n            .then((resourceId) => {\r\n                return testFx.portal.navigateToUriFragment(`blade/SamplesExtension/EngineQuickStartBlade/id/${encodeURIComponent(resourceId)}`)\r\n                    .then(() =>\r\n                        testFx.portal.wait(ExpectedConditions.isPresent(testFx.portal.blade({ title: resourceId, bladeType: QuickStartBlade }))));\r\n```\r\n\r\nWhile deeplinking is fast it does not validate that the user can actually navigate to a QuickStartBlade via a `ResourceSummaryPart` on a resource summary blade.  The following demonstrates how to verify the user can do so.\r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n//1. model your resource summary blade which contains a resource summary part\r\n\r\nimport Blade = testFx.Blades.Blade;\r\nimport ResourceSummaryControl = testFx.Controls.Essentials;\r\n\r\nclass SummaryBlade extends Blade {\r\n    public essentialsPart = this.element(ResourceSummaryControl);\r\n}\r\n\r\n...\r\n//2. navigate to the quickstart and click a link\r\n\r\n        const expectedEndTitle = resourceGroupName + \" - \" + PortalFxResx.quickStartMenu;\r\n\r\n        return testFx.portal.openResourceBlade(resourceGroupId, resourceGroupName, 70000)\r\n            //click to open the quickstart blade\r\n            .then((resourceBlade) => {\r\n                return resourceBlade.openMenuItem(PortalFxResx.quickStartMenu);\r\n            })\r\n            .then(() => {\r\n                return testFx.portal.wait(() => {\r\n                    return testFx.portal.blade({ title: expectedEndTitle });\r\n                }, null, \"Title of the blade should update to include the Quickstart suffix\");\r\n            });\r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-users-blade\"></a>\n##### Users Blade\r\n\r\nUsing a deep link you can navigate directly into the user access blade for a resource with `Portal.navigateToUriFragment`.\r\n   \r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        const resourceName = resourcePrefix + guid.newGuid();\r\n        const createOptions = {\r\n            name: resourceName,\r\n            resourceGroup: resourceGroupName,\r\n            location: locationId,\r\n            resourceProvider: resourceProvider,\r\n            resourceType: resourceType,\r\n            resourceProviderApiVersion: resourceProviderApiVersion,\r\n            properties: {\r\n                displacement: \"600cc\",\r\n                model: \"type2\",\r\n                status: 0\r\n            }\r\n        };\r\n\r\n        return testSupport.armClient.createResource(createOptions)\r\n            //form deep link to the quickstart blade\r\n            .then((resourceId) => testFx.portal.navigateToUriFragment(`blade/Microsoft_Azure_AD/UserAssignmentsBlade/scope/${resourceId}`, timeouts.defaultLongTimeout))\r\n            .then(() => testFx.portal.wait(ExpectedConditions.isPresent(testFx.portal.element(testFx.Blades.UsersBlade))));\r\n```\r\n\r\nWhile deeplinking is fast it does not validate that the user can actually navigate to a UsersBlade via a `ResourceSummaryPart` on a resource summary blade.  The following demonstrates how to verify the user can do so.\r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n//1. model your resource summary blade which contains a resource summary part\r\n\r\nimport Blade = testFx.Blades.Blade;\r\nimport ResourceSummaryControl = testFx.Controls.Essentials;\r\n\r\nclass SummaryBlade extends Blade {\r\n    public essentialsPart = this.element(ResourceSummaryControl);\r\n}\r\n\r\n...\r\n//2. navigate to the quickstart and click a link\r\n\r\n        const expectedEndTitle = resourceGroupName + \" - \" + PortalFxResx.usersMenu;\r\n\r\n        return testFx.portal.openResourceBlade(resourceGroupId, resourceGroupName, 70000)\r\n            //click to open the user access blade\r\n            .then((resourceBlade) => {\r\n                return resourceBlade.openMenuItem(PortalFxResx.usersMenu);\r\n            })\r\n            .then(() => {\r\n                return testFx.portal.wait(() => {\r\n                    return testFx.portal.blade({ title: expectedEndTitle });\r\n                }, null, \"Title of the blade should update to include the Users suffix\");\r\n            });\r\n...\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-common-portal-blades-move-resource-blade\"></a>\n##### Move Resource Blade\r\n\r\nThe `MoveResourcesBlade` represents the portals blade used to move resources from a resource group to a new resource group `portal.startMoveResource` provides a simple abstraction that will iniate the move of an existing resource to a new resource group.  The following example demonstrates how to initiate the move and then wait on successful notification of completion.\r\n  \r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n            return testFx.portal.startMoveResource(\r\n                {\r\n                    resourceId: resourceId,\r\n                    targetResourceGroup: newResourceGroup,\r\n                    createNewGroup: true,\r\n                    subscriptionName: subscriptionName,\r\n                    timeout: 120000\r\n                });\r\n        }).then(() => {\r\n            return testFx.portal.element(NotificationsPane).waitForNewNotification(portalFxResources.movingResourcesComplete, null, 5 * 60 * 1000);\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-blades-blade-dialogs\"></a>\n#### Blade Dialogs\r\n\r\nOn some blades you may use commands that cause a blade dialog that generally required the user to perform some acknowledgement action.  \r\nThe `Blade` class exposes a `dialog` function that can be used to locate the dialog on the given blade and perform an action against it. \r\nThe following example demonstrates how to:\r\n\r\n- get a reference to a dialog by title\r\n- find a field within the dialog and sendKeys to it \r\n- clicking on a button in a dialog\r\n\r\n```ts\r\nimport testFx = require('MsPortalFx-Test');\r\n...\r\n\r\n        const samplesBlade = testFx.portal.blade({ title: \"Samples\", bladeType: SamplesBlade });\r\n        return testFx.portal.goHome(20000).then(() => {\r\n            return testFx.portal.navigateToUriFragment(\"blade/SamplesExtension/SamplesBlade\");\r\n        }).then(() => {\r\n            return samplesBlade.openSample(extensionResources.samplesExtensionStrings.SamplesBlade.bladeWithToolbar);\r\n        }).then((blade) => {\r\n            return blade.clickCommand(extensionResources.samplesExtensionStrings.BladeWithToolbar.commands.save);\r\n            }).then((blade) => {\r\n            //get a reference to a dialog by title\r\n            let dialog = blade.dialog({ title: extensionResources.samplesExtensionStrings.BladeWithToolbar.bladeDialogs.saveFile });\r\n            //sending keys to a field in a dialog\r\n            return dialog.field(testFx.Controls.TextField, { label: extensionResources.samplesExtensionStrings.BladeWithToolbar.bladeDialogs.filename })\r\n                .sendKeys(\"Something goes here\")\r\n                //clicking a button within a dialog\r\n                .then(() => dialog.clickButton(extensionResources.ok));\r\n            });\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-parts\"></a>\n### Parts\r\n\r\n<a name=\"msportalfx-test-scenarios-parts-how-to-get-the-reference-to-a-part-on-a-blade\"></a>\n#### How to get the reference to a part on a blade\r\n\r\n1. If it is a specific part, like the essentials for example:\r\n```\r\n\tlet thePart = blade.element(testFx.Parts.ResourceSummaryPart);\r\n```\r\n1. For a more generic part:\r\n```\r\n\tlet thePart = blade.part({innerText: \"some part text\"});\r\n``` \r\n1. To get a handle of this part using something else than simple text you can also do this:\r\n```\r\n\tlet thePart = blade.element(By.Classname(\"myPartClass\")).AsType(testFx.Parts.Part);\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-parts-collectionpart\"></a>\n#### CollectionPart\r\n\r\nThe following example demonstrates how to:\r\n\r\n- get a reference to the collection part using `blade.element(...)`. \r\n- get the rollup count using `collectionPart.getRollupCount()`\r\n- get the rollup count lable using `collectionPart.getRollupLabel()`\r\n- get the grid rows using `collectionPart.grid.rows`\r\n\r\n```ts\r\n\r\n    it(\"Can get rollup count, rollup label and grid\", () => {\r\n        const collectionBlade = testFx.portal.blade({ title: \"Collection\" });\r\n\r\n        return testFx.portal.navigateToUriFragment(\"blade/SamplesExtension/CollectionPartIntrinsicInstructions\")\r\n            .then(() => testFx.portal.wait(() => collectionBlade.waitUntilBladeAndAllTilesLoaded()))\r\n            .then(() => collectionBlade.element(testFx.Parts.CollectionPart))\r\n            .then((collectionPart) => {\r\n                return collectionPart.getRollupCount()\r\n                    .then((rollupCount) => assert.equal(4, rollupCount, \"expected rollupcount to be 4\"))\r\n                    .then(() => collectionPart.getRollupLabel())\r\n                    .then((label) => assert.equal(extensionResources.samplesExtensionStrings.Robots, label, \"expected rollupLabel is Robots\"))\r\n                    .then(() => collectionPart.grid.rows.count())\r\n                    .then((count) => assert.ok(count > 0, \"expect the grid to have rows\"));\r\n            });\r\n    });\r\n```\r\n\r\nNote if you have multiple collection parts you may want to use `blade.part(...)` to search by text.\r\n\r\n<a name=\"msportalfx-test-scenarios-parts-grid\"></a>\n#### Grid\r\n\r\n<a name=\"msportalfx-test-scenarios-parts-grid-finding-a-row-within-a-grid\"></a>\n##### Finding a row within a grid\r\n\r\nThe following demonstrates how to use `Grid.findRow` to:\r\n\r\n- find a `GridRow` with the given text at the specified index\r\n- get the text from all cells within the row using `GridRow.cells.getText`\r\n\r\n```ts\r\n\r\n                return grid.findRow({ text: \"John\", cellIndex: 0 })\r\n                    .then((row) => row.cells.getText())\r\n                    .then((texts) => texts.length > 2 && texts[0] === \"John\" && texts[1] === \"333\");\r\n                \r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-parts-createcomboboxfield-obsolete\"></a>\n#### CreateComboBoxField - Obsolete\r\n\r\nuse this for modeling the resouce group `CreateComboBoxField` on create blades.\r\n\r\n- use `selectOption(...)` to chose an existing resource group\r\n- use `setCreateValue(...)` and `getCreateValue(...)` to get and check the value of the create new field respectively \r\n\r\n```ts\r\nreturn testFx.portal.goHome(40000).then(() => {\r\n\t//1. get a reference to the create blade\r\n\treturn testFx.portal.openGalleryCreateBlade(\r\n\t\tgalleryPackageName,              //the gallery package name e.g \"Microsoft.CloudService\"\r\n\t\tbladeTitle, //the title of the blade e.g \"Cloud Services\"\r\n\t\ttimeouts.defaultLongTimeout             //an optional timeout to wait on the blade\r\n\t)\r\n}).then((blade: testFx.Blades.CreateBlade) => {\r\n\t//2. find the CreateComboBoxField\r\n\tvar createComboField = blade.element(CreateComboBoxField);\r\n\t//3. set the value of the Create New text field for the resource group\r\n\treturn createComboField.setCreateValue(\"NewValue\")\r\n\t\t.then(() =>\r\n\t\t\tcreateComboField.getCreateValue()\r\n\t\t).then((value) =>\r\n\t\t\tassert.equal(\"NewValue\", value, \"Set resource group name\")\r\n\t\t).then(() =>\r\n\t\t\tcreateComboField.selectOption(\"OldValue_4\")\r\n\t\t).then(() =>\r\n\t\t\tcreateComboField.getDropdownValue()\r\n\t\t).then((value) =>\r\n\t\t\tassert.equal(\"OldValue_4\", value, \"Set create combo dropdown\")\r\n\t\t);\r\n});\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-parts-resourcegroupdropdownfield\"></a>\n#### ResourceGroupDropDownField\r\n\r\nuse this for modeling the resouce group `ResourceGroupDropDownField` on create blades.\r\n\r\n- use `setSelectedResourceGroup(...)` and `getSelectedResourceGroup` to get and check the value of the dropdown field respectively \r\n- use `setNewResourceGroup(...)` and `getNewResourceGroup(...)` to get and check the value of the create new field respectively \r\n\r\n```ts\r\n\r\n        //////1. get a reference to the create blade\r\n        ////const createEngineBlade = testFx.portal.blade({ bladeType: CreateEngineBlade });\r\n        //////2. Create the harness for the ResourceGroupDropDownField\r\n        ////const resourceGroup = createEngineBlade.field(ResourceGroupDropDown, { label: resources.resourceGroup });\r\n        ////const resourceName = resourcePrefix + guid.newGuid();\r\n\r\n        ////return testFx.portal.openGalleryCreateBladeFromLocalPackage(\r\n        ////    extensionResources.samplesExtensionStrings.Engine.engineV3,     //title of the item in the marketplace e.g \"EngineV3\"\r\n        ////    extensionResources.samplesExtensionStrings.Engine.createEngine, //the title of the blade that will be opened e.g \"Create Engine\"\r\n        ////    10000)                                                          //an optional timeout to wait on the blade\r\n        ////    .then(() => createEngineBlade.checkFieldValidation())\r\n        ////    //3a. set the value of the Create New text field for the resource group\r\n        ////    .then(() => resourceGroup.setNewResourceGroup(\"NewResourceGroup\"))\r\n        ////    .then(() => resourceGroup.getNewResourceGroup())\r\n        ////    .then((value) => assert.equal(\"NewResourceGroup\", value, \"Set resource group name\"))\r\n        ////    //3b. set the value of the Use Existing dropdown\r\n        ////    .then(() => resourceGroup.setSelectedResourceGroup(\"Default-Storage-WestUS\"))\r\n        ////    .then(() => resourceGroup.getSelectedResourceGroup())\r\n        ////    .then((value) => assert.equal(\"Default-Storage-WestUS\", value, \"Set resource group dropdown\"))\r\n        ////    .then(() => createEngineBlade.clickClose());\r\n        ////\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-parts-editor\"></a>\n#### Editor\r\n\r\n<a name=\"msportalfx-test-scenarios-parts-editor-can-read-and-write-content\"></a>\n##### Can read and write content\r\n\r\nThe following example demonstrates how to:\r\n\r\n- use `read(...)` to read the content\r\n- use `empty(...)` to empty the content\r\n- use `sendKeys(...)` to write the content\r\n\r\n```ts\r\n\r\n        let editorBlade: EditorBlade;\r\n        let editor: Editor;\r\n        \r\n        return BladeOpener.openSamplesExtensionBlade(\r\n            editorBladeTitle,\r\n            editorUriFragment,\r\n            EditorBlade,\r\n            10000)\r\n            .then((blade: EditorBlade) => {\r\n                editorBlade = blade;\r\n                editor = blade.editor;\r\n                return editor.read();\r\n            })\r\n            .then((content) => assert.equal(content, expectedContent, \"expectedContent is not matching\"))\r\n            .then(() => editor.empty())\r\n            .then(() => editor.sendKeys(\"document.\"))\r\n            .then(() => testFx.portal.wait(() => editor.isIntellisenseUp().then((isUp: boolean) => isUp)))\r\n            .then(() => {\r\n                let saveButton = By.css(`.fxc-simplebutton[data-bind=\"pcControl: saveButton\"]`);\r\n                return editorBlade.element(saveButton).click();\r\n            })\r\n            .then(() => testFx.portal.wait(() => editor.read().then((content) => content === \"document.\")))\r\n            .then(() => editor.workerIFramesCount())\r\n            .then((count) => assert.equal(count, 0, \"We did not find the expected number of iframes in the portal.  It is likely that the editor is failing to start web workers and is falling back to creating new iframes\"));\r\n        \r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-parts-essentials\"></a>\n#### essentials\r\n\r\n<a name=\"msportalfx-test-scenarios-parts-essentials-essentials-tests\"></a>\n##### Essentials tests\r\n\r\nThe following example demonstrates how to:\r\n\r\n- use `countItems(...)` to count the number of all items. (MultiLine Item is counted as one)\r\n- use `isDisabled(...)` to get a value that determines whether the essentials is disabled\r\n- use `hasViewAll(...)` to get a value that determines whether the essentials has ViewAll button or not\r\n- use `getViewAllButton(...)` to get a PortalElement of the essentials' viewAll button\r\n- use `getItemByLabelText(...)` to get an EssentialsItem that is found by its label text\r\n- use `getPropertyElementByValue(...)` to get a PortalELement of matching property value\r\n- use `getExpandedState(...)` to get a value that determines the essentials' expanded state\r\n- use `setExpandedState(...)` to set the essentials' expanded state\r\n- use `getExpander(...)` to get the Expander element\r\n- use `getProperties(...)` to get an array of properties\r\n- use `getLabelText(...)` to get the item label text\r\n- use `hasMoveResource(...)` to get whether the item has move resource blade or not\r\n- use `getLabelId(...)` to get the item label id\r\n- use `getSide(...)` to get the item's side\r\n\r\n```ts\r\n\r\n        let essentialsBlade: EssentialsBlade;\r\n        let essentials: Essentials;\r\n\r\n        return BladeOpener.openSamplesExtensionBlade(\r\n            essentialsBladeTitle,\r\n            essentialsUriFragment,\r\n            EssentialsBlade,\r\n            waitTime)\r\n            .then((blade) => {\r\n                return blade.waitUntilLoaded(waitTime).then(() => blade);\r\n            })\r\n            .then((blade: EssentialsBlade) => {\r\n                essentialsBlade = blade;\r\n                essentials = blade.essentials;\r\n                return Q.all<any>([\r\n                    essentials.countItems(),\r\n                    essentials.getExpandedState(),\r\n                    essentials.hasViewAll()\r\n                ]);\r\n            })\r\n            .then((values: any[]) => {\r\n                // Essentials item count, expanded state and viewAll button state check\r\n                assert.equal(values[0], 10, \"Essentials should have 10 items at the beginning, found \" + values[0]);\r\n                assert.ok(values[1], \"Essentials should be expanded by default\");\r\n                assert.ok(values[2], \"Essentials has the ViewAll button at the beginning\");\r\n                return essentials.getViewAllButton().click();\r\n            })\r\n            .then(() => {\r\n                return essentials.countItems();\r\n            })\r\n            .then((count: number) => {\r\n                // Essentials item count after click ViewAll button\r\n                assert.equal(count, 12, \"Essentials should have 12 items after adding dynamic properties, found \" + count);\r\n                // Item label and properties check\r\n                return Q.all([\r\n                    itemAssertionHelper(essentials, {\r\n                        label: \"Resource group\",\r\n                        hasMoveResource: true,\r\n                        side: \"left\",\r\n                        properties: [\r\n                            { type: EssentialsItemPropertyType.Function, value: \"snowtraxpsx600\" }\r\n                        ]\r\n                    }),\r\n                    itemAssertionHelper(essentials, {\r\n                        label: \"Multi-line Item\",\r\n                        hasMoveResource: false,\r\n                        side: \"right\",\r\n                        properties: [\r\n                            { type: EssentialsItemPropertyType.Text, value: \"sample string value\" },\r\n                            { type: EssentialsItemPropertyType.Link, value: \"Bing.com\" }\r\n                        ]\r\n                    }),\r\n                    itemAssertionHelper(essentials, {\r\n                        label: \"Status\",\r\n                        hasMoveResource: false,\r\n                        side: \"left\",\r\n                        properties: [\r\n                            { type: EssentialsItemPropertyType.Text, value: \"--\" }\r\n                        ]\r\n                    })\r\n                ]);\r\n            })\r\n            .then(() => {\r\n                return essentials.getPropertyElementByValue(\"status will be changed\")\r\n                    .then((propElement: testFx.PortalElement) => {\r\n                        return propElement.click();\r\n                    }).delay(200);\r\n            })\r\n            // Item label and properties check after clicking \"status will be changed\"\r\n            .then(() => {\r\n                return itemAssertionHelper(essentials, {\r\n                    label: \"Status\",\r\n                    hasMoveResource: false,\r\n                    side: \"left\",\r\n                    properties: [\r\n                        { type: EssentialsItemPropertyType.Text, value: \"1 times clicked!\" }\r\n                    ]\r\n                });\r\n            })\r\n            .then(() => {\r\n                return essentials.getPropertyElementByValue(\"snowtraxpsx600\")\r\n                    .then((propElement: testFx.PortalElement) => propElement.click());\r\n            })\r\n            .then(() => {\r\n                return essentials.getExpander().click().delay(200);\r\n            })\r\n            .then(() => {\r\n                return Q.all<any>([\r\n                    essentials.getExpandedState(),\r\n                    essentials.items.isDisplayed()\r\n                ]);\r\n            })\r\n            .then((values: any) => {\r\n                // check expander state and items' visibilities after closing expander\r\n                assert.ok(!values[0], \"expander should be closed\");\r\n                values[1].forEach((state: boolean) => {\r\n                    assert.ok(!state, \"items should be invisible\");\r\n                });\r\n                return essentials.getExpander().click()\r\n                    .delay(200)\r\n                    .then(() => {\r\n                        return Q.all<any>([\r\n                            essentials.getExpandedState(),\r\n                            essentials.items.isDisplayed()\r\n                        ]);\r\n                    });\r\n            })\r\n            .then((values: any) => {\r\n                // check expander state and items' visibilities after opening expander\r\n                assert.ok(values[0], \"expander should be opened\");\r\n                values[1].forEach((state: boolean, index: number) => {\r\n                     assert.ok(state, \"items should be visible\");\r\n                });\r\n            });\r\n        \r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-command\"></a>\n### Command\r\n\r\n<a name=\"msportalfx-test-scenarios-action-bar\"></a>\n### Action Bar\r\n\r\n<a name=\"msportalfx-test-scenarios-delete\"></a>\n### Delete\r\n\r\n<a name=\"msportalfx-test-scenarios-styling-layout-regression-detection\"></a>\n### Styling / layout regression detection\r\n\r\nTo detect styling or layout regressions in your tests, use the `portal.detectStylingRegression` function.\r\n\r\n    ```ts\r\n    import testFx = require('MsPortalFx-Test');\r\n    ...\r\n    it(\"Can do action X\", () => {    \r\n        // Your test goes here, dummy test follows...\r\n        return testFx.portal.goHome().then(() => {\r\n            return testFx.portal.detectStylingRegression(\"MyExtension/Home\");\r\n        });\r\n    });\r\n    ```\r\n    \r\nThe function will upload a screenshot to the \"cicss\" container of the storage account with the name, key, subscription id and resource group you will provide; \r\n\r\nPut the following values into your config.json:\r\n\r\n```\r\n    \"CSS_REGRESSION_STORAGE_ACCOUNT_NAME\":\"myaccountname\",\r\n    \"CSS_REGRESSION_STORAGE_ACCOUNT_SUBSCRIPTIONID\":\"mysubscriptionid\",\r\n    \"CSS_REGRESSION_STORAGE_ACCOUNT_RESOURCE_GROUP\":\"mygresourcegroupname\",\r\n    \"CSS_REGRESSION_STORAGE_ACCOUNT_KEY\":\"myaccountkey\",\r\n```\r\n\r\nPut the storage account key into Windows Credential Manager using cmdkey i.e\r\n\r\n```\r\n    cmdkey /generic:CSS_REGRESSION_STORAGE_ACCOUNT_KEY /user:myaccountname /pass:myaccountkey\r\n```\r\n\r\nThe screenshot will then be compared with a Last Known Good screenshot and, if different, a diff html file will be produced and uploaded to your storage account.\r\nThe link to that html file will be in the failed test's error message and includes a powershell script download to promote the Latest screenshot to Last Known Good.\r\nThe initial Last Known Good file is the screenshot taken when there was no Last Known Good screenshot to compare it to; i.e. to seed your test, just run it once.\r\n    \r\nFor reference, here's the signature of the `portal.detectStylingRegression` function.\r\n    \r\n    ```ts\r\n    ...\r\n    \r\n    /**\r\n     * Takes a browser screenshot and verifies that it does not differ from LKG screenshot;\r\n     * contains an assert that will fail on screenshot mismatch\r\n     * @param uniqueID Test-specific unique screenshot identifier, e.g. \"MyExtension/ResourceGroupTagsTest\"\r\n     * @returns Promise resolved once styling regression detection is done (so you can chain on it)\r\n     */\r\n    public detectStylingRegression(uniqueID: string): Q.Promise<void> {\r\n        \r\n    ```\r\n\r\n<a name=\"msportalfx-test-scenarios-styling-layout-regression-detection-\"></a>\n#### ...\r\n\r\n<a name=\"msportalfx-test-scenarios-locators\"></a>\n### Locators\r\n\r\n<a name=\"msportalfx-test-scenarios-consuming-updates\"></a>\n### Consuming Updates\r\n\r\n<a name=\"msportalfx-test-scenarios-mocking\"></a>\n### Mocking\r\n\r\n<a name=\"msportalfx-test-scenarios-mocking-how-to-show-mock-data-into-the-portal\"></a>\n#### How to show mock data into the Portal\r\n\r\nThe [MsPortalFx-Mock](https://www.npmjs.com/package/msportalfx-mock) package provides a framework for showing mock data in the portal. It come with builtin support for mocking ARM data.\r\n\r\n<a name=\"msportalfx-test-scenarios-mocking-how-to-show-mock-data-into-the-portal-mocking-arm\"></a>\n##### Mocking ARM\r\n\r\nMock data including providers, subscriptions, resource groups and resources can be defined in JSON object and used to initialize the ArmManager.\r\n\r\n```ts\r\n\r\nimport { ArmProxy } from \"MsPortalFx-Mock/lib/src/ArmProxy/ArmProxy\";\r\nimport { ArmManager } from \"MsPortalFx-Mock/lib/src/ArmProxy/ArmManager\";\r\n\r\n...\r\n\r\nconst mockData: ArmManager.MockData = {\r\n    providers: [\r\n        {\r\n            namespace: \"Providers.Test\",\r\n            resourceTypes: [\r\n                {\r\n                    resourceType: \"type1\",\r\n                    locations: [\"WestUS\"],\r\n                    apiVersions: [\"2014-04-01\"]\r\n                },\r\n                {\r\n                    resourceType: \"type2\",\r\n                    locations: [\"East US\", \"East US 2\", \"North Central US\"],\r\n                    apiVersions: [\"2014-04-01\"]\r\n                }\r\n            ]\r\n        }\r\n    ],\r\n    subscriptions: [\r\n        {\r\n            subscriptionId: \"sub1\",\r\n            displayName: \"Test sub 1\",\r\n            state: \"Active\",\r\n            subscriptionPolicies: {\r\n                locationPlacementId: \"Public_2014-09-01\",\r\n                quotaId: \"FreeTrial_2014-09-01\"\r\n            },\r\n            resourceGroups: [\r\n                {\r\n                    name: \"sub1rg1\",\r\n                    location: \"WestUS\",\r\n                    tags: {\r\n                        \"env\": \"prod\",\r\n                        \"ver\": \"4.6\"\r\n                    },\r\n                    properties: {\r\n                        lockState: \"Unlocked\",\r\n                        provisioningState: \"Succeeded\",\r\n                    },\r\n                    resources: [\r\n                        {\r\n                            name: \"sub1rg1r1\",\r\n                            location: \"WestUS\",\r\n                            tags: {\r\n                                \"env\": \"prod\"\r\n                            },\r\n                            type: \"providers.test/type1\",\r\n                            kind: null,\r\n                            nestedResources: [\r\n                                {\r\n                                    name: \"nr1\",\r\n                                    tags: {},\r\n                                    type: \"nested\"\r\n                                }\r\n                            ]\r\n                        }\r\n                    ]\r\n                },\r\n                {\r\n                    name: \"sub1rg2\",\r\n                    location: \"WestUS\",\r\n                    tags: {\r\n                        \"env\": \"prod\",\r\n                        \"ver\": \"4.6\"\r\n                    },\r\n                    properties: {\r\n                        lockState: \"Unlocked\",\r\n                        provisioningState: \"Succeeded\",\r\n                    },\r\n                    resources: [\r\n                        {\r\n                            name: \"sub1rg2r1\",\r\n                            location: \"WestUS\",\r\n                            tags: {\r\n                                \"env\": \"prod\"\r\n                            },\r\n                            type: \"providers.test/type2\",\r\n                            kind: null\r\n                        }\r\n                    ]\r\n                }\r\n            ]\r\n        }\r\n    ]\r\n};\r\n\r\n...\r\n\r\n    let armManager = new ArmManager.Manager();\r\n    armManager.initializeMockData(mockData);\r\n    \r\n```\r\n\r\nThe ArmProxy needs to initialized at the beginning of your tests with the ArmManager. The ArmProxy supports two modes for showing data 1) mock ONLY and 2) mock + actual.\r\n\r\nYou will need to initialize the portalContext->patches to the local server address setup by the proxy.\r\n\r\n```ts\r\n\r\n        return ArmProxy.create(nconf.get(\"armEndpoint\"), 5000, armManager, null, true).then(proxy => {\r\n            armProxy = proxy;\r\n            testFx.portal.portalContext.patches = [proxy.patchAddress];\r\n        });\r\n        \r\n```\r\n\r\nThe proxy can be disposed at the end of your tests.\r\n```ts\r\n\r\n        return testFx.portal.quit().then(() => ArmProxy.dispose(armProxy));\r\n        \r\n```\r\n\r\n\r\n<a name=\"msportalfx-test-scenarios-code-coverage\"></a>\n### Code Coverage\r\n<a name=\"msportalfx-test-scenarios-code-coverage-interop-how-to-run-net-code-from-your-tests\"></a>\n#### Interop, how to run .NET code from your tests\r\nedge.js\r\n\r\n\r\n<a name=\"msportalfx-test-scenarios-contributing\"></a>\n### Contributing\r\n\r\n<a name=\"msportalfx-test-scenarios-contributing-to-enlist\"></a>\n#### To enlist\r\n\r\ngit clone https://github.com/azure/msportalfx-test.git\r\n\r\n<a name=\"msportalfx-test-scenarios-contributing-to-build-the-source\"></a>\n#### To build the source\r\n\r\nUse Visual Studio or Visual Studio Code to build\r\n\r\n1. Run ./scripts/Setup.cmd\r\n\r\n<a name=\"msportalfx-test-scenarios-contributing-to-setup-the-tests\"></a>\n#### To setup the tests\r\n\r\n1. To run the tests you need:\r\n\r\n- Create a dedicated test subscription that is used for tests only\r\n- A user that has access to the test subscription only\r\n- An AAD App and service principal with access\r\n- Have run `setup.cmd` in the portal repo or have run `powershell.exe -ExecutionPolicy Unrestricted -file \"%~dp0\\Setup-OneCloud.ps1\" -DeveloperType Shell %*`\r\n\r\nOnce you have the first two use the following to create the AAD application and service principal.\r\n\r\n```powershell \r\n    msportalfx-test\\scripts\\Create-AdAppAndServicePrincipal.ps1 \r\n        -TenantId \"someguid\" \r\n        -SubscriptionId \"someguid\" \r\n        -ADAppName \"some ap name\" \r\n        -ADAppHomePage \"https://somehomepage\" \r\n        -ADAppIdentifierUris \"https://someidentiferuris\" \r\n        -ADAppPassword $someAdAppPassword \r\n        -SPRoleDefinitionName \"Reader\" \r\n```\r\n\r\n**Note**: Don't forget to store the password you use below in key vault, secret store or other. You will not be able to retrieve it using the commandlets. \r\n\r\nYou will use the details of the created service principal in the next steps.  \r\n\r\nFor more detail on [AAD Applications and Service Principals] see (https://azure.microsoft.com/en-us/documentation/articles/resource-group-authenticate-service-principal/#authenticate-with-password---powershell).  \r\n\r\n1. Open **test\\config.json** and enter appropriate values for:\r\n    ```\r\n            \"aadAuthorityUrl\": \"https://login.windows.net/TENANT_ID_HERE\",\r\n            \"aadClientId\": \"AAD_CLIENT_ID_HERE\",\r\n            \"subscriptionId\": \"SUBSCRIPION_ID_HERE\",\r\n            \"subscriptionName\": \"SUBSCRIPTION_NAME_HERE\",\r\n    ```\r\n\r\n1. The account that corresponds to the specified credentials should have at least contributor access to the subscription specified in the **config.json** file. The account must be a Live Id account. It cannot be an account that requires two factor authentication (like most @microsoft.com accounts). \r\n\r\n1. Install the Portal SDK from [Aux Docs](https://auxdocs.azurewebsites.net/en-us/downloads), then open Visual Studio and create a new Portal Extension from File --> New Project --> Azure Portal --> Azure Portal Extension. Name this project **LocalExtension** so that the extension itself is named LocalExtension, which is what many of the tests expect. Then hit CTRL+F5 to host the extension in IIS Express.\r\n\r\n1. The *Can Find Grid Row* and the *Can Choose A Spec* tests require special configuration described in the tests themselves.\r\n\r\n1. Many of the tests currently rely on the CloudService extension. We are working to remove this dependency.\r\n\r\n<a name=\"msportalfx-test-scenarios-to-run-the-tests\"></a>\n### To run the tests\r\n\r\nOpen a command prompt in this directory and run:\r\n\r\n```\r\n\tnpm install --no-optional\r\n\tnpm test\r\n```\r\n\r\n<a name=\"msportalfx-test-scenarios-to-run-the-tests-authoring-documents\"></a>\n#### Authoring documents\r\n- When adding a document create a new *.md file in /docs e.g /docs/foo.md\r\n- Author the document using [markdown syntax](https://daringfireball.net/projects/markdown/syntax)\r\n- Inject content from your documents into the master template in /docs/TEMPLATE.md using [gitdown syntax](https://github.com/gajus/gitdown) E.g\r\n\r\n    ```\r\n    {\"gitdown\": \"include\", \"file\": \"./foo.md\"}\r\n    ```\r\n\r\n- To ensure all code samples remain up to date we extended gitdown syntax to support code injection. To reference source code in your document directly from a *.ts file use the include-section extension E.g\r\n\r\n    ```\r\n    {\"gitdown\": \"include-section\", \"file\": \"../test/BrowseResourceBladeTests.ts\", \"section\": \"tutorial-browse-context-menu#step2\"}\r\n    ```\r\n\r\n    this will find all content in ../test/BrowseResourceBladeTests.ts that is wrapped in comments //tutorial-browse-context-menu#step2 and will inject them directly into the document. see /docs/tutorial-browse-context-menu.md for a working example\r\n\r\n<a name=\"msportalfx-test-scenarios-to-run-the-tests-generating-the-docs\"></a>\n#### Generating the docs\r\nYou can generate the documentation in one of two ways\r\n\r\n- As part of pack the `docs` script from package.json is run to ensure that all docs are up to date\r\n\r\n    ```\r\n    npm pack\r\n    ```\r\n\r\n-  Or, While you are writing docs you may want to check that your composition or jsdoc for API ref is generating as expected to do this you can execute run the following \r\n\r\n    ```\r\n    npm run docs\r\n    ```\r\n\r\nthe output of the composed TEMPLATE.md will be written to ./README.md and the generated API reference from your jsdocs will be written to /docs/apiref.md\r\n\r\n<a name=\"msportalfx-test-scenarios-to-run-the-tests-to-submit-your-contribution\"></a>\n#### To submit your contribution\r\nSubmit a pull request to the repo [http://aka.ms/msportalfx-test](http://aka.ms/msportalfx-test)\r\n\r\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\r\n\r\n<a name=\"msportalfx-test-scenarios-to-run-the-tests-questions\"></a>\n#### Questions?\r\n\r\nSend an email to ibizadiscuss@microsoft.com\r\n\r\n<a name=\"msportalfx-test-scenarios-api-reference\"></a>\n### API Reference\r\n\r\n[View thet API Reference](http://aka.ms/msportalfx-test/api)\r\n\r\nGenerated on 2018-04-11\r\n","readmeFilename":"README.md","gitHead":"421f17606f468e3b650f59184759dbf6d8322e24","_id":"msportalfx-test@0.5.60-0","_shasum":"09a85b6908668924a55c06ea57c405e3d70044c2","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"09a85b6908668924a55c06ea57c405e3d70044c2","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.60-0.tgz","fileCount":150,"unpackedSize":982805,"integrity":"sha512-XzO442pYrCZXgU++b5wEXZBBuP8+ygekLsejNb7huXJAti6ewgU6P3nilAgFivh3dB4hYngwSqM7wScidX/7ZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHG0wtjYFtPLfC3rEdyxbFFOMLz5Juz4ZagJ5aJ5X8MAIhAIDbuDn7e3cIQV0nGAF3hbrZGxiPC95MvRKBW7dxEorb"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_0.5.60-0_1523486055949_0.34603292227232973"},"_hasShrinkwrap":false},"0.5.60":{"name":"msportalfx-test","version":"0.5.60","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","dependencies":{"adal-node":"0.1.22","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","azure-storage":"^0.10.0","chalk":"^1.1.1","edge":"^6.5.1","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","typedoc":"^0.11.1","typescript":"^2.3.3"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"fb97c47c37c67d8641b689c2ea049be92b4942f4","_id":"msportalfx-test@0.5.60","_shasum":"24be9bac9bbaa7b8e0699070934f269ea6197244","_from":".","_npmVersion":"3.10.6","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"24be9bac9bbaa7b8e0699070934f269ea6197244","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.5.60.tgz","fileCount":150,"unpackedSize":982803,"integrity":"sha512-9bahT4XPE5r8DYMfMYBO/enmQgt3cVp3t4Cq/wJ1LQYUXTZtWgjjKThmG6KISHdIvE8WYe6mLmePgFxlDNeKQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWLMSGZR3Jpgbd7QC2DemruXAm8TzHtN6BAg2fsr3s/wIhAKZltyesaIXyx1OxD9RgNsTMAlvqk7hakrTAwfglhaQY"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_0.5.60_1523487009487_0.9501367132601419"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.6.0":{"name":"msportalfx-test","version":"0.6.0","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","engines":{"node":"4.5.0","npm":"3.10.6"},"dependencies":{"adal-node":"0.1.22","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","chalk":"^1.1.1","edge":"^6.5.1","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^3.0.2","mocha-jenkins-reporter":"0.2.3","@types/node":"9.6.6","typedoc":"^0.11.1","typescript":"^2.3.3"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha .","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"fdfb4c73c4fd97505c54d9141c8f09a1283ebfff","_id":"msportalfx-test@0.6.0","_shasum":"693a7bfabcacf2fe1c5334fe9c1b5d3fbfbd6751","_from":".","_npmVersion":"3.10.3","_nodeVersion":"5.1.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"693a7bfabcacf2fe1c5334fe9c1b5d3fbfbd6751","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.6.0.tgz","fileCount":150,"unpackedSize":976042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbByVGCRA9TVsSAnZWagAARmsQAJ2/Qt8f1HR+84ZTttk5\n0YAdHI0eNYHbOqjyHTH90mzitI1BjL4nQ76BaM3m2mk9bbCXfFZjxJZtZMrT\nLLFFzmdJtf5MwsOODSY8laFPURKgtLzK+Feq3j12m0gC4UIdIDaiPfUJirzZ\nx2JOaW5D4Gk4uoesDnQDuD8guCrTFvsf/tie0s2hK7eQqDrp7O3jsBMuRHP1\n53R9qctzkj5qtaXZywHqSXwGuRVb/oOP2OZxPZ1qrUMn8ql+ngj5myc/WmVv\nF7vqeTd9ghl98BaKZcwMDAbWMUls0Md4y/RK2VqTu4rt2+KcifpQQQJnm8GX\nORonm4hIVNT2K9WQq41nkeM9PmT1SUgGqHy9CLATRua26DE7a6eXVSmJqLSa\ny7VMLnkmY1M6IOjGOPN5J/SIWkgiLHjy5a2oZMKfJ7Zjj0JORUoch7Lou04B\npRKJV9mjBwIqOKIgTIFmtgONlmaTTB2xV2C1/D5m0wVPqwxg5lM+U1VOQvxM\nYqwhAWYaMjwxJrGDs6h0CxhECm8TGtXfr6PHQeLZkk89Lo6eb6VNWbYMJUsf\n8oa/QOOt2zTWDMMa7us1ABpI2qNl1ESP9nU8aGmkMmxAAD9O9GeZ7V8pP5uE\nQLpNoPKolzpqi+tVDd1kwWxzMLa7AtAi3ZVDu7ZnHpXOdgtTJ3XcMp0t84DE\nXRF2\r\n=9pdT\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-GCWokQPrbOhQNYO+XRBMvEMKS5RkbGt2RFEARVA7XG4Z3wJSAncSWHkYVD/Y/HhPOix43Hm136l96avwXtT7uQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAg2+9FM/dy4kZac2MMh9Ku43q5pGXZ+2huOPJXW+H+9AiEAxo2DoQlOF8OK7wAECsR1IorPIfxJKDQIJqhBziNp/1E="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_0.6.0_1527194947737_0.6931703413227657"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.7.0":{"name":"msportalfx-test","version":"0.7.0","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"adal-node":"0.1.22","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.3.12","@types/node":"9.6.6","typedoc":"^0.11.1","typescript":"^2.3.3"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"c243b36e817b3a6a7341cf66126102ffd10a733e","_id":"msportalfx-test@0.7.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"integrity":"sha512-5rp2npVGmULx0pCdH6o4gcwAO2XLCe/DnBK22okYX/ipEQnNTBh1II81H9HmR32mcMaERZFVEmaKliM1nZCeZA==","shasum":"728de9421935462e05afad1864f4e5f4266f8260","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.7.0.tgz","fileCount":150,"unpackedSize":986863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbQ9pGCRA9TVsSAnZWagAAj+8P/iqxyMHG+brBfYg7QLaB\n2Fo+P7gjcsef5ZyrB+hfn0fBbtXcTAmZ7yv/WxcQONy/zb4UpSYSeRumReUE\nAV8C8gkeGAUi6JOABxMGLAD+qT4Qb3i+Gt9NVf+7/sCAjGHyz9c88jXlKvAr\nhbOl3idwedm+HV6sSNyUT0F56IJduJ8TsMKPJ1h1RhPrU+oSAQonR6o+F8H6\nReyFyQXN+AetXTUmUCzMtiioKMhQupfh/T2ix5jJSynu0W4jL8he99jqQKYE\nYS1ewaA/Y9fw72ZWNusTUMh+EW8WDDyfj3E5VJ25mIlfbYmqABb4xWpTFVzG\njHsDHzg0aZWC+0IOO8FKrKQTZknZvcRAAlvyZenL14OPHCRF5CGPkd5ryZpi\nBEJ9upYkK0hdVJMRbx/mTCkn18w2RULRGNvQJivqQJDdk1/mD5u7k/O+XLvX\ng7IGZ53ujRrqbJtZ7SE1aq8I24RLN5KvwsXhmeddIJBFOzwjwOF2nhDWJcij\nDqNrm1oY7FWKE8G4Suk5TweMxSTUAq1lkjxw8Ql1SWlYg6bz++xOyom0FjsI\nm4F/iMzP2DvwJ3TGnkFFbKnCyhhawjErwFX4XK78MAAodyrY0LAKdSo1mgaS\n+TeHm88loR/UxcJUWAz6NwOhmq8NBWzbAV0FBiF5z1i1iThF+mmiQFY0X5oI\nXBzW\r\n=s08t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjyXiCF8tp4y+5UUZreu1tMh64FLgVjxJOvRJaOZON4AiAOntG/Iz+LTjKYwDqnziJHOBjIR1H9WcYphL8SwaJmmg=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_0.7.0_1531173446808_0.6674492813495227"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"0.7.2":{"name":"msportalfx-test","version":"0.7.2","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"adal-node":"0.1.22","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","npm":"^6.4.1","q":"^1.4.1","selenium-webdriver":"2.48.2"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.3.12","@types/node":"9.6.6","typedoc":"^0.11.1","typescript":"^2.3.3"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"b64270663fd1b7bd1425d9d75dc08942afd35833","_id":"msportalfx-test@0.7.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"integrity":"sha512-ffxIN4lu2qLa6T2FQWtZLXToIIZvresoF0VcQ3EaOdWqR0dbiwOjlfbEk+dGKF4Ma+EDf0YCyQMsim4bLAqzyw==","shasum":"ef4386dbbce2d8c702a7f02bed0b249c4be3c561","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-0.7.2.tgz","fileCount":153,"unpackedSize":1007776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbn/zPCRA9TVsSAnZWagAASkoP/AyJNUkKkk3bQHqL4vUS\ncZ6ejN5jZ4mkvFAb5oHqwpPtWmPmdwTW2wi84tY1SGayvZK9jt94WW2j1N/O\nq8lLVJM0iOh35BI+3Aha6uXwX3JFmo9ez6FKsbgW9mDxzac2sCck2dwyY5FD\n3QScy7UgqpzomqR2JY7obvoeFLkaiHdLkAUSXxMNWZamXgH2Ge4y08yNJrch\nnrcFYsD0QWuK6pQeqMCHxoSxZE2ZRCnWN2ivBTUo0jrzhSqJvPKcfnMbhDJw\n608cvXFrZUDBEv1b/dO2KKBdSS6OlveBFfDBRNToN3tCUJ7hZOuVC3y2sGdx\n6QEmny9AYMlZ2ESddq9o/qiv+sImBgQQbx9LjjESr35ZdTXzkPujSgnooFEE\nnpR4m1U54bhDOp6FWDTibgQWGFE80W9KaoX9SeX6/liMajItyRru4zB7uY1x\nexD4tC7/61xxw74iXwh6Ei6sJEQ+yzVyCZycwrkTqe0I8Y85Up7+bwvTa4a4\nZiDfYNWAACnW9lX13FjT01SeuNZXODHaaL+Ex4kod8o22lLFQ5Yr94WIDHTe\nMC1Bzo7TAHXR+vAZyw635LrEakQtm/oGgVsxna72gwmMk/Y6alMF4tlMgpjQ\nJuZOYe8+1k+hc2S5QzJnhDe1YVUbSRLqlXfY8bOZp+rrK41+/PchpJlJryvg\naSPr\r\n=qZDt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIExyb/r6xGAyt85UAYAJeX4EBzDeeVkhk5PuZLIjC99vAiEAvSNrt4zHdtHm/Ci7YmKsQVomHXWGRuf/a1xGUW5WpYA="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_0.7.2_1537211598468_0.5338055242316728"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.0":{"name":"msportalfx-test","version":"1.0.0","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","npm":"^6.4.1","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"9.6.6","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.11.1","typescript":"^2.3.3"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"84f32ca0f045976371fb772d1dc1fe56306f2c9f","_id":"msportalfx-test@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"integrity":"sha512-aw6nshOmPNvhPe3BkvaqBOp9kR0teN4k7A1B8w/p4Nw9Gdd16akTPbpO0c3M2Ztm/F2gxlcgD8aoiSdU2bZgoQ==","shasum":"9790b4a320f197c8120245f446c268334006c4d0","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.0.tgz","fileCount":149,"unpackedSize":762968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcEwOZCRA9TVsSAnZWagAACCoP/0wHw+tTVLGEVrJO0Pqz\nmPltsN5iojkwgazkLVLUTndtr/njZprUWtYLXreGY2bqltF5I/c6xWTHE45M\nXwqhEK01XTnHHgZoSZ12p/Qkdif3wjjT91yIkmqWBdyQ/usXGWccteJol6JU\nnpUUlXSz0NDWPt/ovTTWW6zwgY4duMvSEbB7pFJYHY07v+rqZhssKtitIdMd\ncXEI1gV/HKrX2IrEvjHRHUuzmQ4caDBSsoC5GBXWv5Xdk/wgL9DmeBJGa3f/\ngwkqTnwZWcKiCY8yH3tt0UVa9Z0Z38HeCGWJHYd/5k6rKSgrVJAlecFuC1zL\nRYU6Ruc+j68Nanze/xmHIAiD/q/uCVFFOGvM5CtRrg7dJj5SOJRiw2bnUNRy\nVa5r5wIYvT/pxg9QD/+1qRc2t9GwqrCCYt3msrRIBYD7uU4jyRfKq4Vqmg2Y\nI9HZtfxnhqdDMKpATcQEC3Er4nEl9ncdpA3UBOdHSenjP49cLhKJKLIAjqse\nAcL+SZSzN3VwFWDe9SOJd6rMqfaKUjmv8XSOlsIlN5+Tuxyonk0hofx+tdq6\n2TN+d+yhwDTvysxA1fX1ZVEiF0kkchu0VI7wEgZOnnuXt5sh8SJwG5ceGN4L\n715EQnvZSpayTjnCMx2oXt/cVw+oz4Hex4SXwhX9t4oNKkxsVzt2PSKZa76e\n09Vx\r\n=vdMq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFjIA88UhZN9TxxONpDsfIUVmdmsVbD8/4kiTj3KGcxcAiB2NwI+rq+TZuMXLjqBBuLVWbRxV89EKfC0mvEM17OICw=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.0_1544749976962_0.7037288874291958"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.1":{"name":"msportalfx-test","version":"1.0.1","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.7.2","npm":"^6.4.1","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","@types/node":"9.6.6","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.11.1","typescript":"^2.3.3"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"9f0c36b13c7484c64c3fbef011d1b08f113b14b7","_id":"msportalfx-test@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"integrity":"sha512-hX3drLsLtoK73/gbVGPxcM/ysESE06XqgMMrJAZN7PFCWZJq700S0cH7mpmBMvnSnCwMNx+GqzYvWTUpHyWP7Q==","shasum":"60edb653b0aa4b1acdcfebcc79e3ee859306d105","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.1.tgz","fileCount":149,"unpackedSize":762858,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcFERSCRA9TVsSAnZWagAAttIP+wVmIJh0zi96NZ2UQyk8\nXaFbdJeLl27YoyaSDc7Z7MhdaHr/kXJN/KDmYPN6NngGhTYJgePZc5gKntjm\n8zaG1Adipouu8fZJ/NGHYi+lWMmotY6m3oBtmU40sB4NBlIZ87SQMGojLHM1\n/Ygry2ef9hSiPt6DabqiybDCuMDCJVlbzcH86REyZjg8Mk1v2UsM1pDLbQ6b\nopNmHSD+VhLS9M7mWRelS7YR2/zogUEZyYcwOTQW8lB4sFn/VSoQCrnOMaMO\nyu8wKQ/1RWuEPgNH988ABn1YzdCmHxX984Q8OyrMRwbJFIxPpp4Bgi5aOpgT\nn/vABhYiAfTmOpLKkdYgNa2lQts/XGIUgQgweQl9RxvJq8V9hKRrxYHoBOPe\ntb2N9DnH0iTobffCYHauM3Pod4THTJMxOjxZCXlzT+c1Z2HLHKlV/VSvfjOu\n99CSz7Hb0PsFUwIcTU1Aum38o6jA2rsu5ccThOjsrmTPXvQV0czmUUJiHRJU\ndtR1InlxF7o9SIRoBJuBC+fI8+AGAxK4joqAec9YaaYK6UH4q3N9QC/xhs6S\n1BqAly2r0t05srRNGp1V+ZF/cm9/0IZ2zTdeDaBYtDByDvA3sXWptPKcBoBY\nc4NezwU/6+l66ToxPr0dlx91Ae7pTkdqYoFgRMt9GgHFvMySK5s6e2SeKGx4\nmBjS\r\n=u7wS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHm3mY6bbjdryfNKdg/Bqj69vej2zwkO8NztMTNnroUaAiEAwk1NNydNUcHn0Gqv6uncb57XsbzpNuEJDzkUH4mX2d0="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.1_1544832080936_0.9631746953605014"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.4":{"name":"msportalfx-test","version":"1.0.4","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/node":"9.6.6","@types/nconf":"0.0.37","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","azure-arm-resource":"^1.5.1-preview","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","ms-rest-azure":"1.15.0","msportalfx-mock":"0.1.7","nconf":"^0.8.2","npm":"^6.4.1","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.4.8","gulp":"^3.9.1","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^1.3.3","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.11.1","typescript":"^2.3.3"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"6bbaae303cf1e5c1bfee01cb0950d1acc8d759d3","_id":"msportalfx-test@1.0.4","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"integrity":"sha512-hsQVE4ZubVScbnzeEBLIG+YmJE7nE/lARybbXGVfjhWmxxb7WLpAGZ2v4sLJQ4b/Z+yZe7hoNIHUHx6T0/ktQg==","shasum":"ccf09f8bc9f9e1c43e3b1efee7f4c6f0e58179a9","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.4.tgz","fileCount":149,"unpackedSize":762296,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUm+ECRA9TVsSAnZWagAA1QsP/ieL05K5ryhipMXTMpYM\n5Uu4fQv8ot2Uws9SemogiK29aAw9Af27sRlbrslI+itOP2hS+N9G3BdKixNz\nYOEqC6065piIpgPLQXE09l7TdKf466WI69bdyd5ZOnSPmRxCoJRJUTMcPq61\ncEpF20sgbyPbKHg1TSD74l+3Ly54wKYYZsvMstjHK4keF07rNUlmmOVccsFx\n9Utenu9+6HP0Y+WU7c+lelYv//b6UaYeVnOgYtyDg7sFaNh/4B9hkEOXr3eV\nkFmO2sqwVbT+65Vk8uRfwpDtRzGtGYqFTLsL8QeY2HV11MfT1/HBcxmMF7wf\nGx6TU0XMPJRNCQ3HYBKSCujzURVPzPbe2e4xLJqT6NUGnC1fms8vXdNiv1bc\nWxYkSquwx6ECo+zRjC8fSFTyHoKENq4u2gA2kLlH/8CYd00rTk96aCeWMk4M\naIzhz1FgsuA6kV3UcfYmriHZE+T0a/bzTRqG9amZsnBwZmPca5keI9Hgb6DU\nXSK10tWAtC49ZrjOU3DuN/R7z7fKAlOmMmLmc6Eu/nM9ywnDsVXPyM0bZDS4\nItEd+X5Uyg51GoBuVYCe2ZsG9D0kLPZ1BznPC12mJ+VkwEVa2EiGfDCdpCuL\nV1ldljHNX/ViYZRWTn+vTznsY0upXV597xQJQNUrjlQlurapLTQhiewLViTa\nCAHa\r\n=aApw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSFO+LVZxtJ65/2Nm+OF72lDxAAFu0R2vrGkOFRaZhhwIgBzCxblu3DyR2N8Wp/a04fL2/tC46oNg3HwQDLWDZgIM="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.4_1548906371547_0.6485342585572385"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.6":{"name":"msportalfx-test","version":"1.0.6","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/axe-webdriverjs":"^2.1.0","@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.18.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.1","nconf":"^0.8.2","npm":"^6.9.0","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^4.0.1","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.14.2","typescript":"^3.2.2","graceful-fs":"^4.1.15"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"bd63eb9bd8a0265ca0ad1e866fe9d093cb5ad077","_id":"msportalfx-test@1.0.6","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"integrity":"sha512-HZ3Mkr7OlDIsbT+26MCWsm1y0JHrPEXZRs/4CYbkg6HvSNDKuiuf9FSmmn3vz4g3QrSuHLY42gcdtdzZR1nNkw==","shasum":"54af1e4657507d4646b8231b846333f0274ef9fd","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.6.tgz","fileCount":149,"unpackedSize":804127,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3dkqCRA9TVsSAnZWagAAdr0P/i60J9s2C5Q+aBYPVzdj\nJT6zoYGyCiQPW8vUNbirXGZGBCWWCqLGdOzHE13DPdPoy/ocKUo7VkPEWUF5\n1FEfWFFRe1+TOi6nV8ldZWNdRnM7Gb0L53C87mnbRaigC4B1WYR8iHCErRjP\nWvvcyKT1ihZptFgk1wdRR7PcANWuVUG/KeQQJTGfP9lA6g+UokQq2Qj1Cowc\nnVPTcrm0ltSyO0E/EI/85K7XHQW4E3I3+yu47DBWhrpg0wjgmmlXFrQCiuXl\nkzh7Z+XYQLwInx0ZWBBl6emiXX53cWWiOKGog0StSabasoNMslbk+nLapiK1\nbsvXpcADyOTTXrJTVJ/HuG+WJY99siplUaoYqgiy2jpNqqR4k3cBTa21rwQD\nMyeRhui3eBiIKyOe/56G+RFMYVVO3M4BtZTQ2f+76ime4P11/CcuI5AmnaZq\n/vKivE/YvF8w2NfWNPJ2KOWdwVS2HMS+g1i+g8X0ktsP9dNHNchF+/AWfCtS\nOJPsl1wR2oO/SMWw54KjbYBGmnWcN70j8kv/Pmx9oC6hCdxVTISJ1M/ptW3W\nyDYKfGj80TiONL1ujm7Au/+ANAdYGFE0+m+gs9H91j4sZI3LtW9xu+4ALXpF\n2wSj3HW7MSb3A1IyT3gBJs0jjbosAe0GYXRWgEfr4xMmn2GMUOSzzd3v26dw\nhFHg\r\n=cFNI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDhtKxPMh9dLwbthDrSaGdwky7uv2ceY3YpcWFm63Lv2AiBKY5Dz1/YiMQh9V9Oja6NTBqstXwlfjLZy1+5OUbproA=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.6_1558042921161_0.0917487654165452"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.7":{"name":"msportalfx-test","version":"1.0.7","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/axe-webdriverjs":"^2.1.0","@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.18.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.1","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^4.0.1","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.14.2","typescript":"^3.2.2","graceful-fs":"^4.1.15"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"7c4ce4fef361b2fca8e8adb665a38fccb28e37a1","_id":"msportalfx-test@1.0.7","_shasum":"9eaef776c48568609b088098ed8f4bea22d176c8","_from":".","_npmVersion":"3.10.3","_nodeVersion":"10.13.0","_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"dist":{"shasum":"9eaef776c48568609b088098ed8f4bea22d176c8","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.7.tgz","integrity":"sha512-b+KbEZdFdhaI7BavrEH9Eo2Vhe0sUhMXYnovgfFFPmQnuW8WQunitYpYNbzd9N3jI4JJepNWLHYp5iNvb5DbIQ==","fileCount":149,"unpackedSize":804106,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3f7ECRA9TVsSAnZWagAAjDEP/3yhVkBi3+uF/0Cx78ke\ncJqaK04zLgo9/oU1sBB3psevTQtHYapGl+4znvMCR7q1tIZCxusaQy6GNP69\n35PWmjLwmXekv+c2viLx8a8N2VPUuKoRu8iYn85o0NBkh9t3qJN6S3u+WTbO\nYi5+cCCuSJ35TvvLTC7kGBg4SrlBsdPj89g8SM6W/LTCbbd2W/HgUJyjIW2w\nmzKZ+Urx/zmrg8tObt0DCZdPxefkJC6lO0prC/AAj4KfrWihhFGD221JysoR\n20YLjtzu2y7lV8Htrqmu0URAdp349qdIB3YDKK+eoI4vCgKMKSNDzF/grRrI\nw/zUjLAhGLxVsF4T23Hp4jMHAg1WPT/splazv3ykZiRfQXbZ2qjpyG28m005\nNu0LupWO0xqhEJgMz4P1+PHnP0YBZbH20ba68b5LnHcAHngdyHPcqeBGQhKU\nUDpdfIy8MQoaKPC1JOZOSDQr4oDDpbdENJQLYPnGWelvliIOZwlaKhUhqScm\nVIfESIugTU+4QgEUoe8wRU/4cxdJnN7j8UxyzKCXIt1mxjaCLK6Dxl4vc0z6\nO12QaPGRI34EnUjUVMpWaML0SfNCDJHUsxUkIXY9nHa+P4IgpNmZ8ds373h0\n+EJqJVp4UPmGuHBUmi5KsJd4DR36CZUvgSZc0wBnIqRhRFRPWDFJ2aMA+SJ7\nDmoU\r\n=q28z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChq5jx53cYma0zAPjW9BJTJTq8Y8WqglgE49TFDMy1wQIhAPO0ruYbEhl/lhMNYvojXnzexNlDA+Cs6cQQ6sE0r8+1"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.7_1558052548018_0.5978315779874361"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.10":{"name":"msportalfx-test","version":"1.0.10","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/axe-webdriverjs":"^2.1.0","@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.18.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.1","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0-0","typescript":"^3.2.2","graceful-fs":"^4.1.15"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"4d38237814c91e5c54286a0e0fe38519b0a4498c","_id":"msportalfx-test@1.0.10","_nodeVersion":"8.11.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-V8QztzJTWNw+e7aYFP/BDXf/dsH6KS01GHleL77cGKykMxTnAASBvlz2K1BUR+tzWKFuw/HAdqvnlPxwaqm90A==","shasum":"2e3879a5137bf0cbf533d692f7f04cdb58593925","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.10.tgz","fileCount":149,"unpackedSize":807734,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4v1xCRA9TVsSAnZWagAAp9cP/RrMhKtDXFkBHQE/wlyK\nav/OjmP/5K4AWUYJbDpUFfn7K7oY4fI3J5sy+dOmQW3DyCUW9tBq1D0G6EGp\n3FMk0PmVppfzw3PnfZY5wa7zg20WZ1f2Jx8hYm61VNjLw6tNC44PJxbFOGju\nx3jQl0XiVKmFxx3xC4qqxcPchz9mwI/9cn+P/LPtohZ05aHfhwVWONKccD1w\n5kvm5deN0mU06vYSN9a79xyyCSMg8gSb0ZdphC73q+Lx5sNO6WzR33oZLpJB\n/R7xOYAFecP2gHKT4n/HYXQSqVFLyVremZsPwiRGnR/szVVb2QjVYOX/a38V\ntFxk1bkXDeiHGKhP+LGQQ/hMPAdLNNhcrsTKvwSeSmEnofHDqz0Tvdzaxtli\nyOhqaDR0hXFoNOQQyCUxtq/fSc6F+FDVl6SLGoEx03QtLTFsrngg4XnNqKAa\n/dkvSzskvq5836kzFhN7JiL0Nws3+ZtXN+fra6D1QeAo1ql/ja1Q2NSqppqg\naMTCBDl53wXZQ3lrRcf8WNyDiHgi6zTbGm/9s2CvlID9+CTcylYph1xdWqn7\nNWx5t5x5sl8HRFnKAEOphw2OLeOLQix7r1sdM78939VsemEQ1kKmAUNSvpud\nhugFvIPmLq3/UObkgtvmIwts3MuOZ7071256tEzmXQAeOsOZ/+dJDtqoEViw\nPA/d\r\n=e3Sh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYrpsQFPJW9z/bXlmTbtO0LyKG+CXxc5Q1ShUeSV0FqQIgCPM4wW0cmwfP8qEiGSoZ4IVRHyXolcgGbJ1WzdKLUF8="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"nickharris","email":"nickha@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.10_1558379887835_0.023607312034101602"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.11":{"name":"msportalfx-test","version":"1.0.11","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/axe-webdriverjs":"^2.1.0","@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.18.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.1","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0-0","typescript":"^3.2.2","graceful-fs":"^4.1.15"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"bb3999a642d25346870d0dd0f516a518d17bbd8a","_id":"msportalfx-test@1.0.11","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-imrVTJ8FmR+IgGySj2sHHTtwt97l22mVjA4MUNULUbuuy2Fq3wulQp2/VO43ZPSGx1ktGqmzIIp2lYYQGQrfAg==","shasum":"e3fe75ebb61437566e49f6bdf9625ae73c677f9f","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.11.tgz","fileCount":149,"unpackedSize":809472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7s5RCRA9TVsSAnZWagAAd9MQAKHQdvhDkGsGFRUla9r0\nZt8tRgLl+391awyEhW7wK1KpOiZ3W4XOety+m4hGcktTmMncNmMWi0eoRThx\n3eVnIqLqLwZSbS5ZsPEuNkLz7v7FHYL9bkx+mbtyt9K+8K7l5+kp+0uOsFrM\nnYKtLw/4D76k5TvKRpJcyMfyRz6LU1A7QuVXHHgtCw/7DTEE6F24bFqIJxR9\niqzUYhRYpu3xm9j3WG7LmB4wCXkTO2IZ1HGgj4uf85SPhOXTrgVZz2D7Si6z\n6f5D67T0t7vUmlGCto6NsOICFhTpWq2rbwSaOwq/qSRXlCfqWllOR41WO3Mv\nzigukAw4CdXP3vDzTHoVY7VcRbCSJqMsBP9lqzj89/VZb2/ycl3Xl7rQcsRz\nLGHh+AH9uoXcBooOYGr+m43Zi8J+IuqdLFfjggbwS+Em3o7gZ4apM7dEb95P\ntkvnPQQmhmt1YtdFrrexjtOVwu4GBirWXUses3qhzuQ/sX28lbnYJ9+kUcGs\naJOAvqFo8nAPplr9Jd73ddbazpY0Pmt1C5FR0vGIBs2cfjdkCSN7EUhVf1Jn\nLcsREjFRRj+a6KLRyy24gLVTq5s16AB6k2B6InPW9UF/7NztIynGKYsYdLqg\nPVM17zyxJ2uN5/Xi0ME6pNJo8ykqXFm+pdGg4cVFJC9qaIZEiQlbEEygmDw5\nNzXQ\r\n=cbkO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgyUnhXDUgEZyI6Fn1RRGDNCe/HWhKPvsEMQ70nHN0pgIgXZeqE4glxoqBO/N/lUkbDX2bsfddhcIBXQbKjA22g0o="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.11_1559154255408_0.574467237751549"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.12-0":{"name":"msportalfx-test","version":"1.0.12-0","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.18.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.1","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0-0","typescript":"^3.2.2","graceful-fs":"^4.1.15"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"a0729a6432a32f5f30553b2cd72bfea80f91556f","_id":"msportalfx-test@1.0.12-0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-fT0T2Czu0+VahLrn853TpmOei4Rr92IEBli/N+XSCJ7hLBRgwNFk17PP5pKHcUlT+lAF1M/HzhPC7Lwq87wweg==","shasum":"ac89dd39a6090e1b2c359ce3499b40214d0fff9a","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.12-0.tgz","fileCount":149,"unpackedSize":809575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9W/TCRA9TVsSAnZWagAAn0kP/1lZM/cJyMHeaeP3QlJe\nmyjM38G0zHUdkqKYImqEjiup8eWTlfdnikdNkRiNxq7H3fAmqO7RF2xBj4UB\nkqsVBDjLEdJG7L4g6dB3W5V7svqhxbCcCWjbadMEdjoH0veROdAvuheC41GR\nQ8gCSYsJcTD77wjIF49pnMbQUFZItEXRNUZm6t2OOog7JgeHq3zapAsfPXrZ\nPFcDTfvUSVmKPsQYlEDEseK2P23GxSr/C1bDxY3onuPZTpt4oMaE3bhtUMQ6\ntNoBatY98ys2CM4SDq5viuyIZL7wB3M6hqcqVIgrYSIFwgKtmspM/JwDH2z3\nwslLymBEuOVAJc1keFQw3YaMjjUa9i5s5cn43L9o9Mt+NALuQTYa9dp/LCup\nWJstYQQPT8Ehhpzmy6bEVbjrhtsHBjd+5HTpqeugH8EB3ulW9/AbHUDX+E5y\nE9rQpcPeXoDwULXm1uvO0A+aCTuQ9B6XjYhJU6ttPQytBOnwOMA0kg+wfE/a\nLFtKV+rPL+o1OPvy4wyXoCApV9Q6lVs0CJEY4S5UgBTnG5N3g+29+NgOvDvX\neHThXobhEw/BYvIBbwOwWt5XtlRVnIRE8JhL+zGMaCaGlxogjqvx4llk41DP\n58LBfOgh3vtwiDvvGi9WmVY9WFgz5Xe0BfeqmqOk1W79nzm5l+5EAQqQ1rco\nDjq4\r\n=zm3n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHT7mTr/ifrqOS3bWVHXaxSDK2eUv+/oyiNvPIpP6s4jAiBJeQYDB8UNgGIgZh7iYADnv95G/vsG1kOH6JK9PRVMKQ=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.12-0_1559588818329_0.6866155789344879"},"_hasShrinkwrap":false},"1.0.12-2":{"name":"msportalfx-test","version":"1.0.12-2","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.18.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.1","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0-0","typescript":"^3.2.2","graceful-fs":"^4.1.15"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"00775fca52c5ded8e2cefa37e020ede4e3be0f26","_id":"msportalfx-test@1.0.12-2","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-qDOzUZJ316LkOAZxm3ZWjYNDTY+/4RogqLUneV+F53ylY+EDf1APCzkQpYQl+93IdlKd5MxbIBAIihkgPbfMTw==","shasum":"df7b5cbf10dce813cf070702cd7a99a22a3ba3ae","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.12-2.tgz","fileCount":149,"unpackedSize":810083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9awxCRA9TVsSAnZWagAAju0QAKFecrjYdIiBnSsT9vHh\njyZQTyOTcaekHFj8TTrUYBnUPn7VThj90+mtWDKWJhOTCVNGIIEMyXubIVoS\nONbenTHyEQX9OM44wg/KhP8gIV5s2168I8e8WHjEamxZbcinDTZmdzAXusOD\nA04BPn24VHSikLKMVa/ILSVFRmtmAW/WVI+MaGjtNe0pnbV2hldPoRWom9Jf\nmbsos/+h6EiqEhNUASGI51Tg2NSXh+kyK/vyzgnn6flYyXNPwwp7k2fRgscl\nXf9+6kETmJxsJBQw98XNSczBV7BXu26PhAG/bDLDMebBGbBnYEgHNM/mBaA7\nniFGu3d1zT1XWxpfL0FZisLZ1c+rdx/q8s381yzyCIn6OMT+zszCL9PyhKUW\n0itaOWUrNYq1K20eOhtkeHGPZKBm0paG++dGdQbqPoA0cVn3pOoqIE1mY0kL\n2+TsQ+1mgWMGGONWh1AALr3wpYZx0SYlRjj5vTapvTGKkGxlAEY4IT6xkirC\nZf9RJiNo5jGQ1RYiq9lySqfx1AfA+JFuWLXdMDIMWFGY/ua6FOC7oxBNVdCe\nZQ/JWr2ByI57SXjVtQ1JeEz7mq8GNej50c+Ymi7et7rreWnk4qSl5Io9Ud7c\nau2t5Pvc04wS9pFjMo+W5E4Yy0JlShVRSV1iQDJfZnHkNDhAPpeqs1g5NWnW\nrzBn\r\n=i5/9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAA8dbNpM5wl6+emZc6gUq91RcNV7pCZ/p5mONx7HO+AIgUSboSwUBupWhCFSjtUZwWJZL/L15D0Ry3m6Yyhl6tFI="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.12-2_1559604271946_0.13450545020715388"},"_hasShrinkwrap":false},"1.0.12":{"name":"msportalfx-test","version":"1.0.12","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.1","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0-0","typescript":"^3.2.2","graceful-fs":"^4.1.15"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"b0dfcefa4fb09889b0533acb1a51f201d4b00319","_id":"msportalfx-test@1.0.12","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Rh/0y0h/bdRshsjDpjyh6i8T8XYK+TMcNWpH5QAaefi4W10Mq4zOigaSI1tkAJFNFGN1pL1d8XenYUCKf8LhSA==","shasum":"1d5df8079f156065982e903be2c06374b6c120e3","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.12.tgz","fileCount":149,"unpackedSize":810165,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc///JCRA9TVsSAnZWagAAwLoQAI4QAkghiccSqGfSQr1y\nIgIxQBIu8vYz1FdSgNpFQpHMGKtqgnTw0oGfzSiO+bLUUzeKWqFS7L0SdpKo\nzp3Ow00ITXMXZF8nSnowOY5cJN3VPyIsJ0CkIedKsuLtbowkDHFMxkOba+ti\nkEjJT8QtyMTlzZDtQJOBWNDjAhsddVC/L4IiA1qX+thkuvmzKBo0RyKoYvKx\nAB9iSjkvF+E74aw9hZpq+WVGrdj+jKjaOBO/oRGNcQUGv6/IKeUTPZNOUeM5\nWWZQ92CntrgKK+ahsKJN/AqN4ghGO42t88dxDqilu0cacf7d894rTxWumlTv\nHDWI5VNZNwqUsDIkcJBZqhiKtc4kQ1GYMCJ/w4X0JW4hbbFyWGpahFpz+kfE\ndXxRHsWLyQxhgsMSR4EPp8HpBfg3IWF/IyfjlEceBPCPP9CSgZxLpm8N0GxS\n0XP3zZPvQ3vyINyM3WwkUPJkXBNt5Ly1OK8oiid7EhK4g2gKixxY1VdUurEd\nrWoxGCpbtNabQuj92sBop4S3cY+4WhvKxdbOKM3fBq3Vs06SfrTgdPystmX2\n1JPWjl5kZOX4e3rlhchFN4hMOO473oOcDttgIAgrEcG0BWZu5pMrM1y1j8ik\nH5vlqBJRFd4bdv4RA+kl3QuGzjore1vme2PA60/+BEZKpT3iZCn9d0lahloy\neU79\r\n=hvkm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCN+NUufzG/Z6ko7/zOjj8o6W9FqpbWKlKBHtcpI6ttmwIgadzKr3sP/Ayg796T6Mx7H0sKyZUrkcd8krDECTiVLaA="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.12_1560281032291_0.8504610081236896"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.13":{"name":"msportalfx-test","version":"1.0.13","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.1","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0-0","typescript":"^3.2.2","graceful-fs":"^4.1.15"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha CreateBladeTests.js --full-trace","testd":"cd test & mocha --inspect-brk CreateBladeTests.js --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"cceebce770fca14f118e7dd5bd0faa163b6445a5","_id":"msportalfx-test@1.0.13","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-exJ4bQyMrNGlhIAohSDITE2pDre6oRKaSQlqFYUpIsmx9FX7AIB9z4HG7/0pCJL/OIJWIWz9RLjGEp035vyzGg==","shasum":"38bc4dfc6793c3b62362e8344616e4fe5efd50bb","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.13.tgz","fileCount":149,"unpackedSize":811378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFoQgCRA9TVsSAnZWagAAE4AP/07Ie4Cf8caAKtjgRU6W\nsM5GbBXzVLJfuaf6kn/fMSQ3KqdFnq8bW7PdUlqx8pdANA4LDknOjjbnY8z0\nOKEtY1Hijt74CA/s2z1a1oNYWnYkWkuMG6//olhP08B/e4eZ8EHbNvoDwDWo\n869m17KLunT3aEGqnen6e6nN+yLO057DCa6nNPoEH47y3i81dUbgMZ1yp64e\nW6DsH4jL5gvy3MEzVhLqfOUeLbOlHbVK7xWPFBgL0zh+BYx6HgeSMQzkq7oq\nsPIJy+8vj5gGf2lR0IYoMlW91l82OAmMMaSe18w/mJUf4dkgKYs7oVFCbhll\nRIyNG95kNFt2dDyuZIIeHPOWpXCuU629PndKyQCt9F1Et+n0zBzmTvZzqJpm\niVwgFobV0MOu6aIJpaFDY73hosrXOcyl58Z6jOLS6qjgweXSXswciCQImRW9\njYkWTInokzzpQ23OF9REDh1/Ha4Vnv/zZLKBOR1NvUxEA6f2u9ftGRYSgD9L\nQ/RlgQNsbveMUldy1SMLfs4jPs7mG2Azsq7Km7GVnzcVw11Znk74q8aGVw0r\nbHXbIPli6qzCe3rq7H02c4HzWsvQXXhzLT3UHFclUTxEnzZgQHu5M2i5DNDF\nCan3+W4TzSinGtGDcsUSJ091l++/vgnlVxF+C1yVmjHQlmvuDNbfoMx/N5yV\nJWiQ\r\n=CB+l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDmSLu1ihSg5IigPh41G3ff4zwYNjoyUZ/L4IJ52BxxHAiBsCmQ0CWFpjyNnnJszrDvcm0Z3QOFZTyIdmwOCuifZug=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.13_1561756702872_0.2117452461806355"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.16":{"name":"msportalfx-test","version":"1.0.16","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^10.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0-0","typescript":"^3.2.2","graceful-fs":"^4.1.15"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"badb32f6fe921cb51bf0e6fabc1e8639162b015a","_id":"msportalfx-test@1.0.16","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-FtrAP+ji2C0lQeS8oUSbUhFX0Ym5as3LxxSQU8Tx/7jDeOgd5fsxZ2THOHflD1W6mszMklGq27lZT87TST37IA==","shasum":"2331cdec4ad7d57261fedebd18c4c581691b384a","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.16.tgz","fileCount":149,"unpackedSize":812225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOMUjCRA9TVsSAnZWagAADucP/RmorOzMKWbgGOlQlhM5\ndTfhLO4EZLskY9DSsUVLRloNcsl+SOqzfynzf4sgbhvOro1vbzJzLcQ2HAQY\n/K9lzLku9HyfYTvJy++/x6IG4ytEMcPdnqO+xenkru7cSJ72WrSeoTCgecMM\nD3vQpabsNNPfOD5XUd23jOgt7cWVF673RolN6vdFNvMOtkmtg1uNBsPml6k+\nf6F5Op1U/Y+UEXoH5NwNRmJXCHTXxy0rtHil+lr7UBUBR0IJRIVGU0LlrV6E\nO7XWv+8p/3Mwv+ru8dfwlhFcYxQGYmUEIKaRibR/7cLxdzX4BLswbo2TrEfj\naKO9JpMsdSXrHAOCrOkqDRom2mzICdiKAEYaQdrvZ0qtZOgxrc3wwTpPqXLS\nwt+FSesYi7m1Dr7Yc3I0IuBsIxz6jrHRGIBC7ssNVQ2ot403YMLz1LTwnG75\nFEztXaYjlqWyGMxZVJGGNz/acnSRqumMCfCOAZhgW5pZNestAsv13samej68\nLSh9h5rnladIk8y7KspQ5iJXCZb9+PCn0d+jhvx/u8WN8s3Ad2q0Q7pmkAmE\nmQ+NWHbb3xRk+Fl0GKi/03KJEwZiMIgD8nJa2A0K00DFir+wyoCbHHtzIi+d\njwTxp7/tMjgFRcZqxSzZt1xBdQY9vQRKb/TiQpSe0UPKT1TFsxtvcggTDtQJ\n3xUw\r\n=GM+n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfcHSHDvDaTKzMoIitOIUsMN4Lv4Js5ES1+95isqkulQIhAO2ncN/B5YscXPz0lTGU3j3vKVkzptb5lU6Hkwi4e0Vv"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.16_1564001569842_0.785387099985634"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.17":{"name":"msportalfx-test","version":"1.0.17","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^12.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0-0","typescript":"^3.2.2","graceful-fs":"^4.1.15"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"9c1b37cf156c76feab79d550380351e1ca9eda5e","_id":"msportalfx-test@1.0.17","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-69uG/NLLjkMfYn36x/w8Q+tZ4Wm9zrKqQFhfehBM9v/h0GIPhI1VmzjKP3RnyNoGjCoqnsvWwM6tUgJlJVmR9w==","shasum":"15c77ff148ae693eeba8e062d4d6506ad7a13468","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.17.tgz","fileCount":149,"unpackedSize":812225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdTHgNCRA9TVsSAnZWagAADUYQAJRjaeLDdm/jBiO1Qph8\nHz9gbwj9mHY6PHCRJt9gPMfQ0Q/ReMmDJomDj6JX8cbW98Mg82dynmbcI0PA\nkbTmLt/lveU6k4VVezbeMlqsvvls3gOH1Xpl6vTABCGPVhRhSm2WDMld7+hN\nLTokS23+00xORCWs02YxXmQxvlYZMrM4oXwmrqQBXML4bbasPSdMQuwZXFo8\nsENmWABHAKI2Ej+4fNaYmjyntX7opPHoC1kpusUDQpPKF/KORaAcXfjVqaLM\nOqvwIL9NR5y4CkMPAU5BHyV+9y5CrB81t5nxMsahAmFtdy/7Z0Kx/2Ucr0RM\n2g5RH8v7Yp4wBc6GiYxW0Y3NkbtGBTrI3fdORKqE4zdDXtncjBwo21tiCyFO\n8NvOwInvh44FefY+C0nlWW7BIFYXATBZfsMbyewNjrzR2ICIVuudOBHGJWhj\nYWgxx7TJVej9OE1yzNQq4FHtbeCpaoZb+hEWyAQnJPPSJEtoK52AL23bDlw1\nMTZx0HvRWgnr2jJc2t4U+fdwtL42r2Ah03QyHzsS+QzWJWyXqt/UqWKYwYcw\nTxg1pNxvAX2yLu4jsNLnlc4IDCFBQcAFB1yaWAucUaB3GT9PTKJyV2vs9hVb\n6sOV4H6/LByF4v/YFKTdo2hd2cceCjIMEsUOYBYpt+RcbMUJHKsoj5jcFgkj\n9MkP\r\n=NU4/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGibxoKM4Tlr8Loz8oxTZmIar8MDZqqKonmeAC3m4/WXAiEA5cwepbNXB1osX5yTJdzDQB2sjeUhcUhFGhw/hVT1vow="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.17_1565292556312_0.13546106828995286"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.18":{"name":"msportalfx-test","version":"1.0.18","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^12.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","graceful-fs":"^4.1.15","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0","typescript":"^3.2.2"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"8775b7d2235a6df1891dfee43c8467480c60ddff","_id":"msportalfx-test@1.0.18","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-CE2xSJONDfoyDUlFBrtMsL+vMm/mcHOxKXH1HCJuaBdtbhwGORcth0mQnKPl3K3I8dJKkjsTlK5WE/RRfWN91Q==","shasum":"535f51032475ba35ab12b233eec402db1eb5429b","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.18.tgz","fileCount":143,"unpackedSize":824014,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiphoCRA9TVsSAnZWagAAo+MQAIPIDZJIgf1YoA0v3Xxo\nIP0E6rIfTQuaKMinEZajZHijSSZTlUB22nkAPI38rDdVtUql4KTPC4MjV9Wz\nqugiAPa7TJLYHZ1lcThAIOrEla2kl6ILNiDfmGZJxZSbqYSyzv3EGVbnEp9p\ncuCrZzyjBtjmhJHRdeP5iM6JkjIDaNpSp+D9PZyFOijwmYfdA+NBKVeNRpv8\nM/5qWKFLr6f3jLFXeWhEXV5bLLn2GH0IdbT09JGhN9wnnZufFzgMGeU6bT7u\nZw4b2hCj1tbtur3EwHCYXBrUeKLgWGzVGrghqOn3/aikL+HoqH6BVP3OWMUQ\nqB5Q/OFs9cC5MRikOEXndCFulucU4Shm04bf0hi+k0DujMKcZViN/EBjQvsq\nZdQP3TEcLbQpasmb7zgsajQ1VCjggk4EJrwm7GPdipkb4JSmIXb0FXnQ58VZ\nSLJMe0+jPCdHyMjffvJkgCkVQ8jJdLyi//D3SxkVmytP/+Eh0uNnmWnckiSS\n7jF3IgCe6M0OPyQn4rI0U9BQlql+eA2BafCt9aY2Li4r8p7pp4oZqg9hJzhA\nM8yMo7elE8a/V0jWo6zQN4euJr11Q5Nf57gsjXVJ3fn1xzftsSCwy2E+Prlj\nqxVLg7kY0yk+zw75iPONzNMECG+Rr0xQAyh2Hnh0YdamRvD5DmGUgeoHZBku\nh/Ws\r\n=6tEj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6D480/BI5Gkz+vQKdtrFhq6Ph9lCHm5tMCyDH2WUH4AIgCzL0DqGacIiMhVX054RnuJlbQODCARSct7T6jgGWNCA="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.18_1569364071768_0.09332765248782504"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.19":{"name":"msportalfx-test","version":"1.0.19","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^12.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","graceful-fs":"^4.1.15","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0","typescript":"^3.2.2"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"603d81ea7f0d69eedb3f9016a3f40057b81f15f2","_id":"msportalfx-test@1.0.19","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-PfxTDDUCWU+1+8hMhtKNdkdvUIIKh8osgjuz/ssVCgmn+isSl0A92GNv6WMNk1m/Kz0rkX8FIYn5+MQOx5tbqQ==","shasum":"b2404eaf91a23d67809ee09c5f79299547d85e8d","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.19.tgz","fileCount":143,"unpackedSize":824016,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdjq8lCRA9TVsSAnZWagAAkSMP/3N4eWz7ClZit8Buznxn\nwEzFKd5fKybHx/a5U0GbcL2n9NuFSHNrWZUq0pbyxTsJT9OYubhr5L9CRIy7\nvDyIaMP/kGY/LwD7q6z930qNFdnNgGcUcjxE/HguTzLTbdsjfhgiv5iJ2ltX\nXLe7lKw3pn6eXsokx9CiPG260+u/QqGN/xzx6wGZJhQSfRA6QVkYDRyWye6a\n7fJTJJZfpCokOZhxQ0SiDeJiNoYPwjw5G3y68mNd0AUMScfPpvAyZB1TcUXl\nTvIzEKF75P7qB0KkQJh56i2T/Z+C3M4AcbL0A4HjEbVNLsksjhkNxwWbQcac\natyMxZMZrmkX+HqivgfqvPHMhMMygIqEfOnJNiq5/ssUQhJqPsXn4kTbtusu\n43S9MJyacIbTVuNSXt3FQD5WwMbHWa/nNobowVrgcLOq9wHcOq2P4Pgw3g0G\nQ9IXTR8MEfYEIIAJvb0erBvbTtaMyao8MyJsXhwSsbDC7JgcB1UEq5TYNuo6\nROWgCqX6m/e0SUA1eT3RPeFX2Gj5wZrQb3ndRWTg1fd0HpOaaCod0JGpDQHX\nXc0tAosqhCpXNwYVd4HTVH6YfLL/yRtqRQn/NMZN7arfII8PCYKb18gNdQ0N\nDa2bvib7X95Te29zttLLL6tffTwq3tLVQUycI57chStxgitinjxT4MzD4eAL\nD4qj\r\n=yXs8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGHesD0wOzEquyxQEiIwQR1EoyT9ML2fRaQ3NoOexL7AIhAP/ZhJl9kT3cn5VSFkB/9fmKpccrosN9VMspnCFXLiOq"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.19_1569632035940_0.14698964950937077"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.20":{"name":"msportalfx-test","version":"1.0.20","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^12.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","graceful-fs":"^4.1.15","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0","typescript":"^3.2.2"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"43b11eaef9023ecc8606cbb9e62c4c594eef7317","_id":"msportalfx-test@1.0.20","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-x+X13Smwnvfq2omF1v+NKfaR0hEpJIItuX1f9NgxgnwBYhr7GZd5mp/Rms3FrVNcI3HCV2pucgqDsyANQ40tqA==","shasum":"297d52c6ee6352f5a81089796e017f85ea651b56","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.20.tgz","fileCount":145,"unpackedSize":832479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdm67RCRA9TVsSAnZWagAAgLcP/0TXZSGE0yaB6/5TKp7A\nyyIP9ET0NxqfxbpRa26NGuz8qJkq8iNxpCr9WUwg/X1A9+tfx8/rXRU7sc8h\nU3hlqOptg0CXkJWlXslWnvLtbiK7dPlTKjHcMWbWjXP7IM2MycO3luFJ+dYg\n9qoLYzeHp1No6c8zJPcvWJmL33tSASnx8ECv37KQr6/uuV5J2glw0NoVRXja\ndS9tyiJckLyT7Kyhj6Hw6FdLMIf5x6TeJXNS2cniGSx3jhwHKY2vgp0QIMLX\nyl48R1bLO75Gwtl+PR0t2uRLxHq09uGFgvvno0VYHlzhORgXkDRCK+x4a15n\nePndSkxpmkkOCYLibpWVuIS0jr0ddVUJs5dMWm/82DQdN7j5t30Uvwap99oU\nV6XvkPQXAe6TflSIRnhbksUELqz3WpZlvTg2abo5XqBkEIoXCMFkmkJW7CJu\nOmIfVGOH/0xA/Z/K4VRgTTJajL834aQAWMlKqYmtGcT01LcuoMuEYbxwUQh9\nRvzUYXl8l77UmUj0fgFKnzdOYXP9Ks4IuNGHOFjPnj6LfLtZUgGEeaLsHWvL\nCtEGy7roxCXCKyNdp8ziD/iY0UIfEP8aU8JhCmeAjQW2ISbxl3h5Qpfwxg73\nCBHSSI1a9ALhfLxeDQsXjQaEOgpyU6lxTX2TQ6CQyGQ5vujb5JlvGQEV5A1/\nPOk1\r\n=DyPG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxpn7Rk4uPW/e50g+O5MTjqbkBEpUFuw1CpqSAAeXTDgIgPScGQzEfgnlzsaEiVJXSO91zDJ9eNmw1TZeG08RR3Jw="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.20_1570483920554_0.5976460434924533"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.21":{"name":"msportalfx-test","version":"1.0.21","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^12.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","graceful-fs":"^4.1.15","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0","typescript":"^3.2.2"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"fffc50f7e4d3db5bac3e67cfe0bf66331d08bdaa","_id":"msportalfx-test@1.0.21","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-AhWrgX73J89tBk0uXeqlREBoJnEpD5uaFiQ/S8jV+3OHo6sjZ8+NFc0CqSXYbP9xI/u+gf+UTGfFjs4aDD/1AA==","shasum":"98f17f9099e4ee3466c1a765316a19ad60dc252a","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.21.tgz","fileCount":145,"unpackedSize":832934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqRiNCRA9TVsSAnZWagAAcXEP/jhetcH3u1WQ3hBAm3NQ\nLZewUAaIJwct7/AABFlvUp9kbCR9JHfmPbBWmBPku1ObU1oX3r+KUx3fOoF2\nyc1s6m1FSoJRSQtBhq/nPjJXX4LCIb3s0KBUCH3AUsdxHpIJaJHqKDYL2dBJ\nHkujXwxV9bekOorK0V+JwqN0GPvkr3xBHtWGA6Sq5HdK3J7kufPaoCJPVr2L\n1pXjT/oGFShAbpqsY6GL5i2nKB2jP+3fzd6v8IeS0GVRGAgX6LIVc8FTB7bJ\nM03RRwt2JcwUQXq2xWdaUe3lawVR0ljIMfXBjhrvB2JIvjzmlwgUNiqQQXFe\ndTu+jPyJ/kATbVEacKs4Hpx8bzPnnELA5lUJt9xyCdrZxt+8L4zTw31burp/\nuPhNL9rDaB0eaWy/ReXib058lWjycktC9kUo57LoPA/32aYGNBguZTcOgr7/\nfsTsRRgQ90StDykWYcmu7UXllmqwIA50ea1vcmJtCgN44GQ58iiucCOH2m0u\nNO4caJJS5RgD6XJZcTxgWqkmg8+ttfIfE13DR8YdM+kJrAhtXATnJWJ2S0wk\n6L6SX6OK2Qin+aKoXlqtQZa3hWAeiRqPujL7VZAvJBEvK8ndfKX3kiUqr0fI\n/thm1W0cle4BaW0ilWegGe9qnoSJ/TG77y1Ok0QNDmerK8VxgSzl9LjJiVxo\nQduG\r\n=60er\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID2CETk+36MDir1uyDMGfbHhtSpb/SJnVKFsf3rdM4/KAiA1H9nQ3iryWukZ/Wopl4q22+vfU7PFdwgOz4W+XM5SIg=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.21_1571362956200_0.4256885083840216"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.22":{"name":"msportalfx-test","version":"1.0.22","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^12.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","graceful-fs":"^4.1.15","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0","typescript":"^3.2.2"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"e1096b1190f4c9e98c95fb91df5bb85d486050d6","_id":"msportalfx-test@1.0.22","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-BqiF7IctaMvad2M+W2nojI25iwMZqG1qTPM+GJ0xxogdxm1TBGQN1abqm3Pct/6jErX/bsES9XfL9W7qESrCCw==","shasum":"ebdc5ed13bfd52fcb726857a102accacfd054a25","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.22.tgz","fileCount":145,"unpackedSize":836301,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwiWnCRA9TVsSAnZWagAApj4P/ijradVmKFojE8u9+EDb\nNqUhodiHrFscJ/NmM+lFYFM8c74oJF1rg8w/lCNuDfQ9ZVWDJxpVfmcy3aW8\nRpGgN2dsMLTaQmUPsqrXLDyAKxjJ3uH/DtzlbJ7GIeDfNI6fVgOHrfVVIzcV\ne1gRFu/5CSkRY6BaCweocaCKV/nZKqY4uHgMgpfNJlP1eqP+pfrDKn/74YMF\nY3Q8oYzNMTW4WLynNzEvPE+v0UNnEawFngvfuV255U83+WrCGWETOtSrz9wF\nVqthgJ4KZc6zVFp45M+Z+Z19szYaNLDT1JGVz7DAWgvtYmkQ66t3D6OhEwFm\nSTBtk/BPXz+C1sa9Oofpc8j0AxEwDFOWDpQA8LLVxmWUg9g7CtMlwTs5/tks\nBmqrGHvDwqu0QfH4tHUicxiXWTg9OUAXg0GROlpGIoiBSYgxRcarIf/XvNGC\nW45S0HGm/d6ByLegEXuNZCu+2fWne4H6pxz12c0EPuINs/yEpmVxOr7rqttp\nxgs/E1n3Ta0xi6HlwPiamyZI95y8JKZY65mwkrrLFKi5Odqli53uTkcngO4q\nJi0t8/BROlxffZqlQ/HiMvn/vxcbjBGkEC2dZVBGy3LKnpbE5mUjgIkYjIJs\nY5tv9HDIz7pgaq0G6sodaj/bScY3XhTAUjgR25ZMhaqf8b+g6bRu8qrRldN6\n/tjj\r\n=ayGB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUcejzzcbD6wGsaATmG9B39N+dKEnHPrVqRMvtYFffKQIge1Ax6zlu5IWwA5LnHmBUYz/xTCS/4U4z0AHeE+eADUw="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.22_1573004711018_0.5481881864316094"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.23":{"name":"msportalfx-test","version":"1.0.23","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^12.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","graceful-fs":"^4.1.15","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0","typescript":"^3.2.2"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"15c0ddbb7ed83399081ce4e2abf002a9ef6aa153","_id":"msportalfx-test@1.0.23","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-PiS+5nKBNBzUDs6fPXACTbiAiHaZv+WMieGyspqXE3yL/rPe+UrqBGaoO/A4ApMkrIFKX2unfcFJ2ubvfqHKTA==","shasum":"d7c73e39872c9825ed3c527f853c4d865b48d3e1","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.23.tgz","fileCount":145,"unpackedSize":837848,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQfxACRA9TVsSAnZWagAAzIEP/1eGSf/zMszY0UJ/o3d7\n1plQinzeZLmCZsqTG6K6KUTzbvPew4mNkqj296Q3RdGS41xYwOSWcNk70Z6b\ntFZd7oVscgITZjw45nvaSX4FxxDq5Ci55xhu/JQ3bGzFNEUOyyoDzs1MGL0n\n/xtaurfHxTmavLji9bVPB2Ww7j4z/4a6M0Ku4YysEFeHc6ssP2jMOgDnYlgn\nFbTMnboXail8oTLZciJLfHXP+3OpdPKkrNMrb31R3VbF6agK+2GXnC3DxvvX\nWQb9ufhOsIpGnzyDPSeamXMTbxTg2uyCwV5BeISCE3MlvcUXFxIrJJWalSmF\nev+S+kqyLSMQi4FHuZQOZHXWJIYgk+sVOld54VpGJeBpKrA2oiOWPe0CycfI\nGtaZj0XiNIWk+D8HgYnBOLlARLAJyCht/YcLmar5jhcAsbDhJeXJzewCNs+3\nZiIV9LwuQbkyX+01Yh+4JwyNGnuUX9qBwwopZ78aGG3kH5sjYSDfWw1kswh0\nU5K5FXIezU67C4NzKeaTcFhAQXyfW99es9Kjbu3+RiAnCpmouwHMCtDbUNAK\npbpfbLrsujuKMjyIHawupWcaPg/CYoWoDnoHqTV8FhTOEZ6qX+d5JgrW05W9\nDC8hFCToO2Zwm26xe/cAiPMahRDKN8QvgK5o+8TOT2fs3gOsKZssBqPJO4fu\nuKYu\r\n=hm2l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDysIjtuLXw9zojgFCDtd0piai4fYoPT5IVvAiY4fIFwwIhAOUtRX7mjjg9qp5lSzZ44Fdi/y02NnI6R4mhHKa5Iwaz"}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.23_1581382720143_0.7008138712011076"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.24":{"name":"msportalfx-test","version":"1.0.24","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^12.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","graceful-fs":"^4.1.15","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0","typescript":"^3.2.2"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"edf466bb5a50e6b183b9102c7b55e639b433ff5f","_id":"msportalfx-test@1.0.24","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"maftab","email":"maftab@microsoft.com"},"dist":{"integrity":"sha512-IbdF3zWLnvO+404ffIO3tNS2ef/zEdEMBViSkyvKbwLDAsfSO412QnGsFsq9iMeq+n5/WE9bOwqhsphHhjDH8w==","shasum":"c90b4436a3f15f18015f6e6a5e911bf4e26ea2bf","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.24.tgz","fileCount":145,"unpackedSize":838025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeh9eHCRA9TVsSAnZWagAAOZ8P/izjC+SdfD2K1NAhkvRH\nFvCDhT+ybqgqkjrWY4BJ4xkNYYj+is/fzmhOCZb0ibWZvc1SDnhJ2AdXoCzU\nuI1F1T72t07mYLdm2ux1nJUI4xGJR9OqAxF5+53tTNmhiJFegBC9o8xOstTe\nqf5DnntkXXg2X1/W428ve5YG1bICgz7V3TfAjyvJVRLq4lcfYFaJYj3su3jy\ne6U3QZSZ5jQh4/aRzHylW5TAq5PXKWQgcTq08QCMXNAQDWdvKy/9JeHc2+zl\n1X8i6/fOSzk0j4Rni9l07kbrNjGmKWup5gi6ERGnpK0Lt3JY/dR8N0Biq76L\nSy97UHGwRnQVsRwO4PYpuicz6cb085nFtxSyKoKBWU/CUva2vo0arHyFM8bc\nHvQrJB3xHsj6PEADcwde51x4wMESH35tXicytxLqyDFaIVn93tTiIqbFpL6H\ndJRAElzLY8cQfBFueKyHPXECCNdqX7CW3DeJn4Y9CCXUpvBVz/nyH8NKOrr7\naVw+bJRYeBaUvEQ2Nh5kPqmnxAHoYsMUVB2U0p0Bn4Coq5WsBtVLZWY094aF\nkx0v1pY8nwtQELMH6orNxrHQEItkE+DMwZ8O2Ar9ksYoQh92Ar49PC9tfoov\nRC1JZk9b+QHtCoeXveZVg0ub6WggTC6Eb8HhBhnVqWOsu+ixr3BmznVWClxu\nGLR6\r\n=eYYI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJLXNSgUkfFAxKoehmgqZk8zQxV9b8N9owWIvB8RjQGgIge4AxCOsNZWfE9/JPhHg4hprT4Et9ckzL2T4n+GcRJgw="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.24_1585960839171_0.2191914800612893"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.25":{"name":"msportalfx-test","version":"1.0.25","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"9.6.6","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^12.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^5.2.5","chromedriver":"2.35.0","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","graceful-fs":"^4.1.15","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","merge2":"^1.0.2","mocha":"^5.2.0","mocha-jenkins-reporter":"0.4.1","typedoc":"^0.15.0","typescript":"^3.2.2"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"e023b3e9c442a308b88be544e4fb2ca357179458","_id":"msportalfx-test@1.0.25","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-+PmraM1EIImwcVgCNM433grp5y7y5P2MmFvfvBD/LvrbD9StqAMpaCs/QIdKvGBwIzdniS63pfnKYfKi8xdi8Q==","shasum":"19eb2c7e4c18dfee8682e5ac3cf969f9f9b86ee3","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.25.tgz","fileCount":145,"unpackedSize":838277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeljYBCRA9TVsSAnZWagAA4m4P/2phkX2iW+48IBWCuSP9\nkBCMNNRrRu57f77ibWIGS+kztVKNoATbevT2e4z9LJncpa4sS+fu0mJwVLbd\nFUyHD5D1VlvSrsREA1wJnvwBBltez3354O8tUtCEismI8bbAEKThsqNPwa80\nUWK9krr8F+dSofndz+7kB9vpGAxmxRy+CqfQMbAuQiCrqwjNb7RkzPpCJB5P\n/3fZX5iBDqcO3A60IbGRlBwxd/MEObXE07Hb2OD7Wbf9C1mX4XWb6WmviSGI\nyLE8lbGR3RjU6KLJGEg6UWShMjeJBr8Oy5+NF4+o56Y2cWL4NBunCNIROJCG\nQt+Obc8EyO7iRAbMjbhDOWW6A5gCgh/UwZHp4uC2ft94g1DpDvCpYIRtwh3S\nDjCtbcLy0q0SS1n3olzkLdz4qbDBD8/NoNd3VdXbUpAR9vViqwALP1T0HuFi\nipYFPg/QtRR81NYsDimtExRWp2fxmXA51sycOPvG0/vxESdKV16dSWdI6o3R\n4BOuOvJ3XiHQYAAiIk1/Gd28GiBIuh4S7v/N55lQA7nriyreG9ZFRq1I0kqX\nlipzZzCW6r+HEYcH1abJXID04W5vzaTTboDDVx+NmAokFVRkxLJezFlFPFYd\nmVSaO7m9ZTq0qWqHkh13ScjdZumqChCd7D9kExLSpRhF0Rq7HgxzJmeCF6Zp\nCOBu\r\n=tIpV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFqa36D0iK9HmPzKr2ruj6KR3Jgzby2qyjlNg51K3I1yAiAi47OUcflFGo70K3WqzG9ffWZ+LIoJHc+n6LdJPjNuZg=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmUser":{"name":"rowong","email":"rowong@microsoft.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.25_1586902528412_0.3446752258216461"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."},"1.0.26":{"name":"msportalfx-test","version":"1.0.26","description":"Microsoft Azure Portal Test Framework","author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"contributors":[],"main":"lib/Index.js","types":"typescript/msportalfx-test.d.ts","engines":{"node":">= 8","npm":">= 5"},"scripts":{"docs":"jsdoc2md lib/**/*.js > ./docs/apiref.md & gulp readme","docsite":"npm run docs & typedoc -out generated --mode modules ./src","prepublish":".\\scripts\\prepublish.cmd","postinstall":"node scripts\\postinstall.js","build":"tsc.cmd & node_modules\\.bin\\tsc.cmd -project test\\tsconfig.json","test":"cd test & mocha . --full-trace","testd":"cd test & mocha --inspect-brk . --full-trace ","testjenkins":"cd test & mocha . --reporter mocha-jenkins-reporter","testprod":"cd prodtests & mocha .","clean":"git clean -xdf -e .env"},"dependencies":{"@types/nconf":"0.0.37","@types/node":"^12.12.25","@types/q":"^1.5.1","@types/selenium-webdriver":"^3.0.13","adal-node":"0.1.22","axe-core":"^3.2.2","axe-webdriverjs":"^2.2.0","axios":"^0.19.0","azure-arm-resource":"^7.3.0","azure-common":"^0.9.18","chalk":"^1.1.1","edge-js":"^12.3.1","findup-sync":"^0.3.0","graceful-fs":"^4.1.15","ms-rest-azure":"^2.6.0","msportalfx-mock":"^0.3.4","nconf":"^0.8.2","q":"^1.4.1","selenium-webdriver":"3.6.0"},"directories":{"doc":"docs","test":"test"},"devDependencies":{"@types/mocha":"^7.0.2","chromedriver":"2.35.0","class-transformer":"^0.2.3","dotenv":"^1.2.0","dts-generator":"^2.1.0","gitdown":"^2.5.7","graceful-fs":"^4.1.15","gulp":"^4.0.0","gulp-sourcemaps":"^2.6.4","gulp-typescript":"^4.0.1","jsdoc-to-markdown":"^5.0.0","json5":"^2.1.3","merge2":"^1.0.2","mocha":"^7.1.2","mocha-assume":"^1.0.0","mocha-jenkins-reporter":"^0.4.3","reflect-metadata":"^0.1.13","typedoc":"^0.15.0","typescript":"~3.5.3"},"repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"license":"MIT","homepage":"https://auxdocs.azurewebsites.net","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"},"gitHead":"079386e280084acd77737b66a33f181b4ba4619c","_id":"msportalfx-test@1.0.26","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"maftab","email":"maftab@microsoft.com"},"dist":{"integrity":"sha512-hf9CV1RTQIVXbGOWZLMwQaOG7SIRvu/LUhPdnulKqYE4xaE3B8Ut7JXORmIyiFkj4beRQMRktaVxWgu8wk8ZuQ==","shasum":"12f4797d6b0fa43071b7cfe7667cb06f31d400de","tarball":"https://registry.npmjs.org/msportalfx-test/-/msportalfx-test-1.0.26.tgz","fileCount":154,"unpackedSize":943347,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesymGCRA9TVsSAnZWagAAEFsP/R8wo0ZlqQkv0Rs4WSgA\nXjxcMrZEOlfPLIKUhl4FYqQBElDHPTokA4+4KuS5LX5j9FmCZUyRY+tuXVUj\nkzmyBVC6SLleVXvRcqTtvn5qv+Eyf9AYEEctgR/+dWAV8QeCP53a2f0r7jsr\ntQPdFTctRYRnvb9HxB+jwcm6rJC1+SREuuBzxtcjnR39xatJl268YG53qcR1\nI6NJ/BmEoBb7bFSs//KR2JKeovjG5vefw4Q8srRMEYae0Gyfl3b0i8+wMOok\nc1w1Da640u/V49eoTjXNhA4+KXDTB9lcfDvGbsAtV3wDwSMWmrYAn6y+BnpZ\nFh1cAG2ZwM46Gy4a+nds/lAVHl7iAxl+L4YzHSIVy/9vSpu4amMx1vy2VXuC\nNsb8gzP8ccF2puA9l9VDzA8aAZ9wHZqMgFS/D2r7F/nqG2ilt8e4ZH0V+ode\nMGf8HQtnCl4v6OHmqg6PvQ+D314hS+Y/ekeUoRRsAs/9glDnYJnhVwZ5f4ZE\nPSf/E+KQ/ElTFuC9uvM7ulj+HP6l8Q9XhHRmjBxcr+nQ108HCtqKJbjulItR\nlJX0OGDSQJprw8iVujDq56JfDiLBz7LlkZmaI/uYr4UspUggbYVPZbKYa16B\n68/KqfxlbcYcNdgdEGyOOEcqDdmiyhClaYwHJDBGZ+MiJc7AUhUctuBZ84yG\nJUOo\r\n=Shm1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBfzWBkoPPCgKGwOEIIF5jsumdys87A77YVYID1blOYvAiBsWZg0OO8UKlHqyobwh/xipSgMJNbIn5b931gaIKXVeg=="}]},"maintainers":[{"name":"julioct","email":"julioct@microsoft.com"},{"name":"maftab","email":"maftab@microsoft.com"},{"name":"nickharris","email":"nickha@microsoft.com"},{"name":"rowong","email":"rowong@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/msportalfx-test_1.0.26_1588799877924_0.5680524478624691"},"_hasShrinkwrap":false,"deprecated":"Msportalfx-test is now being hosted at the private feed https://msazure.visualstudio.com/One/_packaging?_a=feed&feed=AzurePortal.  No updates will be pushed to the npmjs feed."}},"homepage":"https://auxdocs.azurewebsites.net","repository":{"type":"git","url":"git+ssh://git@github.com/Azure/msportalfx-test.git"},"contributors":[],"author":{"name":"Roger Wong","email":"rowong@microsoft.com"},"license":"MIT","readmeFilename":"README.md","keywords":["Azure Portal","test framework","testing","test","selenium","webdriver"],"bugs":{"url":"https://github.com/Azure/msportalfx-test/issues"}}