From 9dd9e9cfc8dc43d28fcb62059140187fea38ebcf Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Fri, 19 Sep 2025 10:26:19 -0400 Subject: [PATCH] Consolidated defs to single file. --- environment-variables.js | 23 +++++++++++++++++++++++ jest.config.js | 15 +++------------ vue.config.js | 14 ++------------ vue.release.config.js | 14 ++------------ 4 files changed, 30 insertions(+), 36 deletions(-) create mode 100644 environment-variables.js diff --git a/environment-variables.js b/environment-variables.js new file mode 100644 index 000000000..4d894b006 --- /dev/null +++ b/environment-variables.js @@ -0,0 +1,23 @@ +// DEFINE every environment variable we will use here, +// with a default value to use in local development and unit tests. +// +// Default values will not be used when we deploy to prod or non-prod. +const environmentVariables = { + ['__VUE_APP_CONSUMER_CF_DISTRO__']: "https://digitalapi.dev.safelite.io", + ['__VUE_APP_CURRENT_ENVIRONMENT__']: "Localhost", + ['__VUE_APP_GOOGLE_PLACES_API_KEY__']: "AIzaSyDptGCkOPgN2uWJOy4ou4M33phRD4MAoJo", + ['__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__']: "https://www.googletagmanager.com/ns.html?id=GTM-M6XCRH>m_auth=amlAYNhxUxuskQo7jmjadg>m_preview=env-38>m_cookies_win=x", + ['__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__']: "(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl+ '>m_auth=amlAYNhxUxuskQo7jmjadg>m_preview=env-38>m_cookies_win=x';f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-M6XCRH');", + ['__VUE_APP_HERITAGE_FUNNEL__']: "https://fixmyglassdev.safelite.com/default.aspx", + ['__VUE_APP_MY_ACCOUNT__']: "https://myaccountdev.safelite.com/", + ['__VUE_APP_SAFELITE_HOP__']: "https://sv2-safelitehop-dev.safelite.com/fmgCheckoutShared.aspx", + ['__VUE_APP_SESSION_TIMEOUT_MINUTES__']: 30, + ['__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__']: "", +}; + +const keysOnly = Object.keys(environmentVariables); + +module.exports = { + environmentVariablesWithoutDefaults: keysOnly, + environmentVariablesWithDefaults: environmentVariables, +}; \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index e965e2f12..10af0ccf0 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,3 +1,5 @@ +const { environmentVariablesWithDefaults } = require('./environment-variables.js'); + module.exports = { verbose: true, coverageReporters: ["html", "text", "jest-junit", "cobertura"], reporters: ['default', 'jest-junit'], @@ -50,15 +52,4 @@ module.exports = { //silent: true, }; -process.env = Object.assign(process.env, { - ['__VUE_APP_CONSUMER_CF_DISTRO__']: "https://digitalapi.dev.safelite.io", - ['__VUE_APP_CURRENT_ENVIRONMENT__']: "Localhost", - ['__VUE_APP_GOOGLE_PLACES_API_KEY__']: "AIzaSyDptGCkOPgN2uWJOy4ou4M33phRD4MAoJo", - ['__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__']: "https://www.googletagmanager.com/ns.html?id=GTM-M6XCRH>m_auth=amlAYNhxUxuskQo7jmjadg>m_preview=env-38>m_cookies_win=x", - ['__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__']: "(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl+ '>m_auth=amlAYNhxUxuskQo7jmjadg>m_preview=env-38>m_cookies_win=x';f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-M6XCRH');", - ['__VUE_APP_HERITAGE_FUNNEL__']: "https://fixmyglassdev.safelite.com/default.aspx", - ['__VUE_APP_MY_ACCOUNT__']: "https://myaccountdev.safelite.com/", - ['__VUE_APP_SAFELITE_HOP__']: "https://sv2-safelitehop-dev.safelite.com/fmgCheckoutShared.aspx", - ['__VUE_APP_SESSION_TIMEOUT_MINUTES__']: 30, - ['__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__']: "", -}); \ No newline at end of file +process.env = Object.assign(process.env, environmentVariablesWithDefaults); \ No newline at end of file diff --git a/vue.config.js b/vue.config.js index 46adfaa9b..e1e4690c6 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,4 +1,5 @@ const webpack = require('webpack'); +const { environmentVariablesWithDefaults } = require('./environment-variables.js'); module.exports = { outputDir: "dist/fmg", @@ -21,18 +22,7 @@ module.exports = { configureWebpack: { devtool: "source-map", plugins: [ - new webpack.EnvironmentPlugin({ - ['__VUE_APP_CONSUMER_CF_DISTRO__']: "https://digitalapi.dev.safelite.io", - ['__VUE_APP_CURRENT_ENVIRONMENT__']: "Localhost", - ['__VUE_APP_GOOGLE_PLACES_API_KEY__']: "AIzaSyDptGCkOPgN2uWJOy4ou4M33phRD4MAoJo", - ['__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__']: "https://www.googletagmanager.com/ns.html?id=GTM-M6XCRH>m_auth=amlAYNhxUxuskQo7jmjadg>m_preview=env-38>m_cookies_win=x", - ['__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__']: "(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl+ '>m_auth=amlAYNhxUxuskQo7jmjadg>m_preview=env-38>m_cookies_win=x';f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-M6XCRH');", - ['__VUE_APP_HERITAGE_FUNNEL__']: "https://fixmyglassdev.safelite.com/default.aspx", - ['__VUE_APP_MY_ACCOUNT__']: "https://myaccountdev.safelite.com/", - ['__VUE_APP_SAFELITE_HOP__']: "https://sv2-safelitehop-dev.safelite.com/fmgCheckoutShared.aspx", - ['__VUE_APP_SESSION_TIMEOUT_MINUTES__']: 30, - ['__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__']: "", - }), + new webpack.EnvironmentPlugin(environmentVariablesWithDefaults), ], }, }; diff --git a/vue.release.config.js b/vue.release.config.js index 445cfda48..cc2c70535 100644 --- a/vue.release.config.js +++ b/vue.release.config.js @@ -1,4 +1,5 @@ const webpack = require('webpack'); +const { environmentVariablesWithoutDefaults } = require('./environment-variables.js'); module.exports = { outputDir: "dist/fmg", @@ -20,18 +21,7 @@ module.exports = { }, configureWebpack: { plugins: [ - new webpack.EnvironmentPlugin([ - '__VUE_APP_CONSUMER_CF_DISTRO__', - '__VUE_APP_CURRENT_ENVIRONMENT__', - '__VUE_APP_GOOGLE_PLACES_API_KEY__', - '__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__', - '__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__', - '__VUE_APP_HERITAGE_FUNNEL__', - '__VUE_APP_MY_ACCOUNT__', - '__VUE_APP_SAFELITE_HOP__', - '__VUE_APP_SESSION_TIMEOUT_MINUTES__', - '__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__', - ]), + new webpack.EnvironmentPlugin(environmentVariablesWithoutDefaults), ], }, };