blob: cddcda2bea70788dc24fab5c3d97d337d30e18f9 [file] [log] [blame]
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// for details. 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:test/test.dart';
import '../../descriptor.dart' as d;
import '../../test_pub.dart';
void main() {
test('shows pub outdated', () async {
await servePackages()
..serve('multiple_newer', '1.0.0')
..serve('multiple_newer', '1.0.1-unstable.1')
..serve('multiple_newer', '1.0.1')
..serve('multiple_newer', '1.0.2-unstable.1')
..serve('multiple_newer', '1.0.2-unstable.2')
..serve('multiple_newer_stable', '1.0.0')
..serve('multiple_newer_stable', '1.0.1')
..serve('multiple_newer_stable', '1.0.2')
..serve('multiple_newer_unstable', '1.0.0')
..serve('multiple_newer_unstable', '1.0.1-unstable.1')
..serve('multiple_newer_unstable', '1.0.1-unstable.2')
..serve('no_newer', '1.0.0')
..serve('one_newer_unstable', '1.0.0')
..serve('one_newer_unstable', '1.0.1-unstable.1')
..serve('one_newer_stable', '1.0.0')
..serve('one_newer_stable', '1.0.1');
// Constraint everything to the first version.
await d.appDir(
dependencies: {
'multiple_newer': '1.0.0',
'multiple_newer_stable': '1.0.0',
'multiple_newer_unstable': '1.0.0',
'no_newer': '1.0.0',
'one_newer_unstable': '1.0.0',
'one_newer_stable': '1.0.0',
},
).create();
// Upgrade everything.
await pubUpgrade(
output: RegExp(
r'''
3 packages have newer versions incompatible with dependency constraints.
Try `dart pub outdated` for more information.$''',
multiLine: true,
),
);
// Running inside Flutter this will recommend the Flutter variant.
await pubUpgrade(
environment: {'PUB_ENVIRONMENT': 'flutter_cli:get'},
output: RegExp(
r'''
3 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.$''',
multiLine: true,
),
);
// Upgrade `multiple_newer` to `1.0.1`.
await d.appDir(
dependencies: {
'multiple_newer': '1.0.1',
'multiple_newer_stable': '1.0.0',
'multiple_newer_unstable': '1.0.0',
'no_newer': '1.0.0',
'one_newer_unstable': '1.0.0',
'one_newer_stable': '1.0.0',
},
).create();
// Upgrade everything.
await pubUpgrade(
output: RegExp(
r'''
2 packages have newer versions incompatible with dependency constraints.
Try `dart pub outdated` for more information.$''',
multiLine: true,
),
);
// Upgrade `multiple_newer` to `1.0.2-unstable.1`.
await d.appDir(
dependencies: {
'multiple_newer': '1.0.2-unstable.1',
'multiple_newer_stable': '1.0.0',
'multiple_newer_unstable': '1.0.0',
'no_newer': '1.0.0',
'one_newer_unstable': '1.0.0',
'one_newer_stable': '1.0.0',
},
).create();
// Upgrade everything.
await pubUpgrade(
output: RegExp(
r'''
3 packages have newer versions incompatible with dependency constraints.
Try `dart pub outdated` for more information.$''',
multiLine: true,
),
);
// Upgrade all except `one_newer_stable`.
await d.appDir(
dependencies: {
'multiple_newer': '1.0.2-unstable.2',
'multiple_newer_stable': '1.0.2',
'multiple_newer_unstable': '1.0.1-unstable.2',
'no_newer': '1.0.0',
'one_newer_unstable': '1.0.1-unstable.1',
'one_newer_stable': '1.0.0',
},
).create();
// Upgrade everything.
await pubUpgrade(
output: RegExp(
r'''
1 package has newer versions incompatible with dependency constraints.
Try `dart pub outdated` for more information.$''',
multiLine: true,
),
);
});
}