blob: f2fd5d46ac28c023903d1c9d5f759633b1cc7bb6 [file] [log] [blame]
import 'dart:io';
import 'package:path/path.dart' as p;
import 'package:test/test.dart';
import '../descriptor.dart' as d;
import '../test_pub.dart';
void main() async {
test('PUB_CACHE/README.md gets created by command downloading to pub cache',
() async {
final server = await servePackages();
server.serve('foo', '1.0.0');
await d.appDir().create();
await pubGet();
await d.nothing(cachePath).validate();
await d.appDir(dependencies: {'foo': '1.0.0'}).create();
await pubGet();
await d.dir(cachePath, [
d.file('README.md', contains('https://dart.dev/go/pub-cache')),
]).validate();
File(pathInCache('README.md')).deleteSync();
// No new download, so 'README.md' doesn't get updated.
await pubGet();
await d.dir(cachePath, [d.nothing('README.md')]).validate();
});
test('PUB_CACHE/README.md gets created by `dart pub cache clean`', () async {
final server = await servePackages();
server.serve('foo', '1.0.0');
await d.appDir(dependencies: {'foo': '1.0.0'}).create();
await pubGet();
await d.dir(cachePath, [
d.file('README.md', contains('https://dart.dev/go/pub-cache')),
]).validate();
});
test('PUB_CACHE/README.md gets created when compiling a snapshot', () async {
final server = await servePackages();
server.serve(
'foo',
'1.0.0',
contents: [d.file('bin/foo.dart', "main() {print('Hello');}")],
);
await runPub(args: ['global', 'activate', 'foo']);
File(p.join(d.sandbox, cachePath, 'README.md')).deleteSync();
// Replace the created snapshot with one that really doesn't work with the
// current dart.
await d.dir(cachePath, [
d.dir('global_packages', [
d.dir('foo', [
d.dir(
'bin',
[d.outOfDateSnapshot('foo.dart-3.1.2+3.snapshot')],
),
]),
]),
]).create();
await runPub(args: ['global', 'run', 'foo'], output: contains('Hello'));
await d.dir(cachePath, [
d.file('README.md', contains('https://dart.dev/go/pub-cache')),
]).validate();
});
}