@@ -313,42 +313,67 @@ void main() {
313313 });
314314 });
315315
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 ();
323331
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.' ,
344361 ),
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);
346372
347- expect (packageConfig , jsonDecode (packageConfigFile .readAsStringSync ()));
348- expect (packageConfigFile .lastModifiedSync (), packageConfigTimestamp );
373+ expect (packageGraph , jsonDecode (packageGraphFile .readAsStringSync ()));
374+ expect (packageGraphFile .lastModifiedSync (), packageGraphTimestamp );
349375
350- expect (packageGraph, jsonDecode (packageGraphFile.readAsStringSync ()));
351- expect (packageGraphFile.lastModifiedSync (), packageGraphTimestamp);
352- },
353- );
376+ expect (lockFile.lastModifiedSync (), lockfileTimestamp);
377+ expect (workspaceRefFile.lastModifiedSync (), workspaceRefTimestamp);
378+ });
354379}
0 commit comments