@@ -42,17 +42,19 @@ test.beforeEach(async (t) => {
42
42
t . context . Sapui5ResolverStub . resolveVersion = t . context . Sapui5ResolverResolveVersionStub ;
43
43
44
44
t . context . Sapui5MavenSnapshotResolverInstallStub = sinon . stub ( ) ;
45
- t . context . Sapui5MavenSnapshotResolver = sinon . stub ( )
45
+ t . context . Sapui5MavenSnapshotResolverStub = sinon . stub ( )
46
46
. callsFake ( ( ) => {
47
47
return {
48
48
install : t . context . Sapui5MavenSnapshotResolverInstallStub
49
49
} ;
50
50
} ) ;
51
+ t . context . Sapui5MavenSnapshotResolverResolveVersionStub = sinon . stub ( ) ;
52
+ t . context . Sapui5MavenSnapshotResolverStub . resolveVersion = t . context . Sapui5MavenSnapshotResolverResolveVersionStub ;
51
53
52
54
t . context . ui5Framework = await esmock . p ( "../../../../lib/graph/helpers/ui5Framework.js" , {
53
55
"@ui5/logger" : ui5Logger ,
54
56
"../../../../lib/ui5Framework/Sapui5Resolver.js" : t . context . Sapui5ResolverStub ,
55
- "../../../../lib/ui5Framework/Sapui5MavenSnapshotResolver.js" : t . context . Sapui5MavenSnapshotResolver ,
57
+ "../../../../lib/ui5Framework/Sapui5MavenSnapshotResolver.js" : t . context . Sapui5MavenSnapshotResolverStub ,
56
58
} ) ;
57
59
t . context . utils = t . context . ui5Framework . _utils ;
58
60
} ) ;
@@ -321,6 +323,118 @@ test.serial("enrichProjectGraph: With versionOverride", async (t) => {
321
323
} ] , "Sapui5Resolver#constructor should be called with expected args" ) ;
322
324
} ) ;
323
325
326
+ test . serial ( "enrichProjectGraph: With versionOverride containing snapshot version" , async ( t ) => {
327
+ const {
328
+ sinon, ui5Framework, utils,
329
+ Sapui5MavenSnapshotResolverStub, Sapui5MavenSnapshotResolverResolveVersionStub,
330
+ Sapui5MavenSnapshotResolverInstallStub
331
+ } = t . context ;
332
+
333
+ const dependencyTree = {
334
+ id : "test1" ,
335
+ version : "1.0.0" ,
336
+ path : applicationAPath ,
337
+ configuration : {
338
+ specVersion : "2.0" ,
339
+ type : "application" ,
340
+ metadata : {
341
+ name : "application.a"
342
+ } ,
343
+ framework : {
344
+ name : "SAPUI5" ,
345
+ version : "1.75.0"
346
+ }
347
+ }
348
+ } ;
349
+
350
+ const referencedLibraries = [ "sap.ui.lib1" , "sap.ui.lib2" , "sap.ui.lib3" ] ;
351
+ const libraryMetadata = { fake : "metadata" } ;
352
+
353
+ sinon . stub ( utils , "getFrameworkLibrariesFromGraph" ) . resolves ( referencedLibraries ) ;
354
+
355
+ Sapui5MavenSnapshotResolverInstallStub . resolves ( { libraryMetadata} ) ;
356
+
357
+ Sapui5MavenSnapshotResolverResolveVersionStub . resolves ( "1.99.9-SNAPSHOT" ) ;
358
+
359
+ const addProjectToGraphStub = sinon . stub ( ) ;
360
+ sinon . stub ( utils , "ProjectProcessor" )
361
+ . callsFake ( ( ) => {
362
+ return {
363
+ addProjectToGraph : addProjectToGraphStub
364
+ } ;
365
+ } ) ;
366
+
367
+ const provider = new DependencyTreeProvider ( { dependencyTree} ) ;
368
+ const projectGraph = await projectGraphBuilder ( provider ) ;
369
+
370
+ await ui5Framework . enrichProjectGraph ( projectGraph , { versionOverride : "1.99-SNAPSHOT" } ) ;
371
+
372
+ t . is ( Sapui5MavenSnapshotResolverStub . callCount , 1 ,
373
+ "Sapui5MavenSnapshotResolverStub#constructor should be called once" ) ;
374
+ t . deepEqual ( Sapui5MavenSnapshotResolverStub . getCall ( 0 ) . args , [ {
375
+ cacheMode : undefined ,
376
+ cwd : dependencyTree . path ,
377
+ version : "1.99.9-SNAPSHOT" ,
378
+ providedLibraryMetadata : undefined
379
+ } ] , "Sapui5Resolver#constructor should be called with expected args" ) ;
380
+ } ) ;
381
+
382
+ test . serial ( "enrichProjectGraph: With versionOverride containing latest-snapshot" , async ( t ) => {
383
+ const {
384
+ sinon, ui5Framework, utils,
385
+ Sapui5MavenSnapshotResolverStub, Sapui5MavenSnapshotResolverResolveVersionStub,
386
+ Sapui5MavenSnapshotResolverInstallStub
387
+ } = t . context ;
388
+
389
+ const dependencyTree = {
390
+ id : "test1" ,
391
+ version : "1.0.0" ,
392
+ path : applicationAPath ,
393
+ configuration : {
394
+ specVersion : "2.0" ,
395
+ type : "application" ,
396
+ metadata : {
397
+ name : "application.a"
398
+ } ,
399
+ framework : {
400
+ name : "SAPUI5" ,
401
+ version : "1.75.0"
402
+ }
403
+ }
404
+ } ;
405
+
406
+ const referencedLibraries = [ "sap.ui.lib1" , "sap.ui.lib2" , "sap.ui.lib3" ] ;
407
+ const libraryMetadata = { fake : "metadata" } ;
408
+
409
+ sinon . stub ( utils , "getFrameworkLibrariesFromGraph" ) . resolves ( referencedLibraries ) ;
410
+
411
+ Sapui5MavenSnapshotResolverInstallStub . resolves ( { libraryMetadata} ) ;
412
+
413
+ Sapui5MavenSnapshotResolverResolveVersionStub . resolves ( "1.99.9-SNAPSHOT" ) ;
414
+
415
+ const addProjectToGraphStub = sinon . stub ( ) ;
416
+ sinon . stub ( utils , "ProjectProcessor" )
417
+ . callsFake ( ( ) => {
418
+ return {
419
+ addProjectToGraph : addProjectToGraphStub
420
+ } ;
421
+ } ) ;
422
+
423
+ const provider = new DependencyTreeProvider ( { dependencyTree} ) ;
424
+ const projectGraph = await projectGraphBuilder ( provider ) ;
425
+
426
+ await ui5Framework . enrichProjectGraph ( projectGraph , { versionOverride : "latest-snapshot" } ) ;
427
+
428
+ t . is ( Sapui5MavenSnapshotResolverStub . callCount , 1 ,
429
+ "Sapui5MavenSnapshotResolverStub#constructor should be called once" ) ;
430
+ t . deepEqual ( Sapui5MavenSnapshotResolverStub . getCall ( 0 ) . args , [ {
431
+ cacheMode : undefined ,
432
+ cwd : dependencyTree . path ,
433
+ version : "1.99.9-SNAPSHOT" ,
434
+ providedLibraryMetadata : undefined
435
+ } ] , "Sapui5Resolver#constructor should be called with expected args" ) ;
436
+ } ) ;
437
+
324
438
test . serial ( "enrichProjectGraph shouldn't throw when no framework version and no libraries are provided" , async ( t ) => {
325
439
const { ui5Framework, log} = t . context ;
326
440
const dependencyTree = {
0 commit comments