@@ -55,6 +55,32 @@ describe("Params value extraction", () => {
55
55
expect ( falseParam . value ( ) ) . to . be . false ;
56
56
} ) ;
57
57
58
+ it ( "extracts the special case internal params from env.FIREBASE_CONFIG" , ( ) => {
59
+ process . env . FIREBASE_CONFIG = JSON . stringify ( {
60
+ projectId : "foo" ,
61
+ storageBucket : "foo.appspot.com" ,
62
+ databaseURL : "https://foo.firebaseio.com" ,
63
+ } ) ;
64
+ expect ( params . databaseURL . value ( ) ) . to . equal ( "https://foo.firebaseio.com" ) ;
65
+ expect ( params . gcloudProject . value ( ) ) . to . equal ( "foo" ) ;
66
+ expect ( params . projectID . value ( ) ) . to . equal ( "foo" ) ;
67
+ expect ( params . storageBucket . value ( ) ) . to . equal ( "foo.appspot.com" ) ;
68
+
69
+ process . env . FIREBASE_CONFIG = JSON . stringify ( { projectId : "foo" } ) ;
70
+ expect ( params . databaseURL . value ( ) ) . to . equal ( "" ) ;
71
+ expect ( params . gcloudProject . value ( ) ) . to . equal ( "foo" ) ;
72
+ expect ( params . projectID . value ( ) ) . to . equal ( "foo" ) ;
73
+ expect ( params . storageBucket . value ( ) ) . to . equal ( "" ) ;
74
+
75
+ process . env . FIREBASE_CONFIG = JSON . stringify ( { } ) ;
76
+ expect ( params . databaseURL . value ( ) ) . to . equal ( "" ) ;
77
+ expect ( params . gcloudProject . value ( ) ) . to . equal ( "" ) ;
78
+ expect ( params . projectID . value ( ) ) . to . equal ( "" ) ;
79
+ expect ( params . storageBucket . value ( ) ) . to . equal ( "" ) ;
80
+
81
+ delete process . env . FIREBASE_CONFIG ;
82
+ } ) ;
83
+
58
84
it ( "falls back on the javascript zero values in case of type mismatch" , ( ) => {
59
85
const stringToInt = params . defineInt ( "A_STRING" ) ;
60
86
expect ( stringToInt . value ( ) ) . to . equal ( 0 ) ;
@@ -89,7 +115,6 @@ describe("Params value extraction", () => {
89
115
expect ( int . equals ( - 11 ) . value ( ) ) . to . be . true ;
90
116
expect ( int . equals ( diffInt ) . value ( ) ) . to . be . false ;
91
117
expect ( int . equals ( 22 ) . value ( ) ) . to . be . false ;
92
-
93
118
expect ( int . notEquals ( diffInt ) . value ( ) ) . to . be . true ;
94
119
expect ( int . notEquals ( 22 ) . value ( ) ) . to . be . true ;
95
120
expect ( int . greaterThan ( diffInt ) . value ( ) ) . to . be . false ;
@@ -155,6 +180,35 @@ describe("Params value extraction", () => {
155
180
} ) ;
156
181
157
182
describe ( "Params as CEL" , ( ) => {
183
+ it ( "internal expressions behave like strings" , ( ) => {
184
+ const str = params . defineString ( "A_STRING" ) ;
185
+
186
+ expect ( params . projectID . toCEL ( ) ) . to . equal ( `{{ params.PROJECT_ID }}` ) ;
187
+ expect ( params . projectID . equals ( "foo" ) . toCEL ( ) ) . to . equal ( `{{ params.PROJECT_ID == "foo" }}` ) ;
188
+ expect ( params . projectID . equals ( str ) . toCEL ( ) ) . to . equal (
189
+ `{{ params.PROJECT_ID == params.A_STRING }}`
190
+ ) ;
191
+ expect ( params . gcloudProject . toCEL ( ) ) . to . equal ( `{{ params.GCLOUD_PROJECT }}` ) ;
192
+ expect ( params . gcloudProject . equals ( "foo" ) . toCEL ( ) ) . to . equal (
193
+ `{{ params.GCLOUD_PROJECT == "foo" }}`
194
+ ) ;
195
+ expect ( params . gcloudProject . equals ( str ) . toCEL ( ) ) . to . equal (
196
+ `{{ params.GCLOUD_PROJECT == params.A_STRING }}`
197
+ ) ;
198
+ expect ( params . databaseURL . toCEL ( ) ) . to . equal ( `{{ params.DATABASE_URL }}` ) ;
199
+ expect ( params . databaseURL . equals ( "foo" ) . toCEL ( ) ) . to . equal ( `{{ params.DATABASE_URL == "foo" }}` ) ;
200
+ expect ( params . databaseURL . equals ( str ) . toCEL ( ) ) . to . equal (
201
+ `{{ params.DATABASE_URL == params.A_STRING }}`
202
+ ) ;
203
+ expect ( params . storageBucket . toCEL ( ) ) . to . equal ( `{{ params.STORAGE_BUCKET }}` ) ;
204
+ expect ( params . storageBucket . equals ( "foo" ) . toCEL ( ) ) . to . equal (
205
+ `{{ params.STORAGE_BUCKET == "foo" }}`
206
+ ) ;
207
+ expect ( params . storageBucket . equals ( str ) . toCEL ( ) ) . to . equal (
208
+ `{{ params.STORAGE_BUCKET == params.A_STRING }}`
209
+ ) ;
210
+ } ) ;
211
+
158
212
it ( "identity expressions" , ( ) => {
159
213
expect ( params . defineString ( "FOO" ) . toCEL ( ) ) . to . equal ( "{{ params.FOO }}" ) ;
160
214
expect ( params . defineInt ( "FOO" ) . toCEL ( ) ) . to . equal ( "{{ params.FOO }}" ) ;
0 commit comments