mirror of
https://github.com/flutter/packages.git
synced 2025-06-29 22:33:11 +08:00
[tool] Allow importing packages with NEXT (#3215)
Fixes an issue that showed up in the trial repo merge PR; if a pacakge is new to the repository (i.e., has no git history in the parent commit), it was being treated as a version bump, which caused failures if NEXT was present. This adds a new state so that we can allow NEXT during import.
This commit is contained in:
@ -525,6 +525,9 @@ void main() {
|
||||
const String version = '1.0.1';
|
||||
final RepositoryPackage plugin =
|
||||
createFakePlugin('plugin', packagesDir, version: version);
|
||||
processRunner.mockProcessesForExecutable['git-show'] = <io.Process>[
|
||||
MockProcess(stdout: 'version: 1.0.0'),
|
||||
];
|
||||
|
||||
const String changelog = '''
|
||||
## NEXT
|
||||
@ -538,7 +541,7 @@ void main() {
|
||||
|
||||
bool hasError = false;
|
||||
final List<String> output = await runCapturingPrint(
|
||||
runner, <String>['version-check', '--base-sha=main', '--against-pub'],
|
||||
runner, <String>['version-check', '--base-sha=main'],
|
||||
errorHandler: (Error e) {
|
||||
expect(e, isA<ToolExit>());
|
||||
hasError = true;
|
||||
@ -559,6 +562,9 @@ void main() {
|
||||
test('fails if the version increases without replacing NEXT', () async {
|
||||
final RepositoryPackage plugin =
|
||||
createFakePlugin('plugin', packagesDir, version: '1.0.1');
|
||||
processRunner.mockProcessesForExecutable['git-show'] = <io.Process>[
|
||||
MockProcess(stdout: 'version: 1.0.0'),
|
||||
];
|
||||
|
||||
const String changelog = '''
|
||||
## NEXT
|
||||
@ -570,7 +576,7 @@ void main() {
|
||||
|
||||
bool hasError = false;
|
||||
final List<String> output = await runCapturingPrint(
|
||||
runner, <String>['version-check', '--base-sha=main', '--against-pub'],
|
||||
runner, <String>['version-check', '--base-sha=main'],
|
||||
errorHandler: (Error e) {
|
||||
expect(e, isA<ToolExit>());
|
||||
hasError = true;
|
||||
@ -613,6 +619,30 @@ void main() {
|
||||
);
|
||||
});
|
||||
|
||||
// This handles imports of a package with a NEXT section.
|
||||
test('allows NEXT for a new package', () async {
|
||||
final RepositoryPackage plugin =
|
||||
createFakePackage('a_package', packagesDir, version: '1.0.0');
|
||||
|
||||
const String changelog = '''
|
||||
## NEXT
|
||||
* Some changes that should be listed in the next release.
|
||||
## 1.0.0
|
||||
* Some other changes.
|
||||
''';
|
||||
plugin.changelogFile.writeAsStringSync(changelog);
|
||||
|
||||
final List<String> output = await runCapturingPrint(
|
||||
runner, <String>['version-check', '--base-sha=main']);
|
||||
expect(
|
||||
output,
|
||||
containsAllInOrder(<Matcher>[
|
||||
contains('Unable to find previous version at git base'),
|
||||
contains('Found NEXT; validating next version in the CHANGELOG'),
|
||||
]),
|
||||
);
|
||||
});
|
||||
|
||||
test(
|
||||
'fails gracefully if the version headers are not found due to using the wrong style',
|
||||
() async {
|
||||
|
Reference in New Issue
Block a user