From 938dd0b5cacd4c8a9a0930a8a937589819ee4d49 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Thu, 18 Sep 2025 16:48:14 -0400 Subject: [PATCH 1/4] Use webpack-environment-plugin to read env variables --- public/index.html | 6 ++-- src/constants/application-config.js | 14 ++++---- .../heritage-integration/navigation-helper.js | 6 ++-- src/router/constants/externalUrl-values.js | 6 ++-- vue.config.js | 32 +++++++++---------- vue.release.config.js | 30 +++++++++-------- 6 files changed, 49 insertions(+), 45 deletions(-) diff --git a/public/index.html b/public/index.html index 15cf004a2..45f83a20f 100644 --- a/public/index.html +++ b/public/index.html @@ -4,7 +4,7 @@ - + @@ -16,7 +16,7 @@ @@ -27,6 +27,6 @@
- <%= process.env.VUE_APP_SOLARWINDS_MONITORING_SCRIPT %> + <%= process.env.__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__ %> diff --git a/src/constants/application-config.js b/src/constants/application-config.js index 788de3fd7..93a6f70d8 100644 --- a/src/constants/application-config.js +++ b/src/constants/application-config.js @@ -1,12 +1,12 @@ const applicationConfig = { - CONSUMER_CF_DISTRO: process.env.VUE_APP_CONSUMER_CF_DISTRO, - GOOGLE_PLACES_API_KEY: process.env.VUE_APP_GOOGLE_PLACES_API_KEY, + CONSUMER_CF_DISTRO: process.env.__VUE_APP_CONSUMER_CF_DISTRO__, + GOOGLE_PLACES_API_KEY: process.env.__VUE_APP_GOOGLE_PLACES_API_KEY__, ANALYTICS_SESSION_TIMEOUT_MINUTES: 30, SAVED_SESSION_TIMEOUT_DAYS: 45, COOKIE_PATH: "/", - CURRENT_ENVIRONMENT: process.env.VUE_APP_CURRENT_ENVIRONMENT, // "Localhost", "Dev", "QA", and "Prod" - HERITAGE_FUNNEL: process.env.VUE_APP_HERITAGE_FUNNEL, - SAFELITE_HOP: process.env.VUE_APP_SAFELITE_HOP, + CURRENT_ENVIRONMENT: process.env.__VUE_APP_CURRENT_ENVIRONMENT__, // "Localhost", "Dev", "QA", and "Prod" + HERITAGE_FUNNEL: process.env.__VUE_APP_HERITAGE_FUNNEL__, + SAFELITE_HOP: process.env.__VUE_APP_SAFELITE_HOP__, APPLICATION_NAME: "FixMyGlass", ANALYTICS_APPLICATION_NAME: "FixMyGlassNextGen", APPLICATION_ABBREVIATION: "fmg", @@ -14,7 +14,7 @@ const applicationConfig = { SITE_ENTRY_TRIGGER_VALUE: "FixMyGlass", CASH_PARENT_ACCOUNT_NUMBER: 167132, CASH_DEFAULT_BILL_TO_ACCOUNT_NUMBER: "87291", - MY_ACCOUNT: process.env.VUE_APP_MY_ACCOUNT, + MY_ACCOUNT: process.env.__VUE_APP_MY_ACCOUNT__, PIA_RESPONSE_URL: location.protocol + "//" + location.host + "/fmg/payment-pia-return?src=concept-funnel", PIA_CANCEL_URL: @@ -29,7 +29,7 @@ const applicationConfig = { FRONTEND_LOGGER_PATH: "/analytics/api/v1/logging", AFFILIATE_COOKIE_CONTAINING_NAME: "_Track", COOKIE_NAME_LENGTH_MAX_LIMIT: 44, - SESSION_TIMEOUT_MINUTES: process.env.VUE_APP_SESSION_TIMEOUT_MINUTES, + SESSION_TIMEOUT_MINUTES: process.env.__VUE_APP_SESSION_TIMEOUT_MINUTES__, RETURN_USER_PAGE: "/fmg/return-user", }; diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js index f7c8ce8cc..539d36648 100644 --- a/src/helpers/heritage-integration/navigation-helper.js +++ b/src/helpers/heritage-integration/navigation-helper.js @@ -43,11 +43,11 @@ export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLo if ( (applicationConfig.HERITAGE_FUNNEL.includes("fixmyglasstest") && - process.env.VUE_APP_CURRENT_ENVIRONMENT === "Localhost") || + applicationConfig.CURRENT_ENVIRONMENT === "Localhost") || (applicationConfig.HERITAGE_FUNNEL.includes("fixmyglassdev") && - process.env.VUE_APP_CURRENT_ENVIRONMENT === "Localhost") || + applicationConfig.CURRENT_ENVIRONMENT === "Localhost") || (applicationConfig.HERITAGE_FUNNEL.includes("localhost") && - process.env.VUE_APP_CURRENT_ENVIRONMENT === "Localhost") + applicationConfig.CURRENT_ENVIRONMENT === "Localhost") ) { heritageParms["forceEndToEndInsurance"] = true; } diff --git a/src/router/constants/externalUrl-values.js b/src/router/constants/externalUrl-values.js index 5516095c4..1da839822 100644 --- a/src/router/constants/externalUrl-values.js +++ b/src/router/constants/externalUrl-values.js @@ -1,6 +1,8 @@ +import { applicationConfig } from "@/constants/application-config"; + const externalUrls = { - HERITAGE_FUNNEL: process.env.VUE_APP_HERITAGE_FUNNEL, - SAFELITE_HOP: process.env.VUE_APP_SAFELITE_HOP, + HERITAGE_FUNNEL: applicationConfig.HERITAGE_FUNNEL, + SAFELITE_HOP: applicationConfig.SAFELITE_HOP, }; export { externalUrls }; diff --git a/vue.config.js b/vue.config.js index d8cb42355..46adfaa9b 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,20 +1,4 @@ -process.env.VUE_APP_CONSUMER_CF_DISTRO = "https://digitalapi.dev.safelite.io"; -//process.env.VUE_APP_HERITAGE_FUNNEL = "http://localhost:38000/default.aspx"; -process.env.VUE_APP_HERITAGE_FUNNEL = "https://fixmyglassdev.safelite.com/default.aspx"; -process.env.VUE_APP_GOOGLE_PLACES_API_KEY = "AIzaSyDptGCkOPgN2uWJOy4ou4M33phRD4MAoJo"; -process.env.VUE_APP_CURRENT_ENVIRONMENT = "Localhost"; -process.env.VUE_APP_MY_ACCOUNT = "https://myaccountdev.safelite.com/"; -//process.env.VUE_APP_SAFELITE_HOP = "http://localhost:60966/fmgCheckoutShared.aspx"; -process.env.VUE_APP_SAFELITE_HOP = "https://sv2-safelitehop-dev.safelite.com/fmgCheckoutShared.aspx"; -process.env.VUE_APP_SOLARWINDS_MONITORING = ""; -process.env.VUE_APP_SESSION_TIMEOUT_MINUTES = 30; - -// GA & GTM -process.env.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');"; - -process.env.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"; +const webpack = require('webpack'); module.exports = { outputDir: "dist/fmg", @@ -36,5 +20,19 @@ 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__']: "", + }), + ], }, }; diff --git a/vue.release.config.js b/vue.release.config.js index 350a78ce3..445cfda48 100644 --- a/vue.release.config.js +++ b/vue.release.config.js @@ -1,16 +1,4 @@ -process.env.VUE_APP_CONSUMER_CF_DISTRO = "__VUE_APP_CONSUMER_CF_DISTRO__"; -process.env.VUE_APP_GOOGLE_PLACES_API_KEY = "__VUE_APP_GOOGLE_PLACES_API_KEY__"; -process.env.VUE_APP_HERITAGE_FUNNEL = "__VUE_APP_HERITAGE_FUNNEL__"; -process.env.VUE_APP_CURRENT_ENVIRONMENT = "__VUE_APP_CURRENT_ENVIRONMENT__"; -process.env.VUE_APP_MY_ACCOUNT = "__VUE_APP_MY_ACCOUNT__"; -process.env.VUE_APP_SAFELITE_HOP = "__VUE_APP_SAFELITE_HOP__"; -process.env.VUE_APP_SOLARWINDS_MONITORING_SCRIPT = "__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__"; -process.env.VUE_APP_SESSION_TIMEOUT_MINUTES = 30; - -// GA & GTM -process.env.VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY = "__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__"; -process.env.VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC = - "__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__"; +const webpack = require('webpack'); module.exports = { outputDir: "dist/fmg", @@ -30,4 +18,20 @@ 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__', + ]), + ], + }, }; From ccbe9dc0d9788ba641231dd5d428143920010cd4 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Thu, 18 Sep 2025 17:13:47 -0400 Subject: [PATCH 2/4] Remove SED steps as no longer necessary. --- azure-pipelines.yml | 48 --------------------------------------------- 1 file changed, 48 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c94a22456..1e1a023b0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -110,18 +110,6 @@ stages: clearFolder: true deployFolder: "" region: us-east-2 - appDeployVariables: - __VUE_APP_CONSUMER_CF_DISTRO__: $(__VUE_APP_CONSUMER_CF_DISTRO__) - __VUE_APP_GOOGLE_PLACES_API_KEY__: $(__VUE_APP_GOOGLE_PLACES_API_KEY__) - __VUE_APP_HERITAGE_FUNNEL__: $(__VUE_APP_HERITAGE_FUNNEL__) - __VUE_APP_SAFELITE_HOP__: $(__VUE_APP_SAFELITE_HOP__) - __VUE_APP_CURRENT_ENVIRONMENT__: $(__VUE_APP_CURRENT_ENVIRONMENT__) - __VUE_APP_MY_ACCOUNT__: $(__VUE_APP_MY_ACCOUNT__) - __VUE_APP_SESSION_TIMEOUT_MINUTES__: $(__VUE_APP_SESSION_TIMEOUT_MINUTES__) - indexDeployVariables: - __VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__: $(__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__) - __VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__: $(__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__) - __VUE_APP_SOLARWINDS_MONITORING_SCRIPT__: $(__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__) - template: templates/digital/invalidate-cloudfront-cache.yml@AzureDevOps parameters: awsCliContainer: awscli @@ -171,18 +159,6 @@ stages: clearFolder: true deployFolder: "" region: us-east-2 - appDeployVariables: - __VUE_APP_CONSUMER_CF_DISTRO__: $(__VUE_APP_CONSUMER_CF_DISTRO__) - __VUE_APP_GOOGLE_PLACES_API_KEY__: $(__VUE_APP_GOOGLE_PLACES_API_KEY__) - __VUE_APP_HERITAGE_FUNNEL__: $(__VUE_APP_HERITAGE_FUNNEL__) - __VUE_APP_SAFELITE_HOP__: $(__VUE_APP_SAFELITE_HOP__) - __VUE_APP_CURRENT_ENVIRONMENT__: $(__VUE_APP_CURRENT_ENVIRONMENT__) - __VUE_APP_MY_ACCOUNT__: $(__VUE_APP_MY_ACCOUNT__) - __VUE_APP_SESSION_TIMEOUT_MINUTES__: $(__VUE_APP_SESSION_TIMEOUT_MINUTES__) - indexDeployVariables: - __VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__: $(__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__) - __VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__: $(__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__) - __VUE_APP_SOLARWINDS_MONITORING_SCRIPT__: $(__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__) - template: templates/digital/invalidate-cloudfront-cache.yml@AzureDevOps parameters: awsCliContainer: awscli @@ -232,18 +208,6 @@ stages: clearFolder: true deployFolder: "" region: us-east-2 - appDeployVariables: - __VUE_APP_CONSUMER_CF_DISTRO__: $(__VUE_APP_CONSUMER_CF_DISTRO__) - __VUE_APP_GOOGLE_PLACES_API_KEY__: $(__VUE_APP_GOOGLE_PLACES_API_KEY__) - __VUE_APP_HERITAGE_FUNNEL__: $(__VUE_APP_HERITAGE_FUNNEL__) - __VUE_APP_SAFELITE_HOP__: $(__VUE_APP_SAFELITE_HOP__) - __VUE_APP_CURRENT_ENVIRONMENT__: $(__VUE_APP_CURRENT_ENVIRONMENT__) - __VUE_APP_MY_ACCOUNT__: $(__VUE_APP_MY_ACCOUNT__) - __VUE_APP_SESSION_TIMEOUT_MINUTES__: $(__VUE_APP_SESSION_TIMEOUT_MINUTES__) - indexDeployVariables: - __VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__: $(__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__) - __VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__: $(__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__) - __VUE_APP_SOLARWINDS_MONITORING_SCRIPT__: $(__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__) - template: templates/digital/invalidate-cloudfront-cache.yml@AzureDevOps parameters: awsCliContainer: awscli @@ -293,18 +257,6 @@ stages: clearFolder: true deployFolder: "" region: us-east-2 - appDeployVariables: - __VUE_APP_CONSUMER_CF_DISTRO__: $(__VUE_APP_CONSUMER_CF_DISTRO__) - __VUE_APP_GOOGLE_PLACES_API_KEY__: $(__VUE_APP_GOOGLE_PLACES_API_KEY__) - __VUE_APP_HERITAGE_FUNNEL__: $(__VUE_APP_HERITAGE_FUNNEL__) - __VUE_APP_SAFELITE_HOP__: $(__VUE_APP_SAFELITE_HOP__) - __VUE_APP_CURRENT_ENVIRONMENT__: $(__VUE_APP_CURRENT_ENVIRONMENT__) - __VUE_APP_MY_ACCOUNT__: $(__VUE_APP_MY_ACCOUNT__) - __VUE_APP_SESSION_TIMEOUT_MINUTES__: $(__VUE_APP_SESSION_TIMEOUT_MINUTES__) - indexDeployVariables: - __VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__: $(__VUE_APP_GOOGLE_TAG_MANAGER_SCRIPT_BODY__) - __VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__: $(__VUE_APP_GOOGLE_TAG_MANAGER_NOSCRIPT_FRAME_SRC__) - __VUE_APP_SOLARWINDS_MONITORING_SCRIPT__: $(__VUE_APP_SOLARWINDS_MONITORING_SCRIPT__) - template: templates/digital/invalidate-cloudfront-cache.yml@AzureDevOps parameters: awsCliContainer: awscli From e0d03990804469635e7063fb3a4d430bb26c1f01 Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Fri, 19 Sep 2025 09:57:38 -0400 Subject: [PATCH 3/4] Add default defs for Jest --- jest.config.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/jest.config.js b/jest.config.js index b192b8784..e965e2f12 100644 --- a/jest.config.js +++ b/jest.config.js @@ -49,3 +49,16 @@ module.exports = { // Uncomment this to avoid the massive amount of warnings we are getting for onSubmit and onInvalidSubmit //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 From 9dd9e9cfc8dc43d28fcb62059140187fea38ebcf Mon Sep 17 00:00:00 2001 From: Chloe Herd Date: Fri, 19 Sep 2025 10:26:19 -0400 Subject: [PATCH 4/4] 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), ], }, };