diff --git a/test/lish/does_not_include_dot_file.dart b/test/lish/does_not_include_dot_file.dart new file mode 100644 index 000000000..91b924539 --- /dev/null +++ b/test/lish/does_not_include_dot_file.dart @@ -0,0 +1,52 @@ +// 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 'dart:convert'; + +import 'package:shelf/shelf.dart' as shelf; +import 'package:test/test.dart'; + +import 'package:pub/src/exit_codes.dart' as exit_codes; +import 'package:test_descriptor/test_descriptor.dart' as td; + +import '../descriptor.dart' as d; +import '../test_pub.dart'; +import 'utils.dart'; + +/// Describes a package with dot-files in tree. +td.DirectoryDescriptor get validPackageWithDotFiles => d.dir(appPath, [ + d.libPubspec('test_pkg', '1.0.0', sdk: '>=1.8.0 <=2.0.0'), + td.dir('.dart_tool', [td.file('package_config.json')]), + td.dir('.github', [td.file('ignored.yml')]), + td.file('.gitignore'), + td.file('LICENSE', 'Eh, do what you want.'), + td.file('README.md', "This package isn't real."), + td.file('CHANGELOG.md', '# 1.0.0\nFirst version\n'), + td.dir('lib', [td.file('test_pkg.dart', 'int i = 1;')]) + ]); + +void main() { + setUp(validPackageWithDotFiles.create); + + test('Check if package doesn\'t include dot-files', () async { + await servePackages(); + await d.credentialsFile(globalPackageServer, 'access token').create(); + var pub = await startPublish(globalPackageServer); + + await confirmPublish(pub); + handleUploadForm(globalPackageServer); + handleUpload(globalPackageServer); + + globalPackageServer.expect('GET', '/create', (request) { + return shelf.Response.ok(jsonEncode({ + 'success': {'message': 'Package test_pkg 1.0.0 uploaded!'} + })); + }); + + expect(pub.stdout, emits('test_pkg.dart')); + expect(pub.stdout, neverEmits('.dart_tool')); + expect(pub.stdout, neverEmits('.github')); + await pub.shouldExit(exit_codes.SUCCESS); + }); +}