blob: 2f926183efb2cc0d6a7d71d399be7c994c18902a [file] [log] [blame]
// Copyright (c) 2013, 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:path/path.dart';
import 'package:test/test.dart';
import '../../descriptor.dart' as d;
import '../../test_pub.dart';
void main() {
test('Shows count of discontinued packages', () async {
final server = await servePackages();
server.serve('foo', '2.0.0');
server.discontinue('foo');
// Create the first lockfile.
await d.appDir({'foo': '2.0.0'}).create();
await pubGet();
// Do the dry run.
await pubUpgrade(
args: ['--dry-run'],
output: contains('1 package is discontinued.'),
);
// Try without --dry-run
await pubUpgrade(
output: contains('1 package is discontinued.'),
);
});
test('shows how package changed from previous lockfile', () async {
final server = await servePackages();
server.serve('unchanged', '1.0.0');
server.serve('version_upgraded', '1.0.0');
server.serve('version_upgraded', '2.0.0');
server.serve('version_downgraded', '1.0.0');
server.serve('version_downgraded', '2.0.0');
server.serve('contents_changed', '1.0.0');
server.serve('source_changed', '1.0.0');
server.serve('package_added', '1.0.0');
server.serve('package_removed', '1.0.0');
await d.dir('source_changed', [
d.libDir('source_changed'),
d.libPubspec('source_changed', '2.0.0')
]).create();
await d.dir('description_changed_1', [
d.libDir('description_changed'),
d.libPubspec('description_changed', '1.0.0')
]).create();
await d.dir('description_changed_2', [
d.libDir('description_changed'),
d.libPubspec('description_changed', '1.0.0')
]).create();
// Create the first lockfile.
await d.appDir({
'unchanged': 'any',
'contents_changed': '1.0.0',
'version_upgraded': '1.0.0',
'version_downgraded': '2.0.0',
'source_changed': 'any',
'package_removed': 'any',
'description_changed': {'path': '../description_changed_1'}
}).create();
await pubGet();
server.serve(
'contents_changed',
'1.0.0',
contents: [d.file('Sneaky.txt', 'Very sneaky attack on integrity.')],
);
// Change the pubspec.
await d.appDir({
'unchanged': 'any',
'version_upgraded': 'any',
'version_downgraded': '1.0.0',
'source_changed': {'path': '../source_changed'},
'package_added': 'any',
'description_changed': {'path': '../description_changed_2'},
'contents_changed': '1.0.0',
}).create();
// Upgrade everything.
await pubUpgrade(
output: allOf([
contains('Resolving dependencies...'),
contains(
'* description_changed 1.0.0 from path ..${separator}description_changed_2 (was 1.0.0 from path ..${separator}description_changed_1)'),
contains(' unchanged 1.0.0'),
contains(
'* source_changed 2.0.0 from path ..${separator}source_changed (was 1.0.0)'),
contains('> version_upgraded 2.0.0 (was 1.0.0'),
contains('< version_downgraded 1.0.0 (was 2.0.0'),
contains('+ package_added 1.0.0'),
contains('- package_removed 1.0.0'),
contains('~ contents_changed 1.0.0 (was 1.0.0)'),
]),
environment: {'PUB_ALLOW_PRERELEASE_SDK': 'false'});
});
}