Test update_packages for git packages (#61127)
This commit is contained in:
parent
debb3a5d28
commit
c6fd42499a
@ -662,6 +662,9 @@ class PubspecYaml {
|
|||||||
lastDependency._lockIsOverride = section == Section.dependencyOverrides;
|
lastDependency._lockIsOverride = section == Section.dependencyOverrides;
|
||||||
do {
|
do {
|
||||||
index += 1;
|
index += 1;
|
||||||
|
if (index == lines.length) {
|
||||||
|
throw StateError('Invalid pubspec.yaml: a "git" dependency section terminated early.');
|
||||||
|
}
|
||||||
line = lines[index];
|
line = lines[index];
|
||||||
lastDependency._lockLine += '\n$line';
|
lastDependency._lockLine += '\n$line';
|
||||||
} while (line.startsWith(' '));
|
} while (line.startsWith(' '));
|
||||||
|
@ -30,6 +30,11 @@ dependencies:
|
|||||||
sky_engine:
|
sky_engine:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
|
gallery:
|
||||||
|
git:
|
||||||
|
url: https://github.com/flutter/gallery.git
|
||||||
|
ref: d00362e6bdd0f9b30bba337c358b9e4a6e4ca950
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
@ -42,11 +47,35 @@ dev_dependencies:
|
|||||||
# PUBSPEC CHECKSUM: 1437
|
# PUBSPEC CHECKSUM: 1437
|
||||||
''';
|
''';
|
||||||
|
|
||||||
|
const String kInvalidGitPubspec = '''
|
||||||
|
name: flutter
|
||||||
|
author: Flutter Authors <flutter-dev@googlegroups.com>
|
||||||
|
description: A framework for writing Flutter applications
|
||||||
|
homepage: http://flutter.dev
|
||||||
|
|
||||||
|
environment:
|
||||||
|
# The pub client defaults to an <2.0.0 sdk constraint which we need to explicitly overwrite.
|
||||||
|
sdk: ">=2.2.2 <3.0.0"
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
# To update these, use "flutter update-packages --force-upgrade".
|
||||||
|
collection: 1.14.11
|
||||||
|
meta: 1.1.8
|
||||||
|
typed_data: 1.1.6
|
||||||
|
vector_math: 2.0.8
|
||||||
|
|
||||||
|
sky_engine:
|
||||||
|
sdk: flutter
|
||||||
|
|
||||||
|
gallery:
|
||||||
|
git:
|
||||||
|
''';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
testWithoutContext('createTemporaryFlutterSdk creates an unpinned flutter SDK', () {
|
testWithoutContext('createTemporaryFlutterSdk creates an unpinned flutter SDK', () {
|
||||||
final FileSystem fileSystem = MemoryFileSystem.test();
|
final FileSystem fileSystem = MemoryFileSystem.test();
|
||||||
|
|
||||||
// Setup simplified FLutter SDK.
|
// Setup simplified Flutter SDK.
|
||||||
final Directory flutterSdk = fileSystem.directory('flutter')
|
final Directory flutterSdk = fileSystem.directory('flutter')
|
||||||
..createSync();
|
..createSync();
|
||||||
// Create version file
|
// Create version file
|
||||||
@ -63,6 +92,15 @@ void main() {
|
|||||||
// Create already parsed pubspecs.
|
// Create already parsed pubspecs.
|
||||||
final PubspecYaml flutterPubspec = PubspecYaml(flutter);
|
final PubspecYaml flutterPubspec = PubspecYaml(flutter);
|
||||||
|
|
||||||
|
final PubspecDependency gitDependency = flutterPubspec.dependencies.whereType<PubspecDependency>().firstWhere((PubspecDependency dep) => dep.kind == DependencyKind.git);
|
||||||
|
expect(
|
||||||
|
gitDependency.lockLine,
|
||||||
|
'''
|
||||||
|
git:
|
||||||
|
url: https://github.com/flutter/gallery.git
|
||||||
|
ref: d00362e6bdd0f9b30bba337c358b9e4a6e4ca950
|
||||||
|
''',
|
||||||
|
);
|
||||||
final Directory result = createTemporaryFlutterSdk(
|
final Directory result = createTemporaryFlutterSdk(
|
||||||
fileSystem,
|
fileSystem,
|
||||||
flutterSdk,
|
flutterSdk,
|
||||||
@ -88,4 +126,27 @@ void main() {
|
|||||||
expect(outputPubspec.dependencies.first.name, 'collection');
|
expect(outputPubspec.dependencies.first.name, 'collection');
|
||||||
expect(outputPubspec.dependencies.first.version, 'any');
|
expect(outputPubspec.dependencies.first.version, 'any');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testWithoutContext('Throws a StateError on a malformed git: reference', () {
|
||||||
|
final FileSystem fileSystem = MemoryFileSystem.test();
|
||||||
|
|
||||||
|
// Setup simplified Flutter SDK.
|
||||||
|
final Directory flutterSdk = fileSystem.directory('flutter')
|
||||||
|
..createSync();
|
||||||
|
// Create version file
|
||||||
|
flutterSdk.childFile('version').writeAsStringSync('1.2.3');
|
||||||
|
// Create a pubspec file
|
||||||
|
final Directory flutter = flutterSdk
|
||||||
|
.childDirectory('packages')
|
||||||
|
.childDirectory('flutter')
|
||||||
|
..createSync(recursive: true);
|
||||||
|
flutter
|
||||||
|
.childFile('pubspec.yaml')
|
||||||
|
.writeAsStringSync(kInvalidGitPubspec);
|
||||||
|
|
||||||
|
expect(
|
||||||
|
() => PubspecYaml(flutter),
|
||||||
|
throwsStateError,
|
||||||
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user