@@ -17,11 +17,11 @@ const path = require('path');
1717
1818const {
1919 DEFAULT_BASE_PATH ,
20- DEFAULT_TEST_ENV_FILE_PATH ,
20+ DEFAULT_TEST_ENV_FILE_NAME ,
2121 DEFAULT_SERVICE_ACCOUNT_PATH
2222} = constants ;
2323
24- const testEnvFileFullPath = path . join ( DEFAULT_BASE_PATH , DEFAULT_TEST_ENV_FILE_PATH ) ;
24+ const testEnvFileFullPath = path . join ( DEFAULT_BASE_PATH , DEFAULT_TEST_ENV_FILE_NAME ) ;
2525const serviceAccountPath = path . join ( DEFAULT_BASE_PATH , DEFAULT_SERVICE_ACCOUNT_PATH ) ;
2626
2727/**
@@ -43,8 +43,11 @@ function createTestEnvFile() {
4343 } /config.json contains either ${ envPrefix } TEST_UID or TEST_UID.`
4444 ) ) ;
4545 }
46+
4647 const FIREBASE_PROJECT_ID = envVarBasedOnCIEnv ( 'FIREBASE_PROJECT_ID' ) ;
4748
49+ console . log ( `Generating custom auth token for project: ${ chalk . magenta ( FIREBASE_PROJECT_ID ) } ` ) ; // eslint-disable-line no-console
50+
4851 // Get service account from local file falling back to environment variables
4952 const serviceAccount = getServiceAccount ( ) ;
5053
@@ -66,9 +69,14 @@ function createTestEnvFile() {
6669
6770 // Handle service account not matching settings in config.json (local)
6871 if ( serviceAccount . project_id !== FIREBASE_PROJECT_ID && serviceAccount . project_id !== projectId ) {
69- console . log ( `Warning: project_id "${ serviceAccount . project_id } " does not match env var: "${ envVarBasedOnCIEnv ( 'FIREBASE_PROJECT_ID' ) } "` ) ;
72+ /* eslint-disable no-console */
73+ console . log (
74+ chalk . yellow ( `Warning: project_id "${ serviceAccount . project_id } " does not match env var: "${ envVarBasedOnCIEnv ( 'FIREBASE_PROJECT_ID' ) } "` )
75+ ) ;
76+ /* eslint-enable no-console */
7077 }
71- const admin = require ( 'firebase-admin' ) ;
78+
79+ const admin = require ( 'firebase-admin' ) ; // eslint-disable-line global-require
7280
7381 // Initialize Firebase app with service account
7482 const appFromSA = admin . initializeApp (
@@ -84,23 +92,33 @@ function createTestEnvFile() {
8492 . auth ( )
8593 . createCustomToken ( uid , { isTesting : true } )
8694 . then ( ( customToken ) => {
95+ /* eslint-disable no-console */
8796 console . log (
88- ' Custom token generated successfully, writing cypress.env.json...'
97+ ` Custom token generated successfully, writing to ${ chalk . magenta ( constants . DEFAULT_TEST_ENV_FILE_NAME ) } `
8998 ) ;
99+ /* eslint-enable no-console */
90100 // Remove firebase app
91101 appFromSA . delete ( ) ;
92102
93103 // Create config object to be written into test env file
94104 const newCypressConfig = {
95105 TEST_UID : envVarBasedOnCIEnv ( 'TEST_UID' ) ,
106+ FIREBASE_API_KEY : envVarBasedOnCIEnv ( 'FIREBASE_API_KEY' ) ,
96107 FIREBASE_PROJECT_ID ,
97108 FIREBASE_AUTH_JWT : customToken
98109 } ;
110+ const stageProjectId = envVarBasedOnCIEnv ( 'STAGE_FIREBASE_PROJECT_ID' ) ;
111+ const stageApiKey = envVarBasedOnCIEnv ( 'STAGE_FIREBASE_API_KEY' ) ;
112+
113+ if ( stageProjectId ) {
114+ newCypressConfig . STAGE_FIREBASE_PROJECT_ID = stageProjectId ;
115+ newCypressConfig . STAGE_FIREBASE_API_KEY = stageApiKey ;
116+ }
99117
100118 // Write config file to cypress.env.json
101119 fs . writeFileSync ( testEnvFileFullPath , JSON . stringify ( newCypressConfig , null , 2 ) ) ;
102120
103- console . log ( chalk . blue ( ` ${ DEFAULT_TEST_ENV_FILE_PATH } created successfully`) ) ;
121+ console . log ( `Success! ${ chalk . magenta ( constants . DEFAULT_TEST_ENV_FILE_NAME ) } created successfully`) ; // eslint-disable-line no-console
104122
105123 // Create service account file if it does not already exist (for use in reporter)
106124 if ( ! fs . existsSync ( serviceAccountPath ) ) {
@@ -110,7 +128,7 @@ function createTestEnvFile() {
110128 JSON . stringify ( serviceAccount , null , 2 )
111129 ) ;
112130
113- console . log ( 'Service account created successfully' ) ;
131+ console . log ( 'Service account created successfully' ) ; // eslint-disable-line no-console
114132 }
115133 return customToken ;
116134 } )
0 commit comments