@@ -244,16 +244,19 @@ t.not(new Edge({
244
244
} ) . satisfiedBy ( b ) , 'b does not satisfy edge for c' )
245
245
reset ( a )
246
246
247
+ const overrideSet = new OverrideSet ( {
248
+ overrides : {
249
+ c : '2.x' ,
250
+ } ,
251
+ } )
252
+
253
+ a . overrides = overrideSet
247
254
t . matchSnapshot ( new Edge ( {
248
255
from : a ,
249
256
type : 'prod' ,
250
257
name : 'c' ,
251
258
spec : '1.x' ,
252
- overrides : new OverrideSet ( {
253
- overrides : {
254
- c : '2.x' ,
255
- } ,
256
- } ) . getEdgeRule ( { name : 'c' , spec : '1.x' } ) ,
259
+ overrides : overrideSet . getEdgeRule ( { name : 'c' , spec : '1.x' } ) ,
257
260
} ) . toJSON ( ) , 'printableEdge shows overrides' )
258
261
reset ( a )
259
262
@@ -262,11 +265,7 @@ const overriddenExplanation = new Edge({
262
265
type : 'prod' ,
263
266
name : 'c' ,
264
267
spec : '1.x' ,
265
- overrides : new OverrideSet ( {
266
- overrides : {
267
- c : '2.x' ,
268
- } ,
269
- } ) . getEdgeRule ( { name : 'c' , spec : '1.x' } ) ,
268
+ overrides : overrideSet . getEdgeRule ( { name : 'c' , spec : '1.x' } ) ,
270
269
} ) . explain ( )
271
270
t . equal ( overriddenExplanation . rawSpec , '1.x' , 'rawSpec has original spec' )
272
271
t . equal ( overriddenExplanation . spec , '2.x' , 'spec has override spec' )
@@ -278,38 +277,49 @@ t.ok(new Edge({
278
277
type : 'prod' ,
279
278
name : 'c' ,
280
279
spec : '1.x' ,
281
- overrides : new OverrideSet ( {
282
- overrides : {
283
- c : '2.x' ,
284
- } ,
285
- } ) . getEdgeRule ( { name : 'c' , spec : '1.x' } ) ,
280
+ overrides : overrideSet . getEdgeRule ( { name : 'c' , spec : '1.x' } ) ,
286
281
} ) . satisfiedBy ( c ) , 'c@2 satisfies spec:1.x, override:2.x' )
287
282
reset ( a )
288
283
284
+ const overrideSetB = new OverrideSet ( {
285
+ overrides : {
286
+ b : '1.x' ,
287
+ } ,
288
+ } )
289
+ a . overrides = overrideSetB
289
290
t . matchSnapshot ( new Edge ( {
290
291
from : a ,
291
292
type : 'prod' ,
292
293
name : 'c' ,
293
294
spec : '2.x' ,
294
- overrides : new OverrideSet ( {
295
- overrides : {
296
- b : '1.x' ,
297
- } ,
298
- } ) . getEdgeRule ( { name : 'c' , spec : '2.x' } ) ,
295
+ overrides : overrideSetB . getEdgeRule ( { name : 'c' , spec : '2.x' } ) ,
299
296
} ) . toJSON ( ) , 'printableEdge does not show non-applicable override' )
300
297
301
298
t . ok ( new Edge ( {
302
299
from : a ,
303
300
type : 'prod' ,
304
301
name : 'c' ,
305
302
spec : '2.x' ,
306
- overrides : new OverrideSet ( {
307
- overrides : {
308
- b : '1.x' ,
309
- } ,
310
- } ) . getEdgeRule ( { name : 'c' , spec : '2.x' } ) ,
303
+ overrides : overrideSetB . getEdgeRule ( { name : 'c' , spec : '2.x' } ) ,
311
304
} ) . satisfiedBy ( c ) , 'c@2 satisfies spec:1.x, no matching override' )
312
305
reset ( a )
306
+ delete a . overrides
307
+
308
+ const overrideEdge = new Edge ( {
309
+ from : a ,
310
+ type : 'prod' ,
311
+ name : 'c' ,
312
+ spec : '2.x' ,
313
+ } )
314
+ t . notOk ( overrideEdge . overrides , 'edge has no overrides' )
315
+ a . overrides = new OverrideSet ( { overrides : { b : '1.x' } } )
316
+ t . notOk ( overrideEdge . overrides , 'edge has no overrides' )
317
+ overrideEdge . reload ( )
318
+ t . ok ( overrideEdge . overrides , 'edge has overrides after reload' )
319
+ delete a . overrides
320
+ overrideEdge . reload ( )
321
+ t . notOk ( overrideEdge . overrides , 'edge has no overrides after reload' )
322
+ reset ( a )
313
323
314
324
const referenceTop = {
315
325
name : 'referenceTop' ,
@@ -494,6 +504,7 @@ const overrides = new OverrideSet({
494
504
c : '1.x' ,
495
505
} ,
496
506
} )
507
+ a . overrides = overrides
497
508
const overriddenEdge = new Edge ( {
498
509
from : a ,
499
510
type : 'prod' ,
@@ -504,6 +515,7 @@ const overriddenEdge = new Edge({
504
515
t . equal ( overriddenEdge . spec , '1.x' , 'override spec takes priority' )
505
516
t . equal ( overriddenEdge . rawSpec , '2.x' , 'rawSpec holds original spec' )
506
517
reset ( a )
518
+ delete a . overrides
507
519
508
520
const old = new Edge ( {
509
521
from : a ,
0 commit comments