@@ -313,42 +313,67 @@ void main() {
313
313
});
314
314
});
315
315
316
- test (
317
- 'package_config and package_graph are not rewritten if unchanged' ,
318
- () async {
319
- final server = await servePackages ();
320
- server.serve ('foo' , '1.0.0' );
321
-
322
- await d.appDir (dependencies: {'foo' : 'any' }).create ();
316
+ test ('pubspec.lock, package_config, package_graph and workspace_ref '
317
+ 'are not rewritten if unchanged' , () async {
318
+ final server = await servePackages ();
319
+ server.serve ('foo' , '1.0.0' );
320
+
321
+ await d.dir (appPath, [
322
+ d.appPubspec (
323
+ dependencies: {'foo' : 'any' },
324
+ extras: {
325
+ 'workspace' : ['foo' ],
326
+ 'environment' : {'sdk' : '^3.5.0' },
327
+ },
328
+ ),
329
+ d.dir ('foo' , [d.libPubspec ('foo' , '1.0.0' , resolutionWorkspace: true )]),
330
+ ]).create ();
323
331
324
- await pubGet ();
325
- final packageConfigFile = File (
326
- p.join (sandbox, appPath, '.dart_tool' , 'package_config.json' ),
327
- );
328
- final packageConfig = jsonDecode (packageConfigFile.readAsStringSync ());
329
- final packageConfigTimestamp = packageConfigFile.lastModifiedSync ();
330
- final packageGraphFile = File (
331
- p.join (sandbox, appPath, '.dart_tool' , 'package_graph.json' ),
332
- );
333
- final packageGraph = jsonDecode (packageGraphFile.readAsStringSync ());
334
- final packageGraphTimestamp = packageGraphFile.lastModifiedSync ();
335
- final s = p.separator;
336
- await pubGet (
337
- silent: allOf (
338
- contains (
339
- '`.dart_tool${s }package_config.json` is unchanged. Not rewriting.' ,
340
- ),
341
- contains (
342
- '`.dart_tool${s }package_graph.json` is unchanged. Not rewriting.' ,
343
- ),
332
+ await pubGet (environment: {'_PUB_TEST_SDK_VERSION' : '3.5.0' });
333
+ final packageConfigFile = File (
334
+ p.join (sandbox, appPath, '.dart_tool' , 'package_config.json' ),
335
+ );
336
+ final packageConfig = jsonDecode (packageConfigFile.readAsStringSync ());
337
+ final packageConfigTimestamp = packageConfigFile.lastModifiedSync ();
338
+ final lockFile = File (p.join (sandbox, appPath, 'pubspec.lock' ));
339
+ final lockfileTimestamp = lockFile.lastModifiedSync ();
340
+ final packageGraphFile = File (
341
+ p.join (sandbox, appPath, '.dart_tool' , 'package_graph.json' ),
342
+ );
343
+ final packageGraph = jsonDecode (packageGraphFile.readAsStringSync ());
344
+ final packageGraphTimestamp = packageGraphFile.lastModifiedSync ();
345
+ final workspaceRefFile = File (
346
+ p.join (
347
+ sandbox,
348
+ appPath,
349
+ 'foo' ,
350
+ '.dart_tool' ,
351
+ 'pub' ,
352
+ 'workspace_ref.json' ,
353
+ ),
354
+ );
355
+ final workspaceRefTimestamp = workspaceRefFile.lastModifiedSync ();
356
+ final s = p.separator;
357
+ await pubGet (
358
+ silent: allOf (
359
+ contains (
360
+ '`.dart_tool${s }package_config.json` is unchanged. Not rewriting.' ,
344
361
),
345
- );
362
+ contains (
363
+ '`.dart_tool${s }package_graph.json` is unchanged. Not rewriting.' ,
364
+ ),
365
+ ),
366
+ environment: {'_PUB_TEST_SDK_VERSION' : '3.5.0' },
367
+ );
368
+ // The resolution of timestamps is not that good.
369
+ await Future <Null >.delayed (const Duration (seconds: 1 ));
370
+ expect (packageConfig, jsonDecode (packageConfigFile.readAsStringSync ()));
371
+ expect (packageConfigFile.lastModifiedSync (), packageConfigTimestamp);
346
372
347
- expect (packageConfig , jsonDecode (packageConfigFile .readAsStringSync ()));
348
- expect (packageConfigFile .lastModifiedSync (), packageConfigTimestamp );
373
+ expect (packageGraph , jsonDecode (packageGraphFile .readAsStringSync ()));
374
+ expect (packageGraphFile .lastModifiedSync (), packageGraphTimestamp );
349
375
350
- expect (packageGraph, jsonDecode (packageGraphFile.readAsStringSync ()));
351
- expect (packageGraphFile.lastModifiedSync (), packageGraphTimestamp);
352
- },
353
- );
376
+ expect (lockFile.lastModifiedSync (), lockfileTimestamp);
377
+ expect (workspaceRefFile.lastModifiedSync (), workspaceRefTimestamp);
378
+ });
354
379
}
0 commit comments