@@ -244,16 +244,19 @@ t.not(new Edge({
244244} ) . satisfiedBy ( b ) , 'b does not satisfy edge for c' )
245245reset ( a )
246246
247+ const overrideSet = new OverrideSet ( {
248+ overrides : {
249+ c : '2.x' ,
250+ } ,
251+ } )
252+
253+ a . overrides = overrideSet
247254t . matchSnapshot ( new Edge ( {
248255 from : a ,
249256 type : 'prod' ,
250257 name : 'c' ,
251258 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' } ) ,
257260} ) . toJSON ( ) , 'printableEdge shows overrides' )
258261reset ( a )
259262
@@ -262,11 +265,7 @@ const overriddenExplanation = new Edge({
262265 type : 'prod' ,
263266 name : 'c' ,
264267 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' } ) ,
270269} ) . explain ( )
271270t . equal ( overriddenExplanation . rawSpec , '1.x' , 'rawSpec has original spec' )
272271t . equal ( overriddenExplanation . spec , '2.x' , 'spec has override spec' )
@@ -278,38 +277,49 @@ t.ok(new Edge({
278277 type : 'prod' ,
279278 name : 'c' ,
280279 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' } ) ,
286281} ) . satisfiedBy ( c ) , 'c@2 satisfies spec:1.x, override:2.x' )
287282reset ( a )
288283
284+ const overrideSetB = new OverrideSet ( {
285+ overrides : {
286+ b : '1.x' ,
287+ } ,
288+ } )
289+ a . overrides = overrideSetB
289290t . matchSnapshot ( new Edge ( {
290291 from : a ,
291292 type : 'prod' ,
292293 name : 'c' ,
293294 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' } ) ,
299296} ) . toJSON ( ) , 'printableEdge does not show non-applicable override' )
300297
301298t . ok ( new Edge ( {
302299 from : a ,
303300 type : 'prod' ,
304301 name : 'c' ,
305302 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' } ) ,
311304} ) . satisfiedBy ( c ) , 'c@2 satisfies spec:1.x, no matching override' )
312305reset ( 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 )
313323
314324const referenceTop = {
315325 name : 'referenceTop' ,
@@ -494,6 +504,7 @@ const overrides = new OverrideSet({
494504 c : '1.x' ,
495505 } ,
496506} )
507+ a . overrides = overrides
497508const overriddenEdge = new Edge ( {
498509 from : a ,
499510 type : 'prod' ,
@@ -504,6 +515,7 @@ const overriddenEdge = new Edge({
504515t . equal ( overriddenEdge . spec , '1.x' , 'override spec takes priority' )
505516t . equal ( overriddenEdge . rawSpec , '2.x' , 'rawSpec holds original spec' )
506517reset ( a )
518+ delete a . overrides
507519
508520const old = new Edge ( {
509521 from : a ,
0 commit comments