mirror of
https://github.com/flutter/packages.git
synced 2025-06-25 01:39:09 +08:00
[tools] Add update-release-info
(#5643)
This commit is contained in:
140
script/tool/test/common/package_state_utils_test.dart
Normal file
140
script/tool/test/common/package_state_utils_test.dart
Normal file
@ -0,0 +1,140 @@
|
||||
// Copyright 2013 The Flutter Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
import 'package:file/file.dart';
|
||||
import 'package:file/memory.dart';
|
||||
import 'package:flutter_plugin_tools/src/common/package_state_utils.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
import '../util.dart';
|
||||
|
||||
void main() {
|
||||
late FileSystem fileSystem;
|
||||
late Directory packagesDir;
|
||||
|
||||
setUp(() {
|
||||
fileSystem = MemoryFileSystem();
|
||||
packagesDir = createPackagesDirectory(fileSystem: fileSystem);
|
||||
});
|
||||
|
||||
group('checkPackageChangeState', () {
|
||||
test('reports version change needed for code changes', () async {
|
||||
final RepositoryPackage package =
|
||||
createFakePackage('a_package', packagesDir);
|
||||
|
||||
const List<String> changedFiles = <String>[
|
||||
'packages/a_package/lib/plugin.dart',
|
||||
];
|
||||
|
||||
final PackageChangeState state = checkPackageChangeState(package,
|
||||
changedPaths: changedFiles,
|
||||
relativePackagePath: 'packages/a_package');
|
||||
|
||||
expect(state.hasChanges, true);
|
||||
expect(state.needsVersionChange, true);
|
||||
});
|
||||
|
||||
test('handles trailing slash on package path', () async {
|
||||
final RepositoryPackage package =
|
||||
createFakePackage('a_package', packagesDir);
|
||||
|
||||
const List<String> changedFiles = <String>[
|
||||
'packages/a_package/lib/plugin.dart',
|
||||
];
|
||||
|
||||
final PackageChangeState state = checkPackageChangeState(package,
|
||||
changedPaths: changedFiles,
|
||||
relativePackagePath: 'packages/a_package/');
|
||||
|
||||
expect(state.hasChanges, true);
|
||||
expect(state.needsVersionChange, true);
|
||||
expect(state.hasChangelogChange, false);
|
||||
});
|
||||
|
||||
test('does not report version change exempt changes', () async {
|
||||
final RepositoryPackage package =
|
||||
createFakePlugin('a_plugin', packagesDir);
|
||||
|
||||
const List<String> changedFiles = <String>[
|
||||
'packages/a_plugin/example/android/lint-baseline.xml',
|
||||
'packages/a_plugin/example/android/src/androidTest/foo/bar/FooTest.java',
|
||||
'packages/a_plugin/example/ios/RunnerTests/Foo.m',
|
||||
'packages/a_plugin/example/ios/RunnerUITests/info.plist',
|
||||
'packages/a_plugin/tool/a_development_tool.dart',
|
||||
'packages/a_plugin/CHANGELOG.md',
|
||||
];
|
||||
|
||||
final PackageChangeState state = checkPackageChangeState(package,
|
||||
changedPaths: changedFiles,
|
||||
relativePackagePath: 'packages/a_plugin/');
|
||||
|
||||
expect(state.hasChanges, true);
|
||||
expect(state.needsVersionChange, false);
|
||||
expect(state.hasChangelogChange, true);
|
||||
});
|
||||
|
||||
test('only considers a root "tool" folder to be special', () async {
|
||||
final RepositoryPackage package =
|
||||
createFakePlugin('a_plugin', packagesDir);
|
||||
|
||||
const List<String> changedFiles = <String>[
|
||||
'packages/a_plugin/lib/foo/tool/tool_thing.dart',
|
||||
];
|
||||
|
||||
final PackageChangeState state = checkPackageChangeState(package,
|
||||
changedPaths: changedFiles,
|
||||
relativePackagePath: 'packages/a_plugin/');
|
||||
|
||||
expect(state.hasChanges, true);
|
||||
expect(state.needsVersionChange, true);
|
||||
});
|
||||
|
||||
test('requires a version change for example main', () async {
|
||||
final RepositoryPackage package =
|
||||
createFakePlugin('a_plugin', packagesDir);
|
||||
|
||||
const List<String> changedFiles = <String>[
|
||||
'packages/a_plugin/example/lib/main.dart',
|
||||
];
|
||||
|
||||
final PackageChangeState state = checkPackageChangeState(package,
|
||||
changedPaths: changedFiles,
|
||||
relativePackagePath: 'packages/a_plugin/');
|
||||
|
||||
expect(state.hasChanges, true);
|
||||
expect(state.needsVersionChange, true);
|
||||
});
|
||||
|
||||
test('requires a version change for example readme.md', () async {
|
||||
final RepositoryPackage package =
|
||||
createFakePlugin('a_plugin', packagesDir);
|
||||
|
||||
const List<String> changedFiles = <String>[
|
||||
'packages/a_plugin/example/README.md',
|
||||
];
|
||||
|
||||
final PackageChangeState state = checkPackageChangeState(package,
|
||||
changedPaths: changedFiles,
|
||||
relativePackagePath: 'packages/a_plugin/');
|
||||
|
||||
expect(state.hasChanges, true);
|
||||
expect(state.needsVersionChange, true);
|
||||
});
|
||||
|
||||
test('requires a version change for example example.md', () async {
|
||||
final RepositoryPackage package =
|
||||
createFakePlugin('a_plugin', packagesDir);
|
||||
|
||||
const List<String> changedFiles = <String>[
|
||||
'packages/a_plugin/example/lib/example.md',
|
||||
];
|
||||
|
||||
final PackageChangeState state = checkPackageChangeState(package,
|
||||
changedPaths: changedFiles,
|
||||
relativePackagePath: 'packages/a_plugin/');
|
||||
|
||||
expect(state.hasChanges, true);
|
||||
expect(state.needsVersionChange, true);
|
||||
});
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user