blob: 4a5795f69547eb115aae8fdcaa8043228e0bb2a9 [file] [log] [blame]
// Copyright (c) 2018, 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.
@TestOn('vm')
@OnPlatform({
'windows': Skip('https://github.com/dart-lang/webdev/issues/711'),
})
library;
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:test/test.dart';
import 'test_utils.dart';
void main() {
final testRunner = TestRunner();
setUpAll(testRunner.setUpAll);
tearDownAll(testRunner.tearDownAll);
test('help build', () => _readmeCheck(testRunner, ['help', 'build']));
test('help serve', () => _readmeCheck(testRunner, ['help', 'serve']));
}
final _readmeContents = File('README.md').readAsStringSync();
Future _readmeCheck(TestRunner testRunner, List<String> args) async {
final process = await testRunner.runWebDev(args);
final output =
(await process.stdoutStream().map((line) => line.trimRight()).join('\n'))
.trim();
await process.shouldExit(0);
final firstLineStart =
_readmeContents.indexOf(LineSplitter.split(output).first);
expect(firstLineStart, greaterThanOrEqualTo(0));
final sectionEnd = _readmeContents.indexOf('```', firstLineStart);
expect(sectionEnd, greaterThan(firstLineStart));
expect(
_readmeContents.substring(firstLineStart, sectionEnd).trim(),
output,
);
}