@@ -45,7 +45,6 @@ const RULESET_NAME_PATTERN = /[0-9a-zA-Z-]+/;
45
45
46
46
describe ( 'admin.securityRules' , ( ) => {
47
47
48
- let testRuleset : admin . securityRules . Ruleset = null ;
49
48
const rulesetsToDelete : string [ ] = [ ] ;
50
49
51
50
function scheduleForDelete ( ruleset : admin . securityRules . Ruleset ) {
@@ -65,7 +64,7 @@ describe('admin.securityRules', () => {
65
64
return Promise . all ( promises ) ;
66
65
}
67
66
68
- after ( ( ) => {
67
+ afterEach ( ( ) => {
69
68
return deleteTempRulesets ( ) ;
70
69
} ) ;
71
70
@@ -91,7 +90,6 @@ describe('admin.securityRules', () => {
91
90
RULES_FILE_NAME , SAMPLE_FIRESTORE_RULES ) ;
92
91
return admin . securityRules ( ) . createRuleset ( rulesFile )
93
92
. then ( ( ruleset ) => {
94
- testRuleset = ruleset ;
95
93
scheduleForDelete ( ruleset ) ;
96
94
verifyFirestoreRuleset ( ruleset ) ;
97
95
} ) ;
@@ -105,23 +103,40 @@ describe('admin.securityRules', () => {
105
103
} ) ;
106
104
} ) ;
107
105
106
+ function getRandomInt ( max : number ) {
107
+ return Math . floor ( Math . random ( ) * Math . floor ( max ) ) ;
108
+ }
109
+
110
+ function createTemporaryRuleset ( ) : Promise < admin . securityRules . Ruleset > {
111
+ const name = "random_name_" + getRandomInt ( 100000 ) + ".rules" ;
112
+ const rulesFile = admin . securityRules ( ) . createRulesFileFromSource ( name , SAMPLE_FIRESTORE_RULES ) ;
113
+ return admin . securityRules ( ) . createRuleset ( rulesFile )
114
+ . then ( ( ruleset ) => {
115
+ scheduleForDelete ( ruleset ) ;
116
+ return ruleset ;
117
+ } ) ;
118
+ }
119
+
108
120
describe ( 'getRuleset()' , ( ) => {
109
121
it ( 'rejects with not-found when the Ruleset does not exist' , ( ) => {
110
- const name = 'e1212' + testRuleset . name . substring ( 5 ) ;
111
- return admin . securityRules ( ) . getRuleset ( name )
122
+ const uuid = '00000000-1111-2222-3333-444444444444' ;
123
+ return admin . securityRules ( ) . getRuleset ( uuid )
112
124
. should . eventually . be . rejected . and . have . property ( 'code' , 'security-rules/not-found' ) ;
113
125
} ) ;
114
126
115
127
it ( 'rejects with invalid-argument when the Ruleset name is invalid' , ( ) => {
116
- return admin . securityRules ( ) . getRuleset ( 'invalid' )
128
+ return admin . securityRules ( ) . getRuleset ( 'invalid uuid ' )
117
129
. should . eventually . be . rejected . and . have . property ( 'code' , 'security-rules/invalid-argument' ) ;
118
130
} ) ;
119
131
120
132
it ( 'resolves with existing Ruleset' , ( ) => {
121
- return admin . securityRules ( ) . getRuleset ( testRuleset . name )
122
- . then ( ( ruleset ) => {
123
- verifyFirestoreRuleset ( ruleset ) ;
124
- } ) ;
133
+ return createTemporaryRuleset ( )
134
+ . then ( ( expectedRuleset ) =>
135
+ admin . securityRules ( ) . getRuleset ( expectedRuleset . name )
136
+ . then ( ( actualRuleset ) => {
137
+ expect ( actualRuleset ) . to . deep . equal ( expectedRuleset ) ;
138
+ } )
139
+ ) ;
125
140
} ) ;
126
141
} ) ;
127
142
@@ -137,7 +152,7 @@ describe('admin.securityRules', () => {
137
152
return admin . securityRules ( ) . releaseFirestoreRuleset ( oldRuleset ) ;
138
153
}
139
154
140
- after ( ( ) => {
155
+ afterEach ( ( ) => {
141
156
return revertFirestoreRuleset ( ) ;
142
157
} ) ;
143
158
@@ -185,7 +200,7 @@ describe('admin.securityRules', () => {
185
200
return admin . securityRules ( ) . releaseStorageRuleset ( oldRuleset ) ;
186
201
}
187
202
188
- after ( ( ) => {
203
+ afterEach ( ( ) => {
189
204
return revertStorageRuleset ( ) ;
190
205
} ) ;
191
206
@@ -240,9 +255,13 @@ describe('admin.securityRules', () => {
240
255
} ) ;
241
256
}
242
257
243
- return listAllRulesets ( )
244
- . then ( ( rulesets ) => {
245
- expect ( rulesets . some ( ( rs ) => rs . name === testRuleset . name ) ) . to . be . true ;
258
+ return Promise . all ( [ createTemporaryRuleset ( ) , createTemporaryRuleset ( ) ] )
259
+ . then ( ( expectedRulesets ) => {
260
+ return listAllRulesets ( ) . then ( ( actualRulesets ) => {
261
+ expectedRulesets . forEach ( ( expectedRuleset ) => {
262
+ expect ( actualRulesets . map ( r => r . name ) ) . to . deep . include ( expectedRuleset . name ) ;
263
+ } ) ;
264
+ } ) ;
246
265
} ) ;
247
266
} ) ;
248
267
@@ -257,26 +276,27 @@ describe('admin.securityRules', () => {
257
276
258
277
describe ( 'deleteRuleset()' , ( ) => {
259
278
it ( 'rejects with not-found when the Ruleset does not exist' , ( ) => {
260
- const name = 'e1212' + testRuleset . name . substring ( 5 ) ;
261
- return admin . securityRules ( ) . deleteRuleset ( name )
279
+ const uuid = '00000000-1111-2222-3333-444444444444'
280
+ return admin . securityRules ( ) . deleteRuleset ( uuid )
262
281
. should . eventually . be . rejected . and . have . property ( 'code' , 'security-rules/not-found' ) ;
263
282
} ) ;
264
283
265
284
it ( 'rejects with invalid-argument when the Ruleset name is invalid' , ( ) => {
266
- return admin . securityRules ( ) . deleteRuleset ( 'invalid' )
285
+ return admin . securityRules ( ) . deleteRuleset ( 'invalid uuid ' )
267
286
. should . eventually . be . rejected . and . have . property ( 'code' , 'security-rules/invalid-argument' ) ;
268
287
} ) ;
269
288
270
289
it ( 'deletes existing Ruleset' , ( ) => {
271
- return admin . securityRules ( ) . deleteRuleset ( testRuleset . name )
272
- . then ( ( ) => {
273
- return admin . securityRules ( ) . getRuleset ( testRuleset . name )
274
- . should . eventually . be . rejected . and . have . property ( 'code' , 'security-rules/not-found' ) ;
275
- } )
276
- . then ( ( ) => {
277
- unscheduleForDelete ( testRuleset ) ; // Already deleted.
278
- testRuleset = null ;
279
- } ) ;
290
+ return createTemporaryRuleset ( ) . then ( ( ruleset ) => {
291
+ return admin . securityRules ( ) . deleteRuleset ( ruleset . name )
292
+ . then ( ( ) => {
293
+ return admin . securityRules ( ) . getRuleset ( ruleset . name )
294
+ . should . eventually . be . rejected . and . have . property ( 'code' , 'security-rules/not-found' ) ;
295
+ } )
296
+ . then ( ( ) => {
297
+ unscheduleForDelete ( ruleset ) ; // Already deleted.
298
+ } ) ;
299
+ } ) ;
280
300
} ) ;
281
301
} ) ;
282
302
0 commit comments