This commit integrates Mock Service Worker into the browser. This will
allow us to use MSW to mock network requests at the API level from a
browser using the same MSW fixtures that we are currently using for our
testing. This means we will be able to have the same environment for
debugging, development, and testing if desired.
To develop using MSW, the developer will now use `npm run
stage-beta:msw`. The dev server will start as normal, but now any
request made that has a corresponding fixture will be intercepted and
the fixture used to generate the response.
This adds an MSW=TRUE environment variable to the run script. When this
environment variable is present, the dev webpack config will copy
mockServiceWorker.js into the build directory (/dist) using CopyPlugin
and will add some necessary headers to the dev server's responses using
DefinePlugin.
Due to merging the openshift and chrome plugin systems there's
additional requirements on the format of the module name.
Camelcase is the default, so the values can just be removed from the
config.
Since our app is deployed under `/beta/insights`, we need to serve the
local files under `/beta` as well. This way we can use the production
chrome and services config.